我正在使用Cassandra 2.0,并且群集已经设置了3个节点。 Nodetool状态和环显示所有三个节点。我已为所有节点指定了令牌。
我按照以下步骤更改了一个节点中的配置:
1)sudo service cassandra stop
2)更新了cassandra.yaml(更新thrift_framed_transport_size_in_mb)
3)sudo srevice cassandra start
具体未成功启动,system.log显示以下异常:
org.apache.cassandra.exceptions.ConfigurationException:无法更改 令牌数量从1到256
在不丢失节点或群集中现有数据的情况下重启节点的最佳机制是什么?
答案 0 :(得分:3)
从非Vnodes切换到Vnode对于C *而言是一个稍微棘手的命题,之前执行此切换(shuffle)的机制因不稳定性而略显臭名昭着。
最简单的方法是在启用vnode的情况下启动新节点(在新数据中心中),并通过修复将数据传输到这些节点。
答案 1 :(得分:2)
当我尝试将令牌数量从1更改为256时,我也遇到了此错误。要解决此问题,我尝试了以下操作:
方案: 我有4个节点DSE(4.6.1)cassandra集群。假设他们的FQDN是:d0.cass.org,d1.cass.org,d2.cass.org,d3.cass.org。这里,节点d0.cass.org和d1.cass.org是种子提供者。我的目标是通过更改cassandra.yaml文件中的num_token属性来启用节点。
每个节点要遵循的程序(一次一个):
nodetool decommission
ps ax | grep dse
和kill <pid>
nodetool status
检查cassandra集群的状态。退役节点不应出现在列表中。nodetool rebuild
dse cassandra
命令启动cassandra。这应该有用。