Hive 架构
图上显示了Hive的主要组件以及与Hadoop的关系。如图所示,Hive的主要部件是:
UI 用户提交查询和其他的操作。当前系统有一个命令行的接口和基于Web的的GUI
Driver 接受query的组件,该组件实现session的概念,以处理和提供基于JDBC/ODBC执行以及颉取的API。
编译器 该组件分析query,在不同的查询块和查询表达式上进行语义分析,并最终通过从metastore中查找表与分区的元信息生成执行计划
Metastore 此组件存储数据仓库里所有的各种表与分区的结构化信息,包括列与列类型信息,序列化器与反序列化器,从而能够读写hdfs中的数据
执行引擎 此组件执行由compiler创建的执行计划。此计划是一个关于阶段的有向无环图。执行引擎管理不同阶段的依赖关系,并在合适的系统组件上执行这些阶段
Hive 查询语言
HiveQL是一个类SQL的查询语言。它模仿SQL语法来创建表,读表到数据,并查询表。HiveQL也允许用户嵌入他们自定义的map-reduce脚本。这些脚本能用任何支持基于行的流式接口的语言写-从标准输入读入并写到标准输出。这种灵活性也有一定的代价:即字符串的转换带来的性能损失。尽管如此,我们看到用户似乎不介意于此,他们自己实现这些脚本。另一个特性是多表插入。在此构造下,用户可以在相同的数据上通过一条HiveQL执行多query。Hive优化这些query,从而能共享输入数据的扫描,这样就增加了这些query的几个数量级的吞吐量。
编译器
Parser 将query string转换成解析树的表示
Semantic Analyser 解析树转换成query的内部表示,仍然是基于语句块的而非操作树。此阶段中,列名被校验,*通配符扩展被执行。类型检查和任何隐式的类型转换也在此阶段做。如果是一个分区表,这也是一个普遍的情况,所有该表的表达式被收集起来,这样它们就能用于修剪不需要的分区。如果query有一些制定的样例,它也会被收集起来以被后用
逻辑计划生成器 将query的内部表示转换为逻辑计划,它是一棵操作符树。一些操作符是关系代数符-如filter join等。但有些是hive特有的并被转为一系列的map reduce工作。如reduceSink操作符在mapreduce边界出现。此步也包括对plan做变换以提高性能-如将一系列的join转换为多路join,执行map端的部分的groupby聚集,执行两阶段内的groupby以避免如下情形:当groupingkey出现数据倾斜时一个reducer变成瓶颈。每个操作符包括一个可序列化的描述符。
查询计划生成器 - 将逻辑计划转换为一系列的map-reduce任务。操作符树被递归的遍历,从而它们被打散为一系列mapreduce序列化的可被mapreduce框架与hadoop hdfs接收的任务。reduceSink 操作符是mapreduce的边界,它的描述符包含归减键。reduceSink 的描述符里的归减键被用作mapreduce边界的归减键。如果query被指定了样例与分区,该计划也会包含它们。该计划然后被序列化到一个文件中。
优化器
更多的计划转换会有优化器来做。优化器是一个演化组件。当前,它的规则是:列修剪,谓词下压。
分享到:
相关推荐
"大数据Hive架构原理.pdf" 大数据Hive架构原理是指基于Hadoop的一种数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供类SQL的查询功能。Hive架构原理基于Hadoop的其它组件之上,依赖于HDFS进行数据...
Hive1--HIVE架构.pdf 学习资料 复习资料 教学资源
第二节 hive架构.mp4
大数据处理--Hive技术架构及应用,主要介绍了数据仓库...针对数据仓库海量数据的统计分析,而引入Hive,接着分别介绍了Hive架构、工作过程及与关系数据库进行详细比较,进而重点讲如何操作使用Hive并给出了实战的例子。
1.1 HIVE架构 6 1.2 Hive 和 Hadoop 关系 7 1.3 Hive 和普通关系数据库的异同 8 1.4 HIVE元数据库 9 1.4.1 DERBY 9 1.4.2 Mysql 10 1.5 HIVE的数据存储 11 1.6 其它HIVE操作 11 2. HIVE 基本操作 12 2.1 create ...
1.1 HIVE架构 6 1.2 Hive 和 Hadoop 关系 7 1.3 Hive 和普通关系数据库的异同 8 1.4 HIVE元数据库 9 1.4.1 DERBY 9 1.4.2 Mysql 10 1.5 HIVE的数据存储 11 1.6 其它HIVE操作 11 2. HIVE 基本操作 12 2.1 create ...
1.1HIVE 架构 Hive 的结构可以分为以下几部分: 用户接口:包括 CLI, Client, WUI 元数据存储。通常是存储在关系数据库如 mysql, derby 中 6 解释器、编译器、优化器、执行器 Hadoop:用 HDFS 进行存储,利用 ...
1.1 HIVE架构 Hive的架构是基于Hadoop的分布式文件系统的。Hive的架构主要包括三个部分:Hive客户端、Hive服务端和Hadoop分布式文件系统。Hive客户端负责与用户进行交互,Hive服务端负责执行Hive的查询语句,Hadoop...
详细介绍了hive框架,主要包含了以下内容: Hive架构 Hive DDL Hive DML Hive 查询 Hive 函数
1、MapReduce实现基本SQL操作的原理 1.1 Join的实现原理 1.2 Group By的实现原理 1.3 Distinct的实现原理 2.1 Phase1 SQL词法,语法解析 2.1.1 Antlr 2.1.2 抽象语法树AST Tree 2.1.3 样例SQL ........... ...
Hive数据仓库思维导图,便捷整理思路,Hive简介、Hive架构、Hive搭建:单用户模式、多用户模式
关于HIVE的介绍和常用方法的使用.包括它所支持的数据类型,hive架构,hive与传统数据库的对比,以及MapReduce的用法
Hive体系架构、安装与HiveQL,Hive体系架构、安装与HiveQL,Hive体系架构、安装与HiveQL
IT十八掌第三期配套课堂笔记 1、Hive工作原理、类型...2、Hive架构及其文件格式 3、Hive操作及Hive复合类型 4、Hive的JOIN详解 5、Hive优化策略 6、Hive内置操作符与函数 7、Hive用户自定义函数接口 8、Hive的权限控制
01. Hive基本概念 02. Hive架构 03. Hive数据组织 04. 常用HQL介绍
深入浅出Hive企业级架构优化、Hive Sql优化、压缩和分布式缓存
实验目的: 学习Hive基本知识;2)提高Linux操作技能...4)了解Hive架构与相关组件。 实验内容: 1)配置伪分布式Hadoop3系统;2)配置并运行Hive服务HiveServer2;3)以beeline连接HiveServer2,可以运行初级查询命令。
Hive体系架构安装与HiveQL,应用案例
大规模数据查询Hive及Impala技术原理及架构