我一直在使用 Pig 和我的 Cassandra 数据来完成各种令人惊奇的分组壮举,而这些壮举几乎不可能用命令式的方式编写。我正在使用 DataStax 的 Hadoop 和 Cassandra 集成,我不得不说它令人印象深刻。向那些家伙致敬!
我有一个非常小的沙箱集群(2 个节点),我正在其中对该系统进行一些测试。我有一个 CQL 表,其中有大约 53M 行(每个大约 350 字节),我注意到 Mapper 之后需要很长时间来处理这些 53M 行。我开始查看日志,发现地图反复溢出(我看到映射器有 177 次溢出),我认为这是问题的一部分。
CassandraInputFormat 和 JobConfig 的组合仅创建一个映射器,因此该映射器必须从表中读取 100% 的行。我称之为反平行 :)
现在,这张图中有很多齿轮在工作,包括:
- 2个物理节点
- hadoop 节点位于“Analytics”DC(默认配置)中,但物理上位于同一机架中。
- 我可以使用 LOCAL_QUORUM 查看作业
谁能指出我如何让 Pig 创建更多输入的方向Splits这样我就可以运行更多映射器?我有23个槽位;一直只用一个似乎很遗憾。
或者,我完全疯了,不明白这个问题吗?我欢迎这两种答案!
你应该设置pig.noSplitCombination = true
。您可以在三个地方之一执行此操作。
调用脚本时:
dse pig -Dpig.noSplitCombination=true /path/to/script.pig
在 Pig 脚本本身中:
SET pig.noSplitCombination true
table = LOAD 'cfs://ks/cf' USING CqlStorage();
或永久在/etc/dse/pig/pig.properties
。取消注释:
pig.noSplitCombination=true
否则,Pig 可能会将您的总输入路径(组合)设置为处理: 1.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)