将新节点加入Cassandra集群需要多长时间?

时间:2012-09-12 03:44:01

标签: cassandra

我有一台Cassandra 1.0.9服务器,它被设置为群集的种子。它有大约34GB的数据。我想加入第二个Cassandra 1.0.9加入戒指并将第一个设置为种子。

在/var/lib/cassandra/log/cassandra.log中我看到了:

INFO 20:06:52,809 JOINING: waiting for schema information to complete
INFO 20:07:22,815 JOINING: waiting for schema information to complete
INFO 20:07:52,817 JOINING: waiting for schema information to complete
.
.
.
INFO 20:10:22,839 JOINING: waiting for schema information to complete
INFO 20:10:52,841 JOINING: waiting for schema information to complete
INFO 20:11:22,847 JOINING: waiting for schema information to complete

在/ var / log / cassandra / system日志中我看到了:

INFO [main] 2012-09-11 20:19:52,913 StorageService.java (line 668) JOINING: waiting for schema information to complete
INFO [main] 2012-09-11 20:20:22,919 StorageService.java (line 668) JOINING: waiting for schema information to complete
INFO [main] 2012-09-11 20:20:52,921 StorageService.java (line 668) JOINING: waiting for schema information to complete
.
.
.
INFO [main] 2012-09-11 20:23:22,943 StorageService.java (line 668) JOINING: waiting for schema information to complete
INFO [main] 2012-09-11 20:23:52,945 StorageService.java (line 668) JOINING: waiting for schema information to complete
INFO [main] 2012-09-11 20:24:22,951 StorageService.java (line 668) JOINING: waiting for schema information to complete

运行netstats给了我:

Mode: JOINING
Not sending any streams.
Not receiving any streams.
Pool Name                    Active   Pending      Completed
Commands                        n/a         0              5
Responses                       n/a         0          51966

有关这需要多长时间的想法?

2 个答案:

答案 0 :(得分:3)

看来我已通过以下步骤解决了这个问题:

  1. 删除新服务器上的/ var / lib / cassandra / data目录(和子目录)
  2. 删除种子服务器上的/ var / lib / cassandra / data / system / Schema *文件
  3. 删除种子服务器上的/ var / lib / cassandra / data / system / Migration *文件
  4. 在cassandra-cli
  5. 中的种子服务器上重新创建架构
  6. 在新服务器上启动Cassandra
  7. 现在我看到环中的新服务器即使它仍在加入(它在之前的加入尝试中没有出现在响铃中)。种子服务器和新服务器都在同一个Schema上,如运行“describe cluster”所述。在cassandra-cli。

    我希望将来可以帮助其他人。

答案 1 :(得分:0)

接收响铃信息应该只需几秒钟。

识别问题的最佳方法是在两台主机上的log4j-server.properties中启用调试日志记录。

我的猜测是其中一台主机无法连接到存储端口(7000或7001)上的另一台主机。可能有不同的原因:主机名配置错误,防火墙,ssl配置错误等。尝试执行

nodetool -h <hostname> ring

命令,然后尝试

telnet <hostname> 7000

从每个主机到另一个主机。确保您使用nodetool输出中的主机名。

如果两个连接都正常,请尝试启用调试日志记录。