shuffle中关键阶段sort的示例分析
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍了shuffle中关键阶段sort的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。源码中有这样一段代码1. M
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
处置网络安全风险流程图
cmmi 软件开发过程
广西网络技术分类市场
数据库系统的数据控制功能
linux服务器创建应用用户
云南省网络安全周活动
db2创建数据库连接
数据库设计基本原理
关于客户端服务器交互的图片
外盘期货软件开发租用
福州康乐网络技术
做一个网络安全产品
税务局冬奥会网络安全
查看某个数据库怎么打
excel怎么统计的数据库
对软件开发成果保密时间
服务器安装工程师加拿大
剑侠世界选不了服务器
网络安全攻击成本
网络技术研修个人研修总结
v字型软件开发流程
配置apche服务器的时候
浙大网络安全冠军
win8建立ftp服务器
重庆crm软件开发服务费
数据库是一个应用软件吗
网络安全 工作责任制度
对软件开发成果保密时间
什么叫服务器远程登录
杨浦区工程软件开发定制价格