我要合并使用map / reduce在同一个dir下的一些小文件。我看到有人说使用流将非常简单,但现在我只能使用JAVA map / reduce。 现在我的解决方案是一个记录一个记录读取文件并将它们写入相同的输出文件。但我认为这是低效的。我可以将整个文件的内容用作映射器的值,这样我可以提高I / O效率吗? 谢谢你的回复!
答案 0 :(得分:3)
执行此操作的“低效”方法是捕获文件并将其写回:
hadoop fs -cat /path/to/files/*.txt | hadoop fs -put - /output/path/blobbed.txt
您可能会发现,即使是更大的数据集也可以正常使用。