Hive SQl语句的执行
来源:互联网 发布:定义一个二维数组 编辑:程序博客网 时间:2024/06/01 10:01
1. hive语句执行时哪些在map执行,哪些在reduce执行呢
Map/Reduce是在物理执行计划的地方生成的。
很简单,ReduceSinkOpertor之前的在Map执行,ReduceSinkOperator之后的在Reduce执行,ReduceSinkOperator的作用是把数据从Map发到Reduce.
具体点:
FROM (TableScanOperator),WHERE(FilterOperator),MapJoinOperator,ReduceSinkOperator在Map端执行。
GROUP BY(GroupByOperator),JOIN(JoinOperator),DistributeBy,Sort By, Distinct,Having(FilterOperator)在Reduce端执行。
在Reduce端执行的重要特点就是有分发的key,比如group by key, join ona.key=b.key, count(distinct key), distrbute by key, cluster by key
2.查看语句的执行过程的Hvie SQl语句
Hive提供EXPLAIN命令,显示查询的执行计划。语法如下:
EXPLAIN [EXTENDED] query
考虑下面的EXPLAIN查询:
EXPLAINFROM src INSERT OVERWRITE TABLE dest_g1 SELECT src.key, sum(substr(src.value,4)) GROUP BY src.key;
语句的输出包含下面的部分
抽象语法树
ABSTRACT SYNTAX TREE: (TOK_QUERY (TOK_FROM (TOK_TABREF src)) (TOK_INSERT (TOK_DESTINATION (TOK_TAB dest_g1)) (TOK_SELECT (TOK_SELEXPR (TOK_COLREF src key)) (TOK_SELEXPR (TOK_FUNCTION sum (TOK_FUNCTION substr (TOK_COLREF src value) 4)))) (TOK_GROUPBY (TOK_COLREF src key))))
依赖图
STAGE DEPENDENCIES: Stage-1 is a root stage Stage-2 depends on stages: Stage-1 Stage-0 depends on stages: Stage-2
这显示,Stage-1是根阶段,Stage-2在Stage-1完成后执行,Stage-0在Stage-2完成后执行。
map/reduce阶段包含2部分:
map/reduce场景本身包含2个部分:表映射到Map运算符树的别名--这个映射,通知mapper运算符树调用,处理特定表的行或先前的map/reduce阶段的结果。在上面例子的Stage-1,原始表的行,被Reduce输出运算符的运算符树处理。类似,在Stage-2中,Stage-1的结果的行被Reduce输出运算符的其他运算符树处理。每个Reduce输出操作符,根据元数据的标准,把数据分区到reducers。
Reduce操作符树——这个操作符树处理map/reduce任务的reducer的所有行。在例子的Stage-1,Reducer操作符树开展局部聚合,而Stage-2的reduers操作符树对Stage-1的局部聚合,做最终的聚合的计算。
本部分翻译自 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Explain
3.Hvie SQL语句的执行顺序
from... where.... select...group by... having ... order by...
本文系整理所得。
- Hive SQl语句的执行
- Hive执行SQL语句
- hive sql语句执行原理
- hive无法执行带where语句的SQL
- Hive的sql语句
- hive执行语句oom
- hive语句执行顺序
- hive中执行sql语句出现数据类型问题
- HIVE beeline使用shell 批量执行sql语句
- SQL语句的执行顺序
- 关于SQL语句的执行
- SQL语句的执行过程
- SQL语句的执行顺序
- SQL语句的执行过程
- SQL语句的执行过程
- SQL语句的执行顺序
- SQL语句的执行顺序
- sql语句的执行步骤
- ps命令输出详解
- 日期类型和字符串类型互转
- WeMos D1 GPIO引脚定义
- 【容斥+莫比乌斯反演】BZOJ2301 [HAOI2011]Problem b
- conn.excute()插入数据库成功,但却返回false原因
- Hive SQl语句的执行
- ASP.NET Web Forms
- C#总结---属性、类、对象、方法
- ASP.NET Web Forms
- 将Bitmap位图转化为base64字符串互转
- WEB前端 -- 单选按钮、下拉、隐藏、表单
- 代码编辑器中文字符编码转换
- Python--json
- Retrofit2.0使用总结