一分钟看完 Hive 体系结构

2019-12-25 16:27:06 浏览数 (1)

先拍图(Hive体系架构),然后对图内各个组件进行简单介绍。

Hive提供了三种用户接口:

①CLI(command line interface):CLI启动的时候会同时启动一个Hive副本;

②JDBC客户端:封装了Thrift,java应用程序,可以通过指定的主机和端口连接到在另一个进程中运行的hive服务器。ODBC客户端:ODBC驱动允许支持ODBC协议的应用程序连接到Hive。

③Web GUI接口:通过浏览器访问Hive;

Thrift服务器:基于socket通讯,支持跨语言。Hive Thrift服务简化了在多编程语言中运行hive的命令,绑定支持C ,PHP,Python以及Ruby语言。

解析器:

  • 编译器:完成HQL语句从词法分析,语法分析,编译,优化以及执行计划的生成。
  • 优化器是一个演化组件,当前它的规则是:列修剪以及谓词下压。
  • 执行器会顺序执行所有的job,如果task链不存在依赖关系,可以采用并发的方式执行job。

元数据库:Hive的数据由两部分组成,数据文件和元数据。元数据用于存放Hive库的基础信息,它存储在关系数据库中,如mysql。元数据包括:数据库信息,表的名字,表的列和分区极其属性,表的属性及所在目录等等信息。

Hadoop:Hive的数据文件存储在HDFS中,大部分的查询有MapReduce完成。


Hive运行机制:

①用户通过接口连接Hive,发布HQL

②Hive解析查询并制定查询计划

③Hive将查询转换成MapReduce作业

④Hive在Hadoop上执行MapReduce作业

0 人点赞