如何限制Hadoop序列文件的大小



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

但是我想把输出序列文件限制在一些特定的大小,比如256MB。

是否有任何内置的方法来做到这一点?

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

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

您要查找的属性是:

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

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

相关内容

  • 没有找到相关文章

最新更新