【发布时间】:2012-09-21 12:58:53
【问题描述】:
我是 PIG 和 HDFS 的新手。这就是我想要做的。
我有很多纯文本 LZO 压缩格式错误的服务器日志文件 - 每天大约 2 GB 从大约 400 台服务器生成。
我正在尝试利用 map reduce 使用我的 java 格式化程序格式化和清理 HDFS 中的数据,然后在 Hive 中加载输出。
我的问题是我的 PIG 脚本只生成一个映射器,大约需要 15 分钟。顺序读取文件。这对于我每天必须在 hive 中加载的数据量是不切实际的。
这是我的猪脚本。
SET default_parallel 100;
SET output.compression.enabled true;
SET output.compression.codec com.hadoop.compression.lzo.LzopCodec
SET mapred.min.split.size 256000;
SET mapred.max.split.size 256000;
SET pig.noSplitCombination true;
SET mapred.max.jobs.per.node 1;
register file:/apps/pig/pacudf.jar
raw1 = LOAD '/data/serverx/20120710/serverx_20120710.lzo' USING PigStorage() as (field1);
pac = foreach raw1 generate pacudf.filegenerator(field1);
store pac into '/data/bazooka/';
看起来 mapred.min.split.size 设置不起作用。我可以看到只有 1 个映射器正在启动,它适用于集群的单个服务器上的整个 2 GB 文件。由于我们有一个 100 个节点的集群,我想知道如果我可以生成更多的映射器,我是否可以并行使用更多的服务器。
提前致谢
【问题讨论】:
标签: hadoop apache-pig