如何查看长期运行的 Cassandra 操作的进度?

Posted

技术标签:

【中文标题】如何查看长期运行的 Cassandra 操作的进度?【英文标题】:How can I view the progress of long-running Cassandra operations? 【发布时间】:2014-03-14 08:05:40 【问题描述】:

Cassandra 中的一些操作似乎需要很长时间才能完成,我正在尝试确定了解其进度的方法,或确定系统是否已停止。

我特别感兴趣的两个是:

nodetool decommission nodetool repair

This 似乎建议您可以使用nodetool compactionstats 来查看nodetool repair 的进度,但nodetool compactionstats 没有输出任何我可以从中获得进度的东西。压缩作业来来去去,但待处理作业的数量似乎徘徊在 40 左右。底部还有一个计时器,它似乎正在下降,但下降的速度非常缓慢。 (我会说它每 10 分钟下降大约 3 分钟? 它只是翻了两番。)

一个聊天室建议我使用nodetool netstats 来“查看流”以进行停用,但同样,这只是向我展示了一些“流”正在发生,以及它们有多完整。大多数被列为 100%(或更多,在某些情况下!),偶尔,它们都是,但会出现新的流,所以我不知道这如何传达 decom 的进展。

【问题讨论】:

同意这一点。不仅具有维修和分解功能;但也有压缩和引导。通常,这些操作被分成更小的任务,nodetool/logs 只显示当前任务的进度和估计。无法判断整个操作的完成程度。 【参考方案1】:

我认为 datastax 提供了一个 OpsCentre,它可以在 Activity 栏上显示活动的进度。

每个 cassandra 节点都需要运行 datastax-agent。

在这里查看:http://www.datastax.com/what-we-offer/products-services/datastax-opscenter

我不确定是否有命令行工具可以做同样的事情

【讨论】:

以上是关于如何查看长期运行的 Cassandra 操作的进度?的主要内容,如果未能解决你的问题,请参考以下文章

Uber如何做到每秒100万次写入操作?在多个数据中心使用Mesos和Cassandra

如何设置cassandra的用户名和密码

如何设计可手动终止及查看当前进度的任务

cassandra高级操作之JMX操作

如何查看 Dask 计算任务的进度?

每秒上百万次的跨数据中心写操作?Uber是如何使用Mesos和Cassandra来处理的