以下是我对auto_bootstrap属性的理解.首先,如果我在任何时候错了,请纠正我.
最初,cassandra.yaml文件中将不提供属性“auto_bootstrap”.这意味着默认值为“true”.
true – 这意味着在启动/重新启动时,从所有其他节点引导/流式传输数据到相应的节点
false – 在启动/重新启动时不要流式传输数据
我们在哪里需要’auto_bootstrap:true’
1)当需要在现有集群中添加新节点时,需要将其设置为“true”以自动从集群中的所有其他节点引导数据.这将花费相当长的时间(基于群集的当前负载)来在群集中添加新节点.但这会使群集中的负载自动平衡.
我们在哪里需要’auto_bootstrap:false’
1)当需要在现有集群中快速添加新节点而不引导数据时,需要将其设置为“false”.无论群集的当前负载如何,都将快速添加新节点.稍后我们需要手动将数据流式传输到新节点以使群集负载平衡.
2)在没有数据的情况下初始化新集群时,需要将其设置为“false”.至少要在新簇中启动/添加的第一个种子节点的值应为’false’.
我的问题是
我们使用带有两个数据中心的六个节点的Cassandra 2.0.3(每个节点有3个节点).我们的Cassandra是一个独立的过程(不是服务).我将在cassandra.yaml文件中为一个节点更改一些属性.很明显,在更新cassandra.ymal文件后应重新启动节点以获取更改效果.我们的集群装载了大量数据.
如何重新启动节点
在杀死节点后,我可以简单地重启节点,如下所示
$cd install_location $bin/cassandra
这意味着重新启动没有auto_bootstrap属性的节点(默认为true).
与’真’
1)当前要重启的节点有自己的大数据.节点是否再次引导所有自己的数据并替换现有数据.
2)节点是否需要更多时间再次加入集群.
与’假’
我不想引导数据.所以
3)我可以将属性添加为auto_bootstrap:false并重启节点,如上所述.
4)成功重启后,我将删除auto_bootstrap属性.这样可以吗?
其他
5)当我重新启动具有相同IP地址的节点时,群集是否会通过八卦信息自动识别这是一个现有节点,因此尽管auto_bootstrap设置为true或cassandra.yaml中不存在,但重新启动节点而不流式传输数据文件?