Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cassandra群集节点的数据目录是否应该相同?_Cassandra_Cassandra 2.1 - Fatal编程技术网

cassandra群集节点的数据目录是否应该相同?

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 现在让我们假设我添加了第三个节点到集群中

假设我有一个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
现在让我们假设我添加了第三个节点到集群中,其中包含不同的数据文件目录(比如1个文件夹)

这样做不对吗?在数据重新平衡期间,现有节点的3个目录中的数据是否会流向新节点的1个目录

Nate McCall(现任Apache Cassandra项目主席)在这里回答了一个类似的问题:

简言之,这应该没问题。Cassandra将数据均匀地分布在
data\u file\u目录
中的条目上,而不管有多少个条目。此外,节点负责的令牌数量与此设置无关,因此您不应该看到任何热点或不平衡(至少不是由于此原因)

话虽如此,我将补充以下几点:

  • 如果多个数据目录是不同的物理装载点,则指定多个数据目录会有所帮助。这样,如果一个磁盘被填满或意外出现故障,节点仍可以继续运行
  • 如果我计划添加一个节点并长期保留所有节点,我会指定新节点的配置,尽可能接近原始节点。在大型环境中,当您负责多个节点和集群时,这尤其有助于您不必记住集群中某个特定节点的不同之处(如果需要进行故障排除)
  • 最后一点的例外情况是,如果我决定继续移动到单个数据目录。但我也有一个计划,让现有的节点退役,并用同样具有类似配置的节点替换它们
专业提示:如果可以,尝试使用Chef或Spinnaker等自动部署工具。这样一来,新节点的配置基本上就是集群中所有其他节点的“cookie cuter”。

Nate McCall(现任Apache Cassandra项目主席)在这里回答了一个类似的问题:

简言之,这应该没问题。Cassandra将数据均匀地分布在
data\u file\u目录
中的条目上,而不管有多少个条目。此外,节点负责的令牌数量与此设置无关,因此您不应该看到任何热点或不平衡(至少不是由于此原因)

话虽如此,我将补充以下几点:

  • 如果多个数据目录是不同的物理装载点,则指定多个数据目录会有所帮助。这样,如果一个磁盘被填满或意外出现故障,节点仍可以继续运行
  • 如果我计划添加一个节点并长期保留所有节点,我会指定新节点的配置,尽可能接近原始节点。在大型环境中,当您负责多个节点和集群时,这尤其有助于您不必记住集群中某个特定节点的不同之处(如果需要进行故障排除)
  • 最后一点的例外情况是,如果我决定继续移动到单个数据目录。但我也有一个计划,让现有的节点退役,并用同样具有类似配置的节点替换它们
专业提示:如果可以,尝试使用Chef或Spinnaker等自动部署工具。这样一来,新节点的配置实质上就是集群中所有其他节点的“cookiecuter”

 data_file_directories:
    - B:/Cassandra/data/var/lib/cassandra/data