Cassandra vnodes: can I lower the number on slower nodes and expect rebalancing to occur automatically?

拟墨画扇 提交于 2020-01-11 07:32:55

问题


I am running a small Cassandra 2.2.1 test cluster with 3 computers in it. Two of them are i7s and one is a somewhat slower i5, but I didn't bother when first setting things up to give this slower machine a proportionally lower number of vnodes, as I thought things would be IO bound (they all have SSDs and 16GB RAM). They're all on default 256 vnodes.

I'm finding Cassandra actually to be quite CPU intensive though and this i5 seems to be holding things up (running 100%x4 on HTOP). Can I reduce its number of Vnodes to say, 192 in cassandra.yaml, restart just that node, and expect the whole 3-machine cluster to rebalance? Share out the new vnode allocations automatically etc? Or do I have to do something on the i5 alone, or perhaps on all 3 machines with nodetool?

I am finding the documentation somewhat unclear on this as it talks mostly about adding new nodes rather than changing vnodes on existing hardware.


回答1:


A simple restart won't allow you to change the number of vnodes.

You'll need to do a nodetool decommission or nodetool removenode for the i5 node, then stop Cassandra on that node, scrub all the data, update num_tokens, then start Cassandra back up and let it rejoin the cluster as an empty new node with the reduced number of tokens. Then Cassandra will rebalance with the reduced number of tokens on the i5 box.

At least that's how it is in 2.1.9, but probably it is the same in the newer branches too.




回答2:


I don't have sufficient reputation to comment, but to answer Thomas Browne's question: Don't do that! If you drop the tables and keyspaces, you'll lose all the data on all the nodes. What you'll want to do is stop cassandra, go to your data directory on the node you're modifying, and rm -rf * the data in that directory. Eg: rm -rf /var/lib/cassandra/*



来源:https://stackoverflow.com/questions/32416642/cassandra-vnodes-can-i-lower-the-number-on-slower-nodes-and-expect-rebalancing

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!