MapReduce全局排序细节

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

        全局排序是通过将进入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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值