hive之Map Join使用方法
目录
介绍
mapjoin的使用方法
结语
介绍
MAPJION会把小表全部加载到内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配,由于在map端是进行了join操作,省去了reduce运行的时间,算是hive中的一种优化。
如上图中的流程,首先Task A在客户端本地执行,负责扫描小表b的数据,将其转换成一个HashTable的数据结构,并写入本地的文件中,之后将该文件加载到DistributeCache中。
接下来的Task B任务是一个没有Reduce的MapReduce,启动MapTasks扫描大表a,在Map阶段,根据a的每一条记录去和DistributeCache中b表对应的HashTable关联,并直接输出结果,因为没有Reduce,所以有多少个Map Task,就有多少个结果文件。
mapjoin的使用方法
如果除一个表外,所有要连接的表都很小,则可以使用mapjoin进行关联。
SELECT /*+ MAPJOIN(b) */ a.key, a.value
FROM a JOIN b ON a.key = b.key
前提b表是一张小表,具体小表有多小,由参数hive.mapjoin.smalltable.filesize来决定,默认值是25M。开启hive.auto.convert.join=true参数时,默认值是false,满足条件的话Hive在执行时候会自动转化为MapJoin,或使用hint提示 /*+ mapjoin(table) */执行MapJoin。
参数列表:
1、小表自动选择Mapjoin
set hive.auto.convert.join=true;
默认值:false。该参数为true时,Hive自动对左边的表统计量,若是小表就加入内存,即对小表使用Map join
2、小表阀值
set hive.mapjoin.smalltable.filesize=25000000;
默认值:25M
hive.smalltable.filesize (replaced by hive.mapjoin.smalltable.filesize in Hive 0.8.1)
不支持以下内容
- Union Followed by a MapJoin
- Lateral View Followed by a MapJoin
- Reduce Sink (Group By/Join/Sort By/Cluster By/Distribute By) Followed by MapJoin
- MapJoin Followed by Union
- MapJoin Followed by Join
- MapJoin Followed by MapJoin
结语
本次的分享就到这里了,下一篇博客博主将带来hive分析函数的使用方法,敬请期待!受益的朋友或对大数据技术感兴趣的伙伴记得点赞关注支持一波!
hive之Map Join使用方法相关推荐
- 关于hive中Map join 时大表left join小表的问题
在hive中,(启用Map join时) 大表left join小表,加载从右向左,所以小表会加载进内存,存储成map键值对,通过大表驱动小表,来进行join,即大表中的join字段作为key 来获取 ...
- Hive的Map Join与Common Join
笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join). 一.Hive Common Join 如果不指定MapJoin ...
- Hive中的map join、left semi join和sort merge bucket join
map join map join是将join双方比较小的表直接分发到各个 map进程的内存中,在map进程中进行join操作,这样就不用进行reduce步骤,从而提高了速度. 如果不指定mapjoi ...
- Wed APIS-Window对象、本地存储、数组的map()方法、数组的join()方法
目录 Window对象 1.BOM(浏览器对象模型) 2.定时器-延时函数 3.JS执行机制 4.location对象 5.navigator对象 6.histroy对象 本地存储 1.分类 1.1. ...
- MR实现reduce join和map join及hive的执行计划
一.涵盖 MapReduce InputFormat RecordReader 切片:block=input split 1.1 File- Text- NLine- DB- Mapper setup ...
- Hive优化的十大方法
Hive用的好,才能从数据中挖掘出更多的信息来.用过hive的朋友,我想或多或少都有类似的经历:一天下来,没跑几次hive,就到下班时间了.Hive在极大数据或者数据不平衡等情况下,表现往往一般,因此 ...
- Map Join介绍及案例
Map Join介绍及案例 Map Join介绍 1. 使用场景 2. 优点 3. 实现方法 Map Join案例 1. 需求 (1)需求说明 (2)文件 2.案例分析 (1)需求分析 (2)输入数据 ...
- Hive的连接(join)方案
一 Common JOIN/Reduce Side JOIN/Shuffle JOIN 这三种其实都是一种连接方案:即在Reduce端做JOIN操作.一般情况下,如果不手动指定MapJoin或者不满足 ...
- MapReduce之Map join操作
MapReduce之Map join操作(分布式缓存) 文章目录 MapReduce之Map join操作(分布式缓存) 案例结合 利用MapReduce中的setup方法与DistributedCa ...
最新文章
- Pairs Forming LCM LightOJ - 1236
- Python报错TypeError: 'str' object is not callable
- shell 获取ora报错信息_频发:故障排除之又见 ORA-4031丨云和恩墨技术通讯
- what should you do if you want to have a high efficiency for communication
- beego1---beego,bee环境配置
- Linux 技巧: Bash 测试和比较函数
- Django的分页器(paginator)
- Windows10安装ubuntu 20双系统
- js接收springmvc传过来的数据_Java修行第072天 ---SpringMVC(中)
- 1088 三人行 (20分)
- python json dumps 自定义_Python json.dumps()用法及代码示例
- 外星人进化_外星人真的比人类强大吗?科学家给出几种猜想,你认同吗?
- 11. Django基础:应用及分布式路由
- EasyCVR接入Ehome协议设备PS流解析失败?一文分析PS流解析注意点
- SM3算法的编程实现
- linux免杀工具,安卓Apk免杀工具:backdoor-apk 教程
- python _滑动时间窗
- 一个疫情期间的实习生经历
- 推荐一个数据可视化大屏幕报表开源系统
- python爬取拉勾网职位信息_python——拉勾网信息爬取
热门文章
- android studio没有提示错误,Android Studio错误代码不提示问题解决
- 重定向次数过多怎么解决(www.bing.com 重定向次数过多)
- web项目的实时监控-思路
- ps蒙版使用计算机一级,全国计算机一级Photoshop基础训练
- NLP自然语言处理系列- week7- 检索模型(精排)(8)
- 《ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information》阅读记录
- 传奇SF上传列表格式
- 双十一值得买的充电宝推荐,平价耐用的充电宝排行
- Linux下常用数据库介绍
- JavaScript字符串替换