- 博客(7)
- 收藏
- 关注
原创 五、物理任务生成
经过优化的逻辑算子,被Hive转化成底层计算引擎能运行的任务,这个过程称为物理任务的生成。Hive支持MapReduce、Tez以及Spark三种计算引擎,可以将逻辑算子转换成对应三种计算引擎的物理任务。本文主要介绍Hive将逻辑算子转换成MapReduce作业的过程。5.1 物理任务的表示Hive将算子DAG转换成一系列具有依赖关系的任务,这些任务构成一个DAG图。Hive中使用Task
2016-03-20 16:04:22
3397
4
原创 四 、Hive逻辑优化
Hive生成逻辑算之后,会对逻辑算子进行优化。优化的目的是为了减少不必要的数据处理、消除冗余运算,以到达提高执行效率的目的,这个过程称为逻辑优化。4.1 逻辑优化类型Hive逻辑优化包括以下几点:1) 谓词下推谓词下推指的是将外层HiveQL的过滤表达式提前到内层HiveQL,以达到提前过滤,减少数据的处理量。如语句:selecta.* , b.* from a join b on
2016-03-20 15:55:53
1513
原创 三、 Hive 逻辑算子及其生成(下)
3.3算子DAG的生成 在第一章1.4节我们提到Hive首先将抽象语法树AST转换成查询块(QueryBlock),然后在将QueryBlock转化成算子DAG。3.3.1QueryBlock生成1) QB数据结构QueryBlock数据结构定义在QB类中,QB的主要成员变量如下:HashMap aliasToTabs;HashMap aliasToSubq;HashM
2016-03-20 15:15:20
3105
1
原创 三、 Hive 逻辑算子及其生成(中)
3.2 Hive主要算子功能实现 3.2.1 TS、SEL以及FIL算子的实现 1、TS算子的实现 TS算子(TableScanOperator)在逻辑上表示table扫描功能,实际table数据的读取由底层的计算引擎完成。如在Map-Reduce框架中,table数据的读取由Hadoop提供的InputFormat类完成。TS内部实现仅仅将从底层计算引擎输入的数据输出给子
2016-03-20 14:45:03
2372
原创 三、 Hive 逻辑算子及其生成(上)
前一章本文介绍了Hive如何将HiveQL语言转换成抽象语法树(AST),本章将介绍Hive逻辑算子以及如何将AST转换成逻辑算子DAG图。3.1 什么是逻辑算子 以如下HiveQL语句为例:select* from a where id>100 limit 10 这条语句从表a中取id>100的前10条数据,Hive首先将该语句转换成AST如下图所示:
2016-03-20 14:34:02
2209
原创 二、 Hive语法树的生成
HiveQL是一个非标准的sql语言,实现了sql的大部分规范,同时添加了一些hive独有的特性。Hive使用antlr3定义HiveQL语言。1.1 antlr3简介ANTLR(ANother Tool for Language Recognition)是一款功能强大的语言构建工具,提供了词法分析、语法分析等功能。用户编写语言的词法规则和语法规则,然后通过antlr提供的运行时库将语言转
2016-03-17 09:20:30
9236
3
原创 一、Hive介绍
Hive是一个构建在Hadoop之上的数据仓库,提供类似sql的查询语句HiveQL对数据进行分析处理。Hive将HiveQL语句转换一系列成MapReduce作业并执行。目前,Hive除了支持MapReduce计算引擎,还支持Spark和Tez这两中分布式计算引擎。图1.1为Hive的体系结构。
2016-03-16 09:42:41
1919
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人