Hive整体架构:
Hive架构如下:
主要组件:
用户接口:包括CLI,client(jdbc)和web ui
元数据存储:mysql或者derby
解释器、编译器、优化器、执行器
hadoop:用hdfs存储,用mapreduce计算
各组件主要功能:
CLI:shell命令行
client:在client模式下,用户可以通过jdbc或者odbc连接Hive,需要启动Hive Server2/Hive server务(图中的Thrift server)。
Web UI:通过浏览器访问Hive
系统目录(catalog)用于保存Hive中所存储的表的元数据(metadata)信息的服务。metastore包含Database 、Table、Partition (每个分区 都有自己的列(columns),SerDe和存储空间 (storage))。
Complier:Driver掉用Complier将HiveSQL字符串转化为执行计划(plan),执行计划只有元数据操作和HDFS操作组成。元数据操作只包含DDL语 句,HDFS语句只包含LOAD语句。对于插入和查询,执行计 划由mapreduce中的DAG组成。
optimizer:优化器,选择最优的执行计划。一般由两种:经验优化器和语义优化器。
Executor:执行器,执行优化的mapredue。