Hadoop Cassandra CqlInputFormat 分页
Hadoop Cassandra CqlInputFormat pagination
我是 Cassandra 的新手,有以下问题:
我有一个 7 节点 Cassandra (v2.0.11) 集群和一个有 10k 行的 table。
我 运行 一个 hadoop 作业(数据节点当然驻留在 cassandra 节点上)从那个 table 读取数据,我看到只有 7k 行被读取到映射阶段。
我检查了 CqlInputFormat
源代码并注意到 CQL 查询是针对 select 节点本地日期构建的,并且还添加了 LIMIT 子句(默认为 1k)。这样7k读行就可以解释了:
7 nodes * 1k limit = 7k rows read total
可以使用 CqlConfigHelper
更改限制:
CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), "1000");
请帮我解决以下问题:
这是期望的行为吗?
为什么 CqlInputFormat
不翻阅其余行?
这是一个错误还是我应该增加 InputCQLPageRowSize
值?
如果我想读取 table 中的所有数据并且不知道行数怎么办?
我的问题与 cassandra 2.0.11 中的一个错误有关,该错误在底层 CQL 查询中添加了一个奇怪的 LIMIT 子句运行将数据读取到地图任务:
我将那个问题发布到 cassandra jira:https://issues.apache.org/jira/browse/CASSANDRA-9074
事实证明,该问题与 cassandra 2.0.12 中修复的以下错误密切相关:https://issues.apache.org/jira/browse/CASSANDRA-8166
我是 Cassandra 的新手,有以下问题:
我有一个 7 节点 Cassandra (v2.0.11) 集群和一个有 10k 行的 table。 我 运行 一个 hadoop 作业(数据节点当然驻留在 cassandra 节点上)从那个 table 读取数据,我看到只有 7k 行被读取到映射阶段。
我检查了 CqlInputFormat
源代码并注意到 CQL 查询是针对 select 节点本地日期构建的,并且还添加了 LIMIT 子句(默认为 1k)。这样7k读行就可以解释了:
7 nodes * 1k limit = 7k rows read total
可以使用 CqlConfigHelper
更改限制:
CqlConfigHelper.setInputCQLPageRowSize(job.getConfiguration(), "1000");
请帮我解决以下问题:
这是期望的行为吗?
为什么 CqlInputFormat
不翻阅其余行?
这是一个错误还是我应该增加 InputCQLPageRowSize
值?
如果我想读取 table 中的所有数据并且不知道行数怎么办?
我的问题与 cassandra 2.0.11 中的一个错误有关,该错误在底层 CQL 查询中添加了一个奇怪的 LIMIT 子句运行将数据读取到地图任务:
我将那个问题发布到 cassandra jira:https://issues.apache.org/jira/browse/CASSANDRA-9074
事实证明,该问题与 cassandra 2.0.12 中修复的以下错误密切相关:https://issues.apache.org/jira/browse/CASSANDRA-8166