shuffle中关键阶段sort的示例分析
发表于:2024-12-01 作者:千家信息网编辑
千家信息网最后更新 2024年12月01日,这篇文章主要介绍了shuffle中关键阶段sort的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。源码中有这样一段代码1. M
千家信息网最后更新 2024年12月01日shuffle中关键阶段sort的示例分析
这篇文章主要介绍了shuffle中关键阶段sort的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
源码中有这样一段代码
1. Map端排序获取的比较器
public RawComparator getOutputKeyComparator() { // 获取mapreduce.job.output.key.comparator.class,必须是RawComparator类型,如果没设置,是null Class extends RawComparator> theClass = getClass( JobContext.KEY_COMPARATOR, null, RawComparator.class); // 如果用户自定义了这个参数,那么实例化用户自定义的比较器 if (theClass != null) return ReflectionUtils.newInstance(theClass, this); // 默认情况,用户是没用自定义这个参数 // 判断Map输出的key,是否是WritableComparable的子类 // 如果是,调用当前类的内部的Comparator! return WritableComparator.get(getMapOutputKeyClass().asSubclass(WritableComparable.class), this); }
总结: 如何对感兴趣的数据进行排序?
① 数据必须作为key
② 排序是框架自动排序,我们提供基于key的比较器,也就是Comparator,必须是RawComparator类型
a) 自定义类,实现RawComparator,重写compare()
指定mapreduce.job.output.key.comparator.class为自定义的比较器类型
b)key实现WritableComparable(推荐)
③ 实质都是调用相关的comparaTo()方法,进行比较
2. Reduce端进行分组的比较器
RawComparator comparator = job.getOutputValueGroupingComparator();// 获取mapreduce.job.output.group.comparator.class,必须是RawComparator类型// 如果没用设置,直接获取MapTask排序使用的比较器// 也是比较keypublic RawComparator getOutputValueGroupingComparator() { Class extends RawComparator> theClass = getClass( JobContext.GROUP_COMPARATOR_CLASS, null, RawComparator.class); if (theClass == null) { return getOutputKeyComparator(); } // 如果设置了,就使用设置的比较器 return ReflectionUtils.newInstance(theClass, this); }
感谢你能够认真阅读完这篇文章,希望小编分享的"shuffle中关键阶段sort的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
比较器
排序
篇文章
类型
用户
示例
阶段
中关
分析
兴趣
参数
数据
也就是
代码
价值
同时
子类
实例
实质
情况
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
高淳区网络技术服务经验丰富
社区网络安全宣传
绿色版的数据库
网络技术开发app
成都乐云互动网络技术怎么样
员工应遵守网络安全管理规定
广东通用软件开发价格走势
云服务器显示屏幕太小
怎么进入腾讯云服务器管理
单位网络安全宣传稿范文
如何远程把数据库备份到电脑
绿书签网络安全课
解决数据库锁
软件开发学数据编程
电脑总是显示正在连接服务器
广东游戏软件开发公司排名
数据库分离改路径
天津发展软件开发操作
linux搭建数据库
同花顺客户端怎么切换服务器
路人甲数据库
高中信息技术 数据库说课稿
美国服务器推荐
安卓软件开发的App
属于键值数据库的是
中兴的网络安全愿景
宿迁机械软件开发价格多少
网络安全小故事400字
上位机软件开发相关书籍
学生管理数据库需求概述