我将使用 map/reduce 合并一些在相同目录下的小文件。我看到有人说使用流将非常简单,但现在我只能使用JAVA映射/reduce。 现在我的解决方案是逐条记录读取文件并将它们写入同一个输出文件。但我认为这是低效的。是否可以将整个文件的内容用作映射器的值,以便提高 I/O 效率? 感谢您的回复!
这样做的"低效"方法是只对文件进行分类并将其写回:
hadoop fs -cat /path/to/files/*.txt | hadoop fs -put - /output/path/blobbed.txt
您可能会发现,这对于更大的数据集也很好用。