Hive Common Join VS Map Join
来源:互联网 发布:淘宝提问回答能删除吗 编辑:程序博客网 时间:2024/05/16 13:04
以下是个人理解,如有偏差,望大家多多指点!
一、Common Join(也称之为shufflejoiin/reducejoin)
1、Common Join图解
a>首先会启动一个Task,Mapper会去读表HDFS上两张X/Y表中的数据
b>Mapper处理过数据再经过shuffle处理
c>最后由reduce输出join结果
2、举例
a>mapper读取A/B表数据
A表
<1,(zhangsan)>
<2,(lisi)>
<3,wangwu>
B表
<1,(30)>
<2,21>
<4,19>
b>shuffle处理map结果
<1,(zhangsan,30)>
<2,(lisi,21)>
<3,(wangwu)>
<4,(19)>
c>reduc输出结果
1,(zhangsan,30)
2,(lisi,21)
3,(wangwu)
4,(19)
3、缺点
1、存在shuffle过程,效率低
2、每张表都要去磁盘读取,磁盘IO大
二、 Map Join
1、 Map Join图解
a>mapjoin首先会通过本地MapReduce Task将要join的小表转成Hash Table Files,然后加载到分布式缓存中
b>Mapperh会去缓存中读取小表数据来和Big Table数据进行join
c>Map直接给出结果
2、优点
没有shuffle/Reduce过程,效率提高
3、缺点
由于小表都加载到内存当中,读内存的要求提高了
三、通过执行计划来判断是何种Join方式
1、通过explain关键字查看join方式,mapjoin是没有Reduce过程的。
explain select e.empno, e.ename, d.dname from emp e join dept d on e.deptno=d.deptno;
2、参数
hive.auto.convert.join (默认值false)参数控制是否Reduce 端的 Common Join 转化为 Map Join
所以测试Map Join需要将此参数设置为true
set hive.auto.convert.join=true;
- Hive Common Join VS Map Join
- Hive中Join的使用入门 & Common Join与Map Join原理深度剖析
- Hive Map Join
- hive map side join
- hive map-side join
- Hive Map Side Join解析
- Hive中使用MAP JOIN
- hive 中的map join 操作
- Hive Sort Merge Bucket Map Join
- hive join
- hive join
- hive join
- hive join
- hive join
- hive join
- hive join
- hive join
- 【HIVE】join
- 蒙特卡罗模拟网站访问——PageRank算法
- 学习笔记04
- 图片缓存和清除
- Day4
- Spring讲解
- Hive Common Join VS Map Join
- listview多条目加载简单应用
- TabLayout+Fragment自定义不同界面圆
- BZOJ 3144: [Hnoi2013]切糕 最小割
- 安卓——窗体小知识
- 了不起的分支和循环
- 手写自己的BufferedReader
- Android之jni编译出现no matching function for call to '_JNIEnv::GetJava(JNIEnv* &, Java VM**)'解决办法)'
- FreeRTOS学习笔记0921