1.map join无reduce操作,所以没有shuffle。这样可以减少大量的网络I/O。(如:大表文件数500、文件250M,小表20M。map join的网络I/O共50020M,Common join的网络I/O共500250M+20M),同时不需要进行map sort和shuffle sort排序。
2.由于Common join的一个reduce包含两张表的数据,所以进行reduce的join先将一张表的数据加载到内存后才能跟另外一张表的数据join,如果加载的是大表需要reduce大量的内存。
3.由于小表转换为HashTable结构,map join在对数据进行join很快,哈希算法的时间为O(1)。
4.map join需要将小表加载DistributeCache是存在Driver内,大表map从Driver拉取小表数据。所以小表数据量不宜过大。
相关文章
- 03-24【转载】Hive面试题
- 03-24hive mapjoin总结
- 03-24Hadoop——MapJoin(减少数据倾斜)
- 03-24HIVE性能调优之GROUP BY# 数据倾斜
- 03-24Hive数据倾斜问题、优化问题、架构问题总结
- 03-24monkeyrunner总结
- 03-24优化总结:有哪些APP启动提速方法?
- 03-24智能营销总部:vuex总结
- 03-24阿里技术分享:APP启动提速方法总结
- 03-24读redux源码总结