【问题标题】:Increasing size no of mapper增加映射器的大小
【发布时间】: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


    【解决方案1】:

    PigStorage 中的压缩支持不提供splitting ability。对于 pig 的可拆分 lzo 压缩支持,您需要 elephant-bird library from twitter。此外,要使用现有的常规 lzo 文件进行拆分工作(正确吗?),您需要在加载猪脚本之前对它们进行索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-03
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多