Hive的系统架构
一、架構(gòu)圖
二、各組件
用戶接口:包括 CLI(控制臺命令),JDBC/ODBC,WebUI。
CLI,即Shell命令行
JDBC/ODBC 是 Hive 的Java,與使用傳統(tǒng)數(shù)據(jù)庫JDBC的方式類似
WebGUI是通過瀏覽器訪問 Hive
------------
metastore:元數(shù)據(jù)存儲,通常是存儲在關(guān)系數(shù)據(jù)庫如 mysql, derby 中。
Hive 將元數(shù)據(jù)存儲在數(shù)據(jù)庫中(metastore),目前只支持 mysql、derby。Hive 中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。
Derby引擎的缺點:一次只能打開一個會話。使用Mysql作為外置存儲引擎,多用戶同時訪問?
-----------
Thrift Server:代碼生成工具,讓客戶端可以用java,c#,c++等主流語言進行訪問。
具體見:http://blog.csdn.net/zengmingen/article/details/52346596
-----------
Driver:解釋器、編譯器、優(yōu)化器、執(zhí)行器
完成 HQL 查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計劃(plan)的生成。生成的查詢計劃存儲在 HDFS 中,并在隨后由 MapReduce 調(diào)用執(zhí)行
------------
Hadoop:用 HDFS 進行存儲,利用 MapReduce 進行計算
Hive 的數(shù)據(jù)存儲在 HDFS 中,大部分的查詢由 MapReduce 完成(包含 * 的查詢,比如 select * from table 不會生成 MapRedcue 任務)
總結(jié)
- 上一篇: Uber如何使用go语言创建高效的查询服
- 下一篇: java信息管理系统总结_java实现科