在Cassandra执行Select Statement

时间:2017-11-13 19:15:01

标签: caching cassandra memcached cassandra-3.0

我在Cassandra遇到过问题。请帮帮我..

我正在以500毫秒的行表执行Select语句,间隔为1毫秒。一段时间后,我收到消息"All host(s) tried for query failed. First host tried, 10.1.60.12:9042: Host considered as DOWN. See innerErrors"

我执行select语句:

select * from demo.users

这回到我身上5K行。 users表中有500K行。

我不知道出了什么问题。我没有更改cassandra.yaml文件。

我需要对内存缓存进行设置吗?运行select语句时磁盘I / O太多了。

请帮帮我

1 个答案:

答案 0 :(得分:3)

范围查询(选择*没有主键或标记范围)可能是一个非常昂贵的查询,必须至少命中每个副本集中的一个(取决于数据集的大小)。如果您尝试读取整个数据集或进行批处理,最好使用spark连接器或表现得类似,并查询单个令牌范围以防止对协调器施加过多负担。

如果您打算使用效率低下的查询(这很好,只是不要期望与正常读取相同的吞吐量),您可能需要更多资源或一些专门的调优。你可以添加更多的节点或查看什么导致它变为DOWN。很可能它的堆来自堆加载,因此可以检查GC日志。如果你有可用的内存,你可以增加堆。最大堆大小是个好主意,因为阅读所有东西,系统缓存不会有意义。在jvm.options中使用G1超过16gb(你应该这样)。