关注
1.mapreduce中为何要hash partition分区
默认是hash分区 为了打散数据 分布式处理
分区方式可以自己定义 实现分区器自定义实现;
public class CustomPartitioner extends Partitioner<Text,Object>{
@Override
public int getPartition(Text key,Object value,int numPartitions){
//控制分区代码逻辑 返回int即可
return partition;
}
}
2.mapreduce中为何使用快拍和归并排序
快排:因为内存中排序比较快
数据在内存中是按照 entry1(k1v1),entry(k2v2),entry(k3v3) 这种方式排列的, kv组成一个entry 快排效率高
归并:对多个有序的小文件进行排序,不能单靠内存排,得借助磁盘
比如三个小文件分别是
1,4,6,8
1,5,8,8
0,3,7,11
同时打开所有小文件 分别使用迭代器取出第一个数 即1,1,0
此时0最小 将0追加写入新文件 并从三号文件通过迭代器拿出下一个数3
此事1最小 将1追加写入新文件 并从一号文件通过迭代器拿出下一个数4
直到所有文件都被迭代完 总的排序也就完成了
感觉会问你哪里用到排序了
1.map端的环形缓冲区用到快排
2.map端的小文件合并用到归并排序
3.reduce端将从map端拉取的文件进行归并排序
#数仓开发#
查看原帖
1 评论
相关推荐
2025-12-19 20:58
北京科技大学 硬件测试 点赞 评论 收藏
分享
点赞 评论 收藏
分享
mjasjon:你能找到更好的那就去更好的啊 嫌低有什么意义? 还qs50呢 干嘛不留美或者直接家里蹲? 神人
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
1434次浏览 36人参与
# 产品人专业大盘点 #
68135次浏览 323人参与
# 春招什么时候投? #
12011次浏览 194人参与
# 产品每日一题 #
85013次浏览 694人参与
# 春节前,你还在投简历吗? #
16135次浏览 182人参与
# 牛友的春节生活 #
9448次浏览 180人参与
# 我们是不是被“优绩主义”绑架了? #
31563次浏览 480人参与
# 备战春招/暑实,现在应该做什么? #
6370次浏览 179人参与
# 制造业的秋招小结 #
143133次浏览 2088人参与
# 从夯到拉,锐评职场mentor #
6271次浏览 91人参与
# 实习到现在,你最困惑的一个问题 #
5452次浏览 147人参与
# 找工作中的意难平 #
982344次浏览 6423人参与
# 春节提前走,你用什么理由请假? #
12025次浏览 268人参与
# 距离春招还有一个月,你现在是什么开局? #
8154次浏览 123人参与
# 今年秋招你收到了多少封邮件? #
38017次浏览 280人参与
# 暑期实习什么时候投? #
8385次浏览 188人参与
# 聊聊Agent开发 #
27840次浏览 634人参与
# 数字马力求职进展汇总 #
330751次浏览 2380人参与
# 机械制造面试记录 #
314262次浏览 3159人参与
# 我的省钱小妙招 #
38184次浏览 449人参与