社区
数据仓库
帖子详情
hive sql转化job任务以及优化
第一片心意
2017-09-04 04:15:59
如上图所示,两个sql的查询结果是完全一样的,但是第一个sql转换成了5个job,执行时间为187s;第二个sql的转化成了4个job,执行时间为96s。
谁能详细解释一下hive sql转化job时的规则,还有优化方面的东西~~~
...全文
1056
回复
打赏
收藏
hive sql转化job任务以及优化
如上图所示,两个sql的查询结果是完全一样的,但是第一个sql转换成了5个job,执行时间为187s;第二个sql的转化成了4个job,执行时间为96s。 谁能详细解释一下hive sql转化job时的规则,还有优化方面的东西~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
大数据
Hive
on MR/TEZ与hadoop的整合应用
本课程主要介绍
hive
的架构与应用,首先介绍了
hive
的实现结构,然后介绍了
Hive
Metastore三种模式,接着重点介绍
hive
的安装与配置,以及
hive
sql
的基本操作,后面又介绍了
hive
beeline、
hive
on tez的使用,并测试了
hive
on MR和TEZ的性能优缺。本课程以apache hadoop发行版本为例,介绍如何实现hadoop与
hive
的整合,hadoop环境采用手动安装的hadoop3.2.1环境,
hive
版本同样采用apache
hive
3.1.2发行版本。以3台主机为例作为
hive
安装环境,采用Centos7.7操作系统。课程大纲如下: 1、
hive
的架构与应用场景2、
Hive
Metastore三种运行模式3、
hive
安装以及与hadoop整合4、
hive
的安装与配置5、启动metastore与
hive
server2服务 6、
hive
常用
SQL
操作7、beeline的使用8、tez的编译以及tez与
hive
整合步骤9、测试tez功能以及与MR性能比较
Hive
SQL
转化
为MapReduce的过程
编译
SQL
的
任务
是在上节中介绍的 COMPILER(编译器组件)中完成的。
Hive
将
SQL
转化
为MapReduce
任务
,整个编译过程分为六个阶段: 词法、语法解析: Antlr 定义
SQL
的语法规则,完成
SQL
词法,语法解析,将
SQL
转化
为抽象语法树 AST Tree Antlr是一种语言识别的工具,可以用来构造领域语言。使用Antlr构造特定的语言只需要编写一个语法文件,定义词法和语法替换规则即可,Antlr完成了词法分析、语法分析、语义分析、中间代码生成的过程。 语义解析:
hive
SQL
执行,
转化
为MR过程
hive
是基于Hadoop的一个数据仓库工具,用来进行数据提取、
转化
、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
hive
数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供
SQL
查询功能,能将
SQL
语句转变成MapReduce
任务
来执行。------ 百度百科
hive
的库、表等数据操作实际是hdfs系统中的目录和文件,让开发者可以通过
sql
语句, 像操作关系数据库一样操作文件内容。 一直好奇
hive
SQL
转化
为MR过程,好奇
hive
是如何做到这些的,所以在网上找了
hive
sql
是如何
转化
为MR
任务
的?以join、group by、distinct来说明原理
(1)
hive
并不是所有的查询都需要走MR
hive
的
优化
中fetch抓取,就是修改配置文件参数
hive
.fetch.task.conversion为more 这样全局查找、字段查找、过滤查询、limit查询,都不会走MR,直接fetch抓取,提高查询效率(其余的还是走MR) ps:该参数设置为none时,所有
任务
转化
为MR,一般默认是more (2)
hive
中需要走MR的
sql
,通常涉及key的shuffle,比如join、group by、distinct等 以下参照链接:
Hive
SQL
转化
Hive
及
Hive
SQL
优化
Hive
及
Hive
SQL
优化
参考
Hive
/
Hive
SQL
常用
优化
方法全面总结 1. 列裁剪和分区裁剪 最基本的操作。所谓列裁剪就是在查询时只读取需要的列,分区裁剪就是只读取需要的分区。以我们的日历记录表为例: select uid,event_type,record_data from calendar_record_log where pt_date >= 20190201 and pt_date <= 20190224 and status = 0; 2. 少用count(dis
数据仓库
7,388
社区成员
6,742
社区内容
发帖
与我相关
我的任务
数据仓库
其他数据库开发 数据仓库
复制链接
扫一扫
分享
社区描述
其他数据库开发 数据仓库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章