是否可以使用mapreduce作业按字典顺序对一个巨大的文本文件进行排序,该作业只有map任务,而没有reduce任务?
文本文件的记录由换行符分隔,文件大小约为1 Terra Byte。
如果任何人能提出一种方法来实现对这个巨大文件的排序,那就太好了。
发布于 2013-02-20 16:30:27
使用TreeSet in Map方法保存输入拆分中的整个数据,并将其持久化。最后我得到了排序后的文件!
发布于 2013-02-16 06:18:05
实际上,有一个与Hadoop捆绑在一起的排序示例。您可以通过检查类org.apache.hadoop.examples.Sort来查看示例代码是如何工作的。这本身工作得很好,但是如果你想让你的排序更灵活,你可以查看this。
发布于 2013-02-15 22:27:07
Hadoop中的排序是使用分区程序完成的-您可以编写自定义分区程序来根据您的业务逻辑需求进行排序。有关编写自定义分区程序http://jugnu-life.blogspot.com/2012/05/custom-partitioner-in-hadoop.html的信息,请参阅此链接
我并不提倡使用普通的linux排序命令对to级的数据进行排序-您将需要拆分数据以适合内存来对大文件大小进行排序:Parallel sort in linux
使用Hadoop MergeSort会更好、更方便:Hadoop MergeSort
您可以在这里查看来自Yahoo Hadoop团队(现在的Hortonworks)的一些Hadoop排序基准和分析:Hadoop Sort benchmarks
https://stackoverflow.com/questions/14896719
复制相似问题