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 - Fatal编程技术网

Cassandra 新节点引导的问题

Cassandra 新节点引导的问题,cassandra,Cassandra,我们使用的是Cassandra 3.11.2,当尝试引导一个新节点时,流式传输会花费很多时间。集群是一个三节点集群,我们正在添加第四个。其他三个节点上的可用数据接近190GB,实例大小为5核5GB,在旋转驱动器上运行 新节点上的nodetool netstats表示流文件,106个文件中有15个是从节点A接收的。但节点A上的相同netstats表示所有106个文件都已发送 此外,我们遇到了一些与保持活动相关的问题,我们确实在新节点上增加了这些问题。这是我们的第二次尝试,在第一次尝试中,引导一直失

我们使用的是Cassandra 3.11.2,当尝试引导一个新节点时,流式传输会花费很多时间。集群是一个三节点集群,我们正在添加第四个。其他三个节点上的可用数据接近190GB,实例大小为5核5GB,在旋转驱动器上运行

新节点上的
nodetool netstats
表示流文件,106个文件中有15个是从节点A接收的。但节点A上的相同
netstats
表示所有106个文件都已发送

此外,我们遇到了一些与保持活动相关的问题,我们确实在新节点上增加了这些问题。这是我们的第二次尝试,在第一次尝试中,引导一直失败,我们要么恢复它,要么在新节点上重新启动Cassandra,数据增长到接近500GB,然后压缩发生并下降到236GB

但随后引导程序一直失败。所以我们抛弃了它,重新开始。这一次,正如硬件选择文档中所建议的,我们使用了不同的物理磁盘来提交日志和数据,以查看iops是否是问题所在

这个过程永远不会结束。也就是说,在这两者之间,它会因对等或IO异常而导致连接重置而失败,我们已经为此挣扎了近一周

您认为理想情况下,使用接近190GB的数据引导节点需要多少时间?任何建议都会大有帮助。 新节点在自动引导标志设置为true时启动

您认为理想情况下,使用接近190GB的数据引导节点需要多少时间

不幸的是,没有简单的方法来回答这个问题。许多因素决定了新节点引导的速度,本质上是特定于底层infra的

我们使用的是Cassandra 3.11.2

我建议(至少)升级到3.11.4。这是一个简单的二进制升级,不需要运行
nodetool upgradesstables
。原因是,3.11.4有一个功能,允许失败的引导恢复到它停止的地方。至少这样,你不必每次都从头开始

数据增长到接近500GB,然后压缩到236GB

所以这可能是有原因的。机架定义(cassandra rackdc.properties)相同还是不同?如果将节点引导为新的逻辑机架,则可能会看到一个新节点负责拥有100%的可用令牌范围。然而,如果您加入一个与其他节点具有相同逻辑机架的新节点,则所有权百分比(和磁盘占用)将下降

任何建议都会大有帮助

在将节点引导到新的物理数据中心时,我也遇到过类似的问题。我成功的一件事是设置
auto_bootstrap:false
并运行
nodetool rebuild
从远程DC流式传输。当然,如果你没有另一个DC流,那是行不通的

您还可以在未启用引导的情况下启动节点,并在节点出现时运行
nodetool修复。这有一些缺点,新节点仍将尝试为客户机请求提供服务,而不管它是否实际拥有数据。但它至少可以让您加入节点,并以更渐进的方式传输数据

这就是为什么升级到3.11.4可能是最好的选择。然后,当数据流失败时,您可以重新启动节点,它将从停止的地方恢复,并且在数据流完成之前,它不会接受客户端请求

您认为理想情况下,使用接近190GB的数据引导节点需要多少时间

不幸的是,没有简单的方法来回答这个问题。许多因素决定了新节点引导的速度,本质上是特定于底层infra的

我们使用的是Cassandra 3.11.2

我建议(至少)升级到3.11.4。这是一个简单的二进制升级,不需要运行
nodetool upgradesstables
。原因是,3.11.4有一个功能,允许失败的引导恢复到它停止的地方。至少这样,你不必每次都从头开始

数据增长到接近500GB,然后压缩到236GB

所以这可能是有原因的。机架定义(cassandra rackdc.properties)相同还是不同?如果将节点引导为新的逻辑机架,则可能会看到一个新节点负责拥有100%的可用令牌范围。然而,如果您加入一个与其他节点具有相同逻辑机架的新节点,则所有权百分比(和磁盘占用)将下降

任何建议都会大有帮助

在将节点引导到新的物理数据中心时,我也遇到过类似的问题。我成功的一件事是设置
auto_bootstrap:false
并运行
nodetool rebuild
从远程DC流式传输。当然,如果你没有另一个DC流,那是行不通的

您还可以在未启用引导的情况下启动节点,并在节点出现时运行
nodetool修复。这有一些缺点,新节点仍将尝试为客户机请求提供服务,而不管它是否实际拥有数据。但它至少可以让您加入节点,并以更渐进的方式传输数据

这就是为什么升级到3.11.4可能是最好的选择。然后,当数据流失败时,您可以重新启动节点,它将从停止的地方恢复,并且在数据流完成之前,它不会接受客户端请求