hadoop cassandra cqlinputformat分页

vjrehmav  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(320)

我是Cassandra的新手,有以下问题:
我有一个7节点的cassandra(v2.0.11)集群和一个有10k行的表。我运行一个hadoop作业(datanodes当然驻留在cassandra节点上),从该表中读取数据,我看到只有7k行被读取到map阶段。
我查过了 CqlInputFormat 源代码,并注意到cql查询用于选择节点本地日期,还添加了limit子句(默认为1k)。因此7k读取行可以解释为: 7 nodes * 1k limit = 7k rows read total 可以使用更改限制 CqlConfigHelper :

CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), "1000");

请帮助我回答以下问题:
这是你想要的行为吗?
为什么? CqlInputFormat 不分页浏览其余行吗?
这是一个错误还是我应该增加 InputCQLPageRowSize 价值?
如果我想读取表中的所有数据,但不知道行数怎么办?

svdrlsy4

svdrlsy41#

我的问题与cassandra 2.0.11中的一个bug有关,该bug在底层cql查询运行中添加了一个奇怪的限制子句,以将数据读取到Map任务:
我把这个问题发到了Cassandra·吉拉:https://issues.apache.org/jira/browse/cassandra-9074
事实证明,该问题与cassandra 2.0.12中修复的以下错误密切相关:https://issues.apache.org/jira/browse/cassandra-8166

相关问题