一、概念
全局排序是通过将进入map端之前的数据进行随机采样,在采取的样本中设置分割点,通过分割点将数据进行分区
二、原理
将设置的分割点保存在二叉树中,Map Task 每输出一个数据就会去查找其对应的区间,以此来达到分区效果
三、易忘点
(1)全局排序处理的文件内容key----value按照TAB键分割的(例如k v);
(2)Mapper函数的输入数据类型为Text,Text类型(输出数据类型随意,但需要保证reduce端的输入数据类型与其一致)
(3)主函数中
1,定义分割点的存储路径(例如 String partitionPath="file:/E:/partition" 注意本地路径前要加file:/);
2, 设置InputFormat阶段的格式化类型(job.setInputFormatClass(KeyValueTextInputFormat.class));
3, 设置分区类为全局排序(jo

本文介绍了MapReduce全局排序的概念、原理和易忘点。全局排序通过数据随机采样和分割点设置实现分区。原理上,使用二叉树保存分割点,Map Task根据数据位置分区。易忘点包括:数据key-value按TAB分隔,Mapper输入输出数据类型规定,以及在主函数中设置分割点路径、InputFormat、Partitioner、分区数,并用RandomSample生成样本,最后写入和设置分割点。
最低0.47元/天 解锁文章
562

被折叠的 条评论
为什么被折叠?



