cassandra群集节点的数据目录是否应该相同?
假设我有一个2节点集群,其中所有节点都在cassandra.yaml中配置了相同的数据\u文件\u目录(比如3个文件夹) 比如说cassandra群集节点的数据目录是否应该相同?,cassandra,cassandra-2.1,Cassandra,Cassandra 2.1,假设我有一个2节点集群,其中所有节点都在cassandra.yaml中配置了相同的数据\u文件\u目录(比如3个文件夹) 比如说 data_file_directories: - E:/Cassandra/data/var/lib/cassandra/data - K:/Cassandra/data/var/lib/cassandra/data - F:/Cassandra/data/var/lib/cassandra/data 现在让我们假设我添加了第三个节点到集群中
data_file_directories:
- E:/Cassandra/data/var/lib/cassandra/data
- K:/Cassandra/data/var/lib/cassandra/data
- F:/Cassandra/data/var/lib/cassandra/data
现在让我们假设我添加了第三个节点到集群中,其中包含不同的数据文件目录(比如1个文件夹)
这样做不对吗?在数据重新平衡期间,现有节点的3个目录中的数据是否会流向新节点的1个目录 Nate McCall(现任Apache Cassandra项目主席)在这里回答了一个类似的问题:
简言之,这应该没问题。Cassandra将数据均匀地分布在data\u file\u目录
中的条目上,而不管有多少个条目。此外,节点负责的令牌数量与此设置无关,因此您不应该看到任何热点或不平衡(至少不是由于此原因)
话虽如此,我将补充以下几点:
- 如果多个数据目录是不同的物理装载点,则指定多个数据目录会有所帮助。这样,如果一个磁盘被填满或意外出现故障,节点仍可以继续运行
- 如果我计划添加一个节点并长期保留所有节点,我会指定新节点的配置,尽可能接近原始节点。在大型环境中,当您负责多个节点和集群时,这尤其有助于您不必记住集群中某个特定节点的不同之处(如果需要进行故障排除)
- 最后一点的例外情况是,如果我决定继续移动到单个数据目录。但我也有一个计划,让现有的节点退役,并用同样具有类似配置的节点替换它们
data\u file\u目录
中的条目上,而不管有多少个条目。此外,节点负责的令牌数量与此设置无关,因此您不应该看到任何热点或不平衡(至少不是由于此原因)
话虽如此,我将补充以下几点:
- 如果多个数据目录是不同的物理装载点,则指定多个数据目录会有所帮助。这样,如果一个磁盘被填满或意外出现故障,节点仍可以继续运行
- 如果我计划添加一个节点并长期保留所有节点,我会指定新节点的配置,尽可能接近原始节点。在大型环境中,当您负责多个节点和集群时,这尤其有助于您不必记住集群中某个特定节点的不同之处(如果需要进行故障排除)
- 最后一点的例外情况是,如果我决定继续移动到单个数据目录。但我也有一个计划,让现有的节点退役,并用同样具有类似配置的节点替换它们
data_file_directories:
- B:/Cassandra/data/var/lib/cassandra/data