映射器(Mapreduce)中的中间文件



所以我是Hadoop世界的新手,我正在努力了解映射器和还原器是如何工作的,我的问题是:

我有一个长映射器,在生成[key,value]对之前,需要生成一些中间文件。例如,在一个完整的映射器中:文件a和B作为输入,我需要一个带有一些无法减少的中间文件的输出文件E。

file A -> file C
file B -> file D
file C + file D -> file E

有可能存档这个吗?中间文件是否保留在节点中?

这是传统方法无法实现的。但有两种方法是可能的:

  • 从每个映射器中,您可以创建&写入HDFS上的文件。请注意,由于根据输入数据的大小/文件的数量,可能有许多映射程序并行运行,因此文件名必须是唯一的
  • 更好的方法:从reducer的mapper中发出一个复杂的键。这个复杂的密钥有两个部分:IdentifierOfKey:key。IdentifierOfKey只是一个标志,表示此记录需要转到文件E。现在在reducer中,您可以使用多个输出将数据获取到多个文件中

相关内容

  • 没有找到相关文章

最新更新