增加猪的映射器

时间:2014-05-16 13:18:50

标签: hadoop cassandra apache-pig

我正在使用pig从CssSrarage加载来自Cassandra的数据。我有4个数据节点,每个节点可以有7个映射器,Cassandra有大约3000万个数据。我这样跑的时候

LOAD 'cql://keyspace/columnfamily' using CqlStorage需要27个映射器才能运行。

但是如果我在加载函数中给出where子句,比如

LOAD 'cql://keyspace/columnfamily?where_clause=id%3D100' using CqlStorage它总是需要一个映射器。

任何人都可以帮我增加映射器

1 个答案:

答案 0 :(得分:0)

它从您的WHERE子句看起来就像您的地图输入只会是一个键,这就是为什么您只获得一个映射器的原因。 Hadoop将根据输入键的数量分配映射器。如果您只有一个输入键,则其他映射器将不执行任何操作。

最重要的是,如果您在where子句中指定分区键,您将获得一个映射器(因为它的分布方式)。基于这些评论我认为你不仅仅是对一个学生进行分析,所以你没有理由指定分区键。您似乎也没有任何对二级索引有意义的列。所以我不确定为什么你甚至有一个where子句。

从您的数据模型中可以看出,您必须映射所有数据,以获得学生和时间范围组合的汇总标记。您可以更改为时间序列数据模型并成功过滤where子句,但您当前的模型不支持此功能。