
shuffle
随缘zzz
这个作者很懒,什么都没留下…
展开
-
GroupingComparator分组排序使用
GroupingComparator分组(辅助排序)对Reduce阶段的数据根据某一个或几个字段进行分组。分组排序步骤:1.自定义类继承WritableComparator2.重写compare()方法@Overridepublic int compare(WritableComparable a, WritableComparable b) {// 比较的业务逻辑 return result;}3.创建一个构造将比较对象的类传给父类protected OrderGroupingCo原创 2020-05-30 14:55:02 · 325 阅读 · 0 评论 -
hadoop中的Combiner合并操作
Shuffle中的Combiner合并Combiner父类是ReducerCombiner是在每一个MapTask所在的节点运行,Reducer是接收全局所有Mapper的输出结果Combiner能够应用的前提是不能影响最终的业务逻辑,在累加的情形下使用,但求平均值的时候不能使用combinerCombiner的实现过程1.自定义一个Combiner继承Reducer,重写Reduce方法public class WordcountCombiner extends Reducer<Text原创 2020-05-30 14:29:19 · 323 阅读 · 0 评论 -
Shuffle过程中重要的WritableComparable排序入门
WritableComparable排序MapTask和ReduceTask均会对数据按照key进行排序,改操作属于hadoop的默认行为,任何应用程序中的数据均会被排序,而不管逻辑上是否需要。默认排序按照字典顺序排序,且实现该排序的方法是快速排序。自定义排序WritableComparable当bean对象作为key传输,需要实现WritableComparable接口序列化过程://反序列化 @Override public void readFields(DataInput in)原创 2020-05-29 11:17:49 · 169 阅读 · 0 评论 -
Shuffle中的Partition分区(入门)
Partition分区:分区运行时间是在map后reducer前。解决如:要求将统计结果按照条件输出到不同文件中。此类问题。默认分区:自定义Partitionner步骤自定义的类继承Partitioner,重写getPartition()方法//前两个参数是map输出的K,V,最后一个参数是设置分区的数量,在Driver中设置public int getPartition(Text key, FlowBean value, int numPartitions) { //里面是控制分区的原创 2020-05-29 10:36:56 · 1293 阅读 · 0 评论