如何限制Hadoop Sequence文件的大小?

时间:2013-03-25 07:59:38

标签: hadoop mapreduce sequencefile

我正在使用txt作为输入编写Hadoop seq文件。 我知道如何从文本文件中编写序列文件。

但我想将输出序列文件限制为某个特定大小,例如256MB。

是否有任何内置方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

AFIAK你需要编写自己的自定义输出格式来限制输出文件大小 - 默认情况下,FileOutputFormats为每个reducer创建一个输出文件。

另一种选择是正常创建序列文件,然后创建第二个作业(仅映射),使用标识映射器,然后修改最小/最大输入分割大小,以确保每个映射器每个仅处理¬256MB。这意味着输入文件og 1GB将由4个映射器处理并创建¬256MB的输出文件。您将获得较小的文件,其中输入文件为300MB(256MB映射器和44MB映射器将运行)。

您正在寻找的属性是:

  • mapred.min.split.size
  • mapred.max.split.size

它们都配置为字节大小,因此将它们都设置为268435456