在大数据集上计算cassandra超时中的查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在大数据集上计算cassandra超时中的查询相关的知识,希望对你有一定的参考价值。
这是我的桌子
CREATE TABLE star.star_event (
eventnumber int,
primarytracks int,
prodtime double,
antinucleus int,
eventfile int,
eventtime double,
histfile bigint,
multiplicity int,
nabovelb int,
nbelowlb int,
nlb int,
pt double,
runnumber int,
vertexx double,
vertexy double,
vertexz double,
PRIMARY KEY (eventnumber, primarytracks, prodtime)
) WITH CLUSTERING ORDER BY (primarytracks ASC, prodtime ASC)
我想做select count(1) from star_event
。我知道这是cassandra支持的有效查询,至少对于少量数据。但是有了庞大的数据集,似乎无法正常工作。
不断得到错误
ReadTimeout: Error from server: code=1200 [Coordinator node timed out
waiting for replica nodes' responses] message="Operation timed out -
received only 0 responses." info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}
增加ReadTimeout
中的默认cassandra.yaml
值仍然没有运气。有哪些可用的解决方法。
答案
我看到你用cassandra知道了你的方式;)而且你已经尝试过更改yaml文件了。你现在并没有真正做到这一点,只能使用cassandra(除了可能进一步增加超时,看看会发生什么)
基本上有时数据只是很大。所以你必须解决这个问题。有几种方法可以做到这一点:
- 通过外部进程执行计数 - spark总是对我很好,但我也编写了一些自己的工具来经常处理数据。您可以将此答案用于您自己的计数工具https://stackoverflow.com/a/23750872/7413631
- 尝试改造数据 - 但是这个对你没有好处我想是因为把桌子分成多个较小的一个似乎不是最佳的
- 如果你只是通过使用表统计
nodetool cfstats
:http://www.wentnet.com/blog/?p=24对球场感兴趣,请使用模糊cassandra近似(在128内) - 尝试使用计数器列,基本上每个插件都有一个更新,实际上会增加计数器值。但是,一旦开始计数,您还需要将其设置为某个初始值。
这一切都取决于,如果这个计数是你不经常做的事情,可以等待自己的脚本或火花是o.k.如果你必须立即拥有它我会去柜台专栏。
以上是关于在大数据集上计算cassandra超时中的查询的主要内容,如果未能解决你的问题,请参考以下文章
在小数据集上使用 GridSearch 并在大数据集上应用结果是个好主意吗?