0

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

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

有没有内置的方法可以做到这一点?

4

1 回答 1

1

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

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

您正在寻找的属性是:

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

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

于 2013-03-25T10:51:59.603 回答