Cassandra多节点平衡

时间:2017-05-30 11:58:00

标签: cassandra

我已经在集群中添加了一个新节点,并期望Cassandra上的数据在节点之间保持平衡。 node status产生

$ nodetool status
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens       Owns (effective)  Host ID    Rack
UN  10.128.0.7   270.75 GiB  256          48.6%        1a3f6faa-4376-45a8-9c20-11480ae5664c  rack1
UN  10.128.0.14  414.36 KiB  256          51.4%        66a89fbf-08ba-4b5d-9f10-55d52a199b41  rack1

节点2的加载只有400KB,我们有时间序列数据和查询。如何重新平衡这些集群之间的负载? 两个节点的配置都是

cluster_name: 'cluster1'
 - seeds: "node1_ip, node2_ip"
num_tokens: 256
endpoint_snitch: GossipingPropertyFileSnitch
auto_bootstrap: false
谢谢你的时间:)

1 个答案:

答案 0 :(得分:3)

  

我已经在集群中添加了一个新节点,并希望Cassandra上的数据能够跨节点平衡。

明确设置`auto_bootstrap:false'告诉它这样做。

  

如何重新平衡负载?

  1. 将键区空间设置为2的RF。
  2. 运行nodetool -h 10.128.0.14 repair
  3. -Or -

    1. 从群集中取出10.128.0.14。
    2. 设置auto_bootstrap: true(或只删除它)。
    3. 然后启动节点。它应该加入并传输数据。
    4. Pro-tip:如果数据占用空间为270GB,那么您应该已经开始运行多个节点。从3个节点开始会更容易(这可能是你应该运行的最小节点)。