我正在使用hadoopmapreduce对一个大文档进行排序,并使用 KeyFieldBasedPartitioner
将不同的输入分配到不同的减速器。我要解决这个问题的想法是让Map器发送每个单词的第一个字母作为关键字,单词作为值。每一个字母相同的单词都会被放到一个减缩器中,减缩器会对所有以这个字母开头的单词进行排序,然后在最后我只使用这个字母- getmerge
并将所有结果合并到一个文档中,然后查看完全排序的文档。
所以到目前为止我的整个过程是这样的:
巨型文档->Map器(删除标点符号并拆分单词)->输出第一个字母、单词对 KeyFieldBasedPartitioner
->将其发送到26个减速机中的一个(每个字母一个)->减速机排序
现在减速机都是各自分类的,但是当我使用- getmerge
为了组合它们,文档从以“n”开头的单词开始,然后以以“m”开头的单词结束。如何指定它以使最终输出有序?
暂无答案!
目前还没有任何答案,快来回答吧!