gpt4 book ai didi

java - cassandra的cqlsh控制台操作超时错误

转载 作者:太空狗 更新时间:2023-10-29 23:02:10 24 4
gpt4 key购买 nike

我有一个三节点 Cassandra 集群,我创建了一个包含超过 2,000,000 行的表。

当我在 cqlsh 中执行此 (select count(*) from userdetails) 查询时,出现此错误:

OperationTimedOut: errors={}, last_host=192.168.1.2

当我为更少的行或限制为 50,000 运行计数函数时,它工作正常。

最佳答案

count(*) 实际上是对所有数据进行分页。因此,没有限制的 select count(*) from userdetails 预计会在有那么多行时超时。这里有一些细节: http://planetcassandra.org/blog/counting-key-in-cassandra/

您可能需要考虑使用 Spark 自行维护计数,或者如果您只想要一个大概的数字,您可以从 JMX 获取它。

根据您的数据模型,要从 JMX 中获取它可能会有些棘手。要获取分区数,请获取 org.apache.cassandra.metrics:type=ColumnFamily,keyspace={{Keyspace}},scope={{Table }},name=EstimatedColumnCountHistogram mbean 和 sum增加所有 90 个值(这是 nodetool cfstats 的输出)。它只会为您提供 sstables 中存在的数字,以便使它更准确,您可以进行刷新或尝试从 MemtableColumnsCount mbean

估计内存表中的数字

对于一个非常基本的大概数字,您可以从 system.size_estimates 获取列出的所有范围内的估计分区数(请注意,这只是一个节点上的数字)。将其乘以节点数,然后除以 RF。

关于java - cassandra的cqlsh控制台操作超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29394382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com