首页 > 解决方案 > 如何在没有本地文件系统帮助的情况下将 HDFS 中的多个文件附加到 HDFS 中的单个文件?

问题描述

我正在学习hadoop。我现在遇到了一个问题。我运行了 mapreduce 作业,输出存储在多个文件中,但不是单个文件。我想将它们全部附加到 hdfs 中的单个文件中。我知道appendToFilegetmerge命令。但它们仅适用于其中一个local file system to hdfshdfs to local system但不适 用于HDFS to HDFS. 有没有办法在不接触本地文件系统的情况下将 HDFS 中的输出文件附加到 HDFS 中的单个文件?

标签: hadoophdfs

解决方案


这样做的唯一方法是强制您的 mapreduce 代码使用一个 reducer,例如,通过一个键对所有结果进行排序。

然而,这违背了拥有分布式文件系统和多个处理器的目的。所有 Hadoop 作业都应该能够读取文件目录,而不是孤立地处理单个文件

如果您需要从 HDFS 下载单个文件,那么您应该使用 getmerge


推荐阅读