Hadoop 比较大文本文件 | Bo Wang's Soliloquise
最近工作中经常碰到这样的问题:有两个Sequence File,求出他们之间key的交集或者差集;亦或是有一个包含key的map file,需要在一个大文件中找出所有这些key对应的条目。这样的问题利用hadoop自带的性质可以有巧妙的解法。
在这之前有几个事实需要理解:
1、SequenceFile是hdfs自带的key, value格式文件
2、SequenceFile通常根据reducer的数目被分成许多part
3、每个part内部按照key排序,各个part之间是独立关系,全局的key是无序的
直观的想法是把两个文件排序,然后用merge的方法比较。但是刚才说了sequenceFile是局部有序,全局无序。如果我们把两个大文件都排序好了再一行一行比较不仅效率低下还失去了用hadoop的意义。那么利用局部排序的特点能不能做同样的事?可以!
Read full article from Hadoop 比较大文本文件 | Bo Wang's Soliloquise
No comments:
Post a Comment