Hive是构建在Hadoop之上的数据仓库工具,主要用于处理大规模结构化数据。其架构设计如下:
架构图
- 用户接口层:提供CLI、JDBC、ODBC等接口供用户提交HQL(Hive Query Language)查询。HQL 类似于SQL,方便用户查询数据。
- 元数据存储:Hive使用元数据(Metastore)来存储数据库的结构信息,如表、列的数据类型、表所在的HDFS位置等。元数据通常存储在关系型数据库中,如MySQL。
- 查询编译器:将用户提交的HQL解析为具体的查询执行计划,并转换为Hadoop MapReduce、Tez或Spark等作业。
- 执行引擎:Hive依赖于Hadoop的执行引擎,将编译后的查询计划转换为MapReduce任务,最终通过HDFS存储或处理查询结果。
- HDFS存储层:Hive的数据物理存储层依赖于HDFS,所有的数据文件都存储在HDFS中,并通过分布式文件系统进行高效的存储和读取。