这章的名称叫反转排序,应该说让人非常的迷惑。
这里我觉得一篇Blog对Order Inverse的解释更合理一些(http://blog.csdn.net/hadoop_mapreduce/article/details/39802287),根据这篇文章实际上Order Inverse的实质是由开发者控制框架Partition的规则,来保证框架在Shuffle的时候能够按照期望将会被一起处理的数据Shuffle到同一个节点上。
实现方法,继承Partitioner类,重写getPartition()通过job的setPartitionerClass()方法替换默认的Partitioner。
书里给的相对词频计算在MapReduce的模式下必须使用Order Inverse这种方法,因为需要有做除法运算,所以要保证Key相同的数据要分到一个节点上计算,否则会出现错误。
但是Spark就没有这个问题,不需要通过自定义Partitioner,来达到这种计算效果。
《数据算法-Hadoop/Spark大数据处理技巧》读书笔记(三)——Order Inverse
最新推荐文章于 2018-09-06 11:50:09 发布