首页 > 大数据 > Hadoop > Hive架构设计及原理

3.Hive体系结构:
一、用户接口主要有三个:CLI命令行,Client 和 Web UI
二、MetaStore: hive 的元数据结构存储,可选用不同的关系型数据库来存储,通过配置文件修改、查看数据库配置信息
三、解释器、编译器、优化器、执行器
Driver: hive核心驱动器接口类,衔接UI与内核的解析、优化、执行器的桥梁,生成的查询计划存储在HDFS中,并在随后由MapReduce调用执行
Driver 调用解释器(Compiler)处理 HiveQL 字串,这些字串可能是一条 DDL、DML或查询语句。编译器将字符串转化为策略(plan)。策略仅由元数据操作 和 HDFS 操作组成,元数据操作只包含 DDL 语句,HDFS 操作只包含 LOAD 语句。对插入和查询而言,策略由 MapReduce 任务中的具有方向的非循环图(directedacyclic graph,DAG)组成,具体流程如下。
1)解析器(parser):将查询字符串转化为解析树表达式。
2)语义分析器(semantic analyzer):将解析树表达式转换为基于块(block-based)的内部查询表达式,将输入表的模式(schema)信息从 metastore 中进行恢复。用这些信息验证列名, 展开 SELECT * 以及类型检查(固定类型转换也包含在此检查中)。
3)逻辑策略生成器(logical plan generator):将内部查询表达式转换为逻辑策略,这些策略由逻辑操作树组成。
4)优化器(optimizer):通过逻辑策略构造多途径并以不同方式重写。优化器的功能如下。
将多 multiple join 合并为一个 multi-way join;
对join、group-by 和自定义的 map-reduce 操作重新进行划分;
消减不必要的列;
在表扫描操作中推行使用断言(predicate);
对于已分区的表,消减不必要的分区;
在抽样(sampling)查询中,消减不必要的桶。
此外,优化器还能增加局部聚合操作用于处理大分组聚合(grouped aggregations)和 增加再分区操作用于处理不对称(skew)的分组聚合。
四、Hadoop
Hive的数据存储在HDFS中大部分查询有MapReduce完成(select * from table 不会生成MapReduce任务)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31441024/viewspace-2155384/ ,如需转载,请注明出处,否则将追究法律责任。