Hive性能优化大全

 

核心思想:是将hive程序当做mapreduce程序进行优化;

hive中sql语句转化为MapReduce的过程,整个编译过程分为6个阶段:

1).Antlr定义Sql的语法规则,完成SQL词法,语法解析,将SQL转化为 抽象语法树AST Tree。

2).遍历抽象语法树AST Tree,抽象出查询的基本组成单元 QueryBlock查询块。

3).遍历QueryBlock,翻译为执行操作树OperatorTree。

4).逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量。

5).遍历OperatorTree,翻译为MapReduce任务。

6).物理层优化器进行MapReduce任务的变换,生成最终的执行计划。

 

1、 显示查询计划:

在hive命令行输入:explain extended select count(*) from bigdata_user;

可以查看该sql执行的整个过程。

 

2、hive的运行方式:

1).集群模式:需要先将本地程序打成Jar包,上传集群,如果执行出错,需要继续修改上传,在执行jar包,循环往复,影响开发效率。

2).本地模式:在hive中执行 set hive.exec.mode.local.auto=true;

只能在测试和开发环境进行,并且限制输入文件的大小不能超过128M,如果大于该配置,仍会以集群方式运行。对于小数据执行时间可以明显被缩短。

3、并行执行:

一次SQL计算中允许并行执行的job个数的最大值,Hive会将一个查询转化成一个或者多个阶段。这样的阶段可以是MapReduce阶段、抽样阶段、合并阶段、limit阶段。由于job包含多个阶段,而这些阶段并非完全互相依赖,所以可以启用并

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值