如何在 cassandra 中追溯列族的大分区

Posted

技术标签:

【中文标题】如何在 cassandra 中追溯列族的大分区【英文标题】:How to trace back a large partition of a column family in cassandra 【发布时间】:2016-09-15 18:43:42 【问题描述】:

通过 ops-center 和 nodetool cfstats,我能够发现键空间表的分区之一是 560 Mb,但无法找出是哪个分区。我们如何追踪表的哪个分区有那么大??

【问题讨论】:

【参考方案1】:

最快的方法是在日志中查找有关压缩大分区的消息。有点作弊,但它通常有效。

除此之外,您需要将 sstables 转储到 json,然后检查 json。有很多人为此在线编写了工具 - https://github.com/BrianGallew/cassandra_tools 就是一个例子。

【讨论】:

Hai @ Jeff Jirsa 我可以尝试编写可以扫描节点上所有 sstables 并找到分区的 shell 脚本,但我想知道的是我们如何才能找到分区在 sstables 中的分隔方式以及我们如何通过计算行数或字符数来确定大小,尽管我认为我无法找到确切的分区,但我认为我可以找到几个大分区,以便稍后搜索。 cat /var/log/cassandra/system.log | grep large 成功了。太棒了,谢谢!

以上是关于如何在 cassandra 中追溯列族的大分区的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra 数据模型

使用 MapReduce 作业高效处理 Cassandra 列族中的所有数据

如何在 cassandra 2.0.5 中删除表或列族?

调整 cassandra 中的写入性能

Cassandra 如何对静态列族进行排序

如何解决 Cassandra 中的问题“ConfigurationException:列族 ID 不匹配”