0

在 hadoop 文件系统中,我有两个文件,分别是 X 和 Y。通常,hadoop 会生成大小为 64 MB 的文件 X 和 Y 块。是否可以强制 hadoop 划分两个文件,以便从 X 的 32 MB 和 Y 的 32 MB 创建一个 64 MB 的块。换句话说,是否可以覆盖文件分区的默认行为?

4

1 回答 1

0

文件分区是 FileInputFormat 的一个功能,因为它在逻辑上取决于文件格式。您可以使用任何其他格式创建自己的输入。所以每个文件 - 你可以做到。
在单个拆分中混合不同文件的两个部分听起来有问题 - 因为文件是处理的基本单元。
你为什么有这样的要求?我看到下面的要求。可以说,必须至少部分牺牲数据局部性——我们可以将 map local 运行到一个文件,但不能同时运行到两个文件。
我建议构建某种“文件对”文件,将其放入分布式缓存中,然后在映射函数中从 HDFS 加载第二个文件。

于 2012-04-23T17:53:08.453 回答