【发布时间】:2015-05-25 22:18:18
【问题描述】:
我是 Cassandra 的新手,有以下问题:
我有一个 7 节点 Cassandra (v2.0.11) 集群和一个包含 10k 行的表。 我运行了一个从该表读取数据的 hadoop 作业(数据节点当然位于 cassandra 节点上),我看到只有 7k 行被读取到映射阶段。
我检查了CqlInputFormat 源代码并注意到构建了一个 CQL 查询来选择节点本地日期,并且还添加了 LIMIT 子句(默认为 1k)。这样7k读行就可以解释了:7 nodes * 1k limit = 7k rows read total
可以使用CqlConfigHelper更改限制:
CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), "1000");
请帮助我解决以下问题:
这是理想的行为吗?
为什么CqlInputFormat 不会翻阅其余行?
这是一个错误还是我应该增加InputCQLPageRowSize 值?
如果我想读取表中的所有数据并且不知道行数怎么办?
【问题讨论】:
标签: hadoop cassandra cassandra-2.0