Hive架构
Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具用
来数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop
中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 HQL,它
允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发
者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成
的复杂的分析工作。
Hive 的结构可以分为以下几部分:
① ① 用户接口:包括 CLI, Client, WUI
② 元数据存储: :通常是存储在关系数据库如 mysql, derby 中
③ ③ 解释器、编译器、优化器、执行器
④ ④ Hadoop :用 HDFS 进行存储,利用 MapReduce 进行计算
① 用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是 CLI,Cli
启动的时候,会同时启动一个 Hive 副本。Client 是 Hive 的客户端,用户连接至
Hive Server。在启动 Client 模式的时候,需要指出 Hive Server 所在节点,并且
在该节点启动 Hive Server。 WUI 是通过浏览器访问 Hive。
② Hive 将元数据存储在数据库中,如 mysql、derby。Hive 中的元数据包括
表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据
所在目录等。
③ 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、
编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后
有 MapReduce 调用执行。
④ Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 *
的查询,比如 select * from tbl 不会生成 MapRedcue 任务)。