一、架构图
二、各组件
用户接口:包括 CLI(控制台命令),JDBC/ODBC,WebUI。
CLI,即Shell命令行
JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似
WebGUI是通过浏览器访问 Hive
------------
metastore:元数据存储,通常是存储在关系数据库如 mysql, derby 中。
Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
Derby引擎的缺点:一次只能打开一个会话。使用Mysql作为外置存储引擎,多用户同时访问
-----------
Thrift Server:代码生成工具,让客户端可以用java,c#,c++等主流语言进行访问。
具体见:http://blog.csdn.net/zengmingen/article/details/52346596
-----------
Driver:解释器、编译器、优化器、执行器
完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后由 MapReduce 调用执行
------------
Hadoop:用 HDFS 进行存储,利用 MapReduce 进行计算
Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务)