【问题标题】:Cassandra - SSTable Readpth & Write PathCassandra - SSTable 读写路径
【发布时间】:2014-07-18 11:21:34
【问题描述】:

Cassandra 专家您好!!!

如何分析 Cassandra 的读取路径和写入路径? 基本上,我想知道什么是读取路径和写入路径测量值,如果我给出一些示例行键,我怎么知道该特定行键当前有多少个 SStable,以及详细信息在哪里?基于这个细节,我想知道是什么导致了缓慢和读取路径以及可以改进的地方。 我特别想知道特定 RowKey 有多少个 SSTable 以及它们的位置?这是我正在为客户开发的 POC 之一。 提前谢谢...

【问题讨论】:

    标签: cassandra datastax


    【解决方案1】:

    另一种可能的机制是使用 nodetool getsstables <keyspace><cf><key 这将为您提供包含密钥的 sstables 列表。

    另一种选择是编写一个脚本,该脚本在文件夹中的所有文件上运行/重复 sstable2json,并对特定键进行 greps。找到密钥后,您可以将该文件写入某种数据结构,然后从数据结构中获取相同的详细信息。

    【讨论】:

    • 是的,该命令在 Windows 中作为单节点工作。当我在 linux 和 3 节点集群中运行它时../nodetool getendpoints 'c11b3e8b-6f80-4900-abdd-93d9472b59df ' 我得到的输出为 130.5.127.43 130.8.119.87 并登录到上述机器之一并运行 ./nodetool getsstables 'c11b3e8b-6f80-4900-abdd-93d9472b59df' 但它没有带来任何结果。建议?
    【解决方案2】:

    文档往往是一个很好的起点:

    我怎么知道,该特定行键当前有多少个 SStables

    您可以使用sstable2json 以 json 格式查看 sstables 中包含的原始信息,并查找特定键以查看它们如何在副本之间分布。如果你有很多 sstables,这会很麻烦,所以你可以使用nodetool getendpoints <keyspace> <table> <key> 来测试哪个节点实际拥有密钥,然后开始将 sstables 转换为 json。

    【讨论】:

    • 您好 Lyuben Todorov,感谢您的回答。我了解如何找出哪个节点拥有特定密钥的数据。是否有一个命令可以用来找出特定的 sstables 数据分布在多少个钥匙?你是说我必须转换每个 *Data.db sstables 并找出有多少文件具有该特定键的数据?我确信必须有一个命令来找出包含特定键数据的文件名。谢谢,
    猜你喜欢
    • 2018-09-15
    • 2017-02-02
    • 2017-02-13
    • 2015-05-21
    • 2020-04-25
    • 2020-04-27
    • 2015-06-06
    • 2021-06-10
    • 1970-01-01
    相关资源
    最近更新 更多