gpt4 book ai didi

cassandra - 修改cassandra.yaml的编程方式

转载 作者:行者123 更新时间:2023-12-02 22:34:32 25 4
gpt4 key购买 nike

我们正在运行时创建 cassandra 集群,“集群名称”和“种子”的 IP 地址等信息仅在运行时可用。 cassandra.yaml 是否有一个 java 包装器,允许 cassandra.yaml 的 setter 和 getter 并将其保存到磁盘?我知道我总是可以自己创建一个包装器,但想知道是否已有可用的包装器。

最佳答案

Is there a java wrapper for cassandra.yaml that allows setters and getters for cassandra.yaml and saves it to disk?

据我所知,没有。不过,这对于开源项目来说是个好主意!

我过去曾通过几种不同的方式做到这一点。一种是 Chef 和 consul-template 的组合。本质上,您的 cassandra.yaml 包含变量占位符,当您的部署配方运行时,这些占位符由默认属性 (Chef) 和集群特定设置 (consul-template) 的组合填充。

我还使用 sed 通过 Bash 脚本完成了此操作(对于我们的几个非 Chef 环境)。这是我编写的用于将 DataStax Enterprise 安装迁移到 Apache Cassandra(开源)安装的脚本的摘录:

#!/bin/bash

cp /etc/dse/cassandra/cassandra.yaml /etc/cassandra/conf

#set GossipingPropertyFileSnitch in cassandra.yaml
sed -i 's/endpoint_snitch: com.datastax.bdp.snitch.DseDelegateSnitch/endpoint_snitch: GossipingPropertyFileSnitch/' /etc/cassandra/conf/cassandra.yaml

#set truststore location
sed -i 's/truststore: \/etc\/dse\/cassandra\//truststore: \/etc\/cassandra\/conf\//g' /etc/cassandra/conf/cassandra.yaml

#set keystore location
sed -i 's/keystore: \/etc\/dse\/cassandra\//keystore: \/etc\/cassandra\/conf\//g' /etc/cassandra/conf/cassandra.yaml

本质上,您正在为特定的 yaml 属性设置执行正则表达式替换。具体来说,我需要更新告密者以及 keystore /信任库的位置。虽然不太漂亮,但很有效。

关于cassandra - 修改cassandra.yaml的编程方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43748903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com