Hive架构包括如下组件:Client、Thrift Server、Metastore和Driver。
(1)Client
用户接口,主要包含CLI(command language interface)、JDBC或ODBC、WEBUI(以浏览器访问hive);
(2)Thrift Server
提供JDBC/ODBC接入的能力,它用来进行可扩展且跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口;
(3)Metastore
元数据,包括表名、表所属的数据库、表的拥有者、列/分区字段、表的类型、表的数据所在目录等内容;
(4)Driver:(实现将HQL转化为MR过程)
核心组件,整个Hive的核心,它的作用是将我们写的HQL语句进行解析、编译优化,生成执行计划,然后调用底层的MapReduce计算框架;
具体的编译过程:
SQL解析器:将SQL字符串(准确说HiveQL)转化为抽象语法树AST;
编译器:将AST编译生成逻辑执行计划;;
逻辑优化器:对逻辑执行计划进行优化;
物理执行器:将逻辑执行计划转成可执行的物理计划,如MR/Spark;
(5)HDFS&MapReduce
指的是hive使用HDFS进行存储,使用MapReduce进行计算。
用户创建完表之后,只需要根据业务需求编写Sql语句,而后将由Hive框架将Sql语句解析成对应的MapReduce程序,通过MapReduce计算框架运行job,便得到了我们最终的分析结果。
Hive架构组成
最新推荐文章于 2024-09-09 09:00:00 发布