setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
2011-09-04 13:45
447 查看
Partitioner这个类是用来决定map输出时,什么样的key输出到同一个reduce节点(调用setPartitionerClass方法),但不保证到同一个reduce节点的key会在同一个group(即不一定在reduce的同一个iter迭代里)。注:map端当输出buffer到达内存的一定比例时,将内存中的数据写到磁盘,此时会按key进行排序,然后才写入磁盘。
由于Partitioner不保证同一个reduce节点的key会到一个group中,所以还需要Comparator来指定group的划分方法(调用setOutputValueGroupingComparator方法),一个group即一个iter迭代。
setOutputKeyComparatorClass方法很容易和setOutputValueGroupingComparator混淆,
setOutputValueGroupingComparator是用来决定group划分,一个group一个iter因此,一个group中的所有元素的key都是compare==0的。
setOutputKeyComparatorClass 设置的是key的比较器,默认是有一个的。因为需要不同的key值之间共享下values所用用这个比较器,比如,进来了 两个key 值是34 和45 如果通过group比较一样的话,那么先输入的key的34 的values和后进入的45的values合并在一起共同作为key是34的value。那KEY 45的value合并到34中了。在输出结果中,key 45 就不会被送到reduce了 而他的value被送到key 34中了。
而setOutputKeyComparatorClass是用来决定key的排序。
默认情况下,reduce节点上的数据是按key的升序字母序来排的,如果你要改变这个顺序(比如数字序)可以用setOutputKeyComparatorClass来指定自定义的类。
由于Partitioner不保证同一个reduce节点的key会到一个group中,所以还需要Comparator来指定group的划分方法(调用setOutputValueGroupingComparator方法),一个group即一个iter迭代。
setOutputKeyComparatorClass方法很容易和setOutputValueGroupingComparator混淆,
setOutputValueGroupingComparator是用来决定group划分,一个group一个iter因此,一个group中的所有元素的key都是compare==0的。
setOutputKeyComparatorClass 设置的是key的比较器,默认是有一个的。因为需要不同的key值之间共享下values所用用这个比较器,比如,进来了 两个key 值是34 和45 如果通过group比较一样的话,那么先输入的key的34 的values和后进入的45的values合并在一起共同作为key是34的value。那KEY 45的value合并到34中了。在输出结果中,key 45 就不会被送到reduce了 而他的value被送到key 34中了。
而setOutputKeyComparatorClass是用来决定key的排序。
默认情况下,reduce节点上的数据是按key的升序字母序来排的,如果你要改变这个顺序(比如数字序)可以用setOutputKeyComparatorClass来指定自定义的类。
相关文章推荐
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- setPartitionerClass、setOutputKeyComparatorClass 与 setOutputValueGroupingComparator
- setPartitionerClass, setOutputKeyComparatorClass and setOutputValueGroupingComparator
- setOutputValueGroupingComparator与setOutputKeyComparatorClass
- hadoop 由job.setOutPutKeyClass和job.setOutPutValueClass引发的键值对输出类型不匹配错误
- 04Hadoop中的setPartitionerClass/SortComparator/GroupingComparator问题
- Hadoop自定义排序和自定义数据类型使用(setSortComparatorClass和setGroupingComparatorClass)
- hadoop 的job.setOutputKeyClass和job.setOutputValueClass的几个问题
- Hadoop自定义排序和自定义数据类型使用(setSortComparatorClass和setGroupingComparatorClass)
- Hadoop中的setOutputKeyClass和setOutputValueClass
- mr 过程setSortComparatorClass和setGroupingComparatorClass
- job.setOutputKeyClass(IntWritable.class) job.setOutputValueClass(Text.class);
- hadoop setSortComparatorClass和setGroupingComparatorClass的作用及异同
- hadoop 的job.setOutputKeyClass和job.setOutputValueClass的几个问题
- Error:(45, 0) Cannot set the value of read-only property 'outputFile' for ...
- gpio_direction_output vs gpio_set_value之间的使用关系
- question:setValue:forUndefinedKey: this class is not key value coding-compliant for the key
- android studio3.0(二)Cannot set the value of read-only property 'outputFile'
- gpio_direction_output 与 gpio_set_value