在hadoop中将已排序文件合并为单个已排序文件
我有10个由mapreduce创建的文件。它们按长键排序。我想把这些文件合并成一个文件。所以他们应该被分类 我尝试了getmerge命令。但这是没有用的。因为最终文件未排序。它只将文件粘贴到单个文件中,没有任何排序。那么,解决方案是什么 回答 使用此命令:在hadoop中将已排序文件合并为单个已排序文件,hadoop,Hadoop,我有10个由mapreduce创建的文件。它们按长键排序。我想把这些文件合并成一个文件。所以他们应该被分类 我尝试了getmerge命令。但这是没有用的。因为最终文件未排序。它只将文件粘贴到单个文件中,没有任何排序。那么,解决方案是什么 回答 使用此命令: sort -mnr <src> sort-mnr 您也可以访问此,因为输出数据很大,所以将文件送到本地计算机并进行排序不是一个好的选择。我认为您应该编写自己的分区器,它可以在不重叠的范围内分割键。例如[0-1000][1000
sort -mnr <src>
sort-mnr
您也可以访问此,因为输出数据很大,所以将文件送到本地计算机并进行排序不是一个好的选择。我认为您应该编写自己的
分区器
,它可以在不重叠的范围内分割键。例如[0-1000][1000-2000]........执行MR作业后,您可以按照以下步骤操作:
hadoop fs -cat [dir]/* | hadoop fs -put - [destination file]
步骤2可以通过此代码实现您可以合并文件,但合并后的文件将不会被排序。但是,您可以编写map reduce作业并将数据排序为单个输出 我的意思是:
为什么不能用1个减速机运行map reduce作业?因为它需要很多时间
hadoop -getmerge command or
hadoop fs -cat [dir]/* | hadoop fs -put - [destination file]