【问题标题】:Reshuffle data evenly across Cassandra ring在 Cassandra 环中均匀地重新洗牌数据
【发布时间】:2016-07-02 06:48:17
【问题描述】:

我有 Apache Cassandra 2.1.12 的三节点环。当它是 2 节点环时,我插入了一些数据,然后在环中添加了一个 172.16.5.54 节点。我在我的戒指中使用 vnode。问题是数据分布不均匀,因为所有权似乎分布均匀。那么,如何重新分配环上的数据。我尝试过nodetool repairnodetool cleanup,但仍然没有运气。

此外,这个 load and own 列在nodetool status 输出中意味着什么。 另外,如果我从文件中的一个节点导入数据,则如果超出这三个节点。因此,CPU 利用率上升到 100%,最后其余两个节点上的数据均匀分布,但不会在导入运行节点上分布。为什么会这样?

Datacenter: datacenter1
    =======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address       Load       Tokens  Owns (effective)  Host ID                               Rack
    UN  172.16.5.54   1.47 MB    256     67.4%             40d07f44-eef8-46bf-9813-4155ba753370  rack1
    UN  172.16.4.196  165.65 MB  256     68.3%             6315bbad-e306-4332-803c-6f2d5b658586  rack1
    UN  172.16.3.172  64.69 MB   256     64.4%             26e773ea-f478-49f6-92a5-1d07ae6c0f69  rack1

【问题讨论】:

  • 我认为您还需要运行nodetool cleanupDocs are here。 "向集群添加新节点后,使用此命令删除不需要的数据。"
  • @LHWizard 没有任何作用

标签: cassandra datastax cassandra-2.1


【解决方案1】:

输出中的列针对 cassandra 2.1.x in this doc 进行了解释。负载是 cassandra 数据目录中的文件系统数据量。您的 3 个节点似乎不平衡,这可能意味着您的分区键在单个节点 (172.16.4.196) 上聚集,有时称为热点。

Owns 列是“每个数据中心的节点拥有的数据的百分比乘以复制因子”。所以我可以推断出你的 RF=2,因为每个节点拥有大约 2/3 的数据。

【讨论】:

    【解决方案2】:

    您需要修复表的分区键。

    Cassandra 根据分区键将数据分发到节点(使用散列分区范围)。 因此,由于某些原因,您有大量数据用于少数分区键值,而几乎没有用于其余分区键值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-16
      • 1970-01-01
      • 2021-04-23
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 2017-08-10
      • 2018-11-28
      相关资源
      最近更新 更多