大数据培训教程Shuffle机制Partition分区

发布时间:2020年08月31日作者:atguigu浏览次数:850

大数据培训教程Partition分区

1、问题引出
要求将统计结果按照条件输出到不同文件中(分区)。比如:将统计结果
按照手机归属地不同省份输出到不同文件中(分区)
2、默认Partitioner分区
public class HashPartitioner extends Partitioner{
public int getPartition (R key,v value, int numReduceTasks){
return (key.hashcode() & 工nteger.MAX_VALUE) numReduceTasks ;
默认分区是根据key的hashCode对ReduceTasks个数取模得到的。用户没法
控制哪个key存储到哪个分区。

大数据培训教程
大数据培训教程

4、分区总结大数据培训教程
(1〉如果ReduceTask的数量>getPartiticn的结果数,则会多产生几个空的输出文件part-r-00Oxx;
(2)如果1<ReduceTask的数量<getPartition的结果数,则有一部分分区数据无处安放,会Exception ;
(3)如果ReduceTask的数量=1,则不管MapTask端输出多少个分区文件,最终结果都交给这一个
ReduceTask,最终也就只会产生一个结果文件part-r-O0000 ;
(4)分区号必须从零开始,逐一累加。
5、案例分析大数据培训教程
例如:假设自定义分区数为5,则
(1) job.setNurmReduceTasks(1);会正常运行,只不过会产生一个输出文件
(2)job.setNumReduceTasks(2);会报错
(3)job.setNumReduceTasks(6);大于5,程序会正常运行,会产生空文件
让天不没有难学的技太

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷大数据培训,尚硅谷除了这些技术文章外还有免费的高质量大数据培训课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园(成都校区)