一、架構圖
二、各組件
用戶接口:包括 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 任務)