我们在EC2上有6个节点的cassandra集群,我们必须将其容量加倍到12个节点。 所以要添加6个节点,我按照以下步骤操作。
1计算12个节点的令牌并相应地配置新节点。
2通过适当的配置启动新节点,以便新节点将二等分 现有的令牌范围。
我们安装了Cassandra-0.8.2,每个现有节点上有大约500 GB的数据,并在EBS卷上存储数据。
如何解决此问题并获得12个节点的平衡群集?
我可以重启节点吗?
如果我清理卡住Cassandra节点的数据目录并重新启动全新安装,是否会导致数据丢失?
答案 0 :(得分:3)
如果复制因子2或更高,则不会有任何数据丢失。
Cassandra的0.8.2版本有几个已知问题 - 请在所有原始节点上升级到0.8.8以及出现的新节点,然后为未完成的节点启动该过程。
另外,请注意,在EBS卷上存储数据是一个坏主意:
http://www.mail-archive.com/user@cassandra.apache.org/msg11022.html
答案 1 :(得分:0)
虽然这不会直接回答你的问题,但希望它指出你正确的方向:
#cassandra
上有一个相当活跃的freenode.org
个IRC频道。
答案 2 :(得分:0)
所以这就是为什么我们的一些节点被卡住的答案。
1)我们已经从cassandra-0.7.2升级到cassandra0.8.2
2)我们正在使用sstable-loader实用程序加载sstables
3)但是某些列系列的某些数据是直接从hadoop作业中插入的。 这些列系列的数据显示了其他一些版本,因为我们还没有升级hadoop中的cassandra api。
4)由于此版本不匹配cassandra抛出“版本不匹配异常”并终止流式传输
5)因此,解决方法是使用“nodetool scrub keyspace columnfamily”。我用过这个,我的问题已经解决了
所以这里最重要的是如果你要升级cassandra集群容量你必须做nodetool scrub