一舰褪、Hive
1般婆、Hive簡介:
由FaceBook開發(fā)持舆,貢獻(xiàn)給APache殴泰。
Hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,依賴HDFS完成數(shù)據(jù)存儲,依賴于MapReduce處理數(shù)據(jù)。其本身并不存儲數(shù)據(jù)。Hive 定義了簡單的類 SQL 查詢語言扇单,稱為 HQL,通過編寫HiveQL語句奠旺,運(yùn)行具體的MapReduce任務(wù)蜘澜。
2、特征:
1)采用批處理方式處理海量數(shù)據(jù)响疚。
2)提供了ETL工具鄙信。
3、Hive架構(gòu):
?Hive的體系結(jié)構(gòu)可以分為以下幾部分:
Hive 對外提供了三種服務(wù)模式稽寒,即 Hive 命令行模式(CLI)扮碧,Hive 的 Web 模式(WUI),Hive 的遠(yuǎn)程服務(wù)(Client)杏糙。Hive 遠(yuǎn)程服務(wù)通過 JDBC 等訪問來連接 Hive 慎王,這是日常中最需要的方式。?
4宏侍、元數(shù)據(jù)
元數(shù)據(jù)存儲在Mysql或Derby中赖淤。Hive 中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性谅河,表的屬性(是否為外部表等)咱旱,表的數(shù)據(jù)所在目錄等。
二绷耍、Impala
1吐限、Impala簡介
由Cloudera公司開發(fā)的新型查詢系統(tǒng)。
?Impala元數(shù)據(jù)存儲在Hive中褂始,不能獨(dú)立運(yùn)行诸典,依賴Hive元數(shù)據(jù)。
Impala執(zhí)行查詢時崎苗,不需要轉(zhuǎn)換成MapReduce任務(wù)狐粱,可以直接與HDFS或HBase進(jìn)行交互查詢,查詢效率遠(yuǎn)遠(yuǎn)高于Hive胆数。
Impala采用與Hive相同的SQL語法肌蜻,ODBC驅(qū)動程序和用戶接口。
2必尼、Impala架構(gòu)
Impala主要由Impalad蒋搜, State Store和CLI組成,執(zhí)行查詢的時候分布在多個節(jié)點(diǎn)上進(jìn)行。
Impalad:負(fù)責(zé)協(xié)調(diào)客戶端提交變得查詢的執(zhí)行齿诞,與HDFS的數(shù)據(jù)節(jié)點(diǎn)運(yùn)行在同一節(jié)點(diǎn)上酸休。
State Store:負(fù)責(zé)收集分布在集群中各個Impalad進(jìn)城的資源信息用于查詢調(diào)度。
CLI:?提供給用戶查詢使用的命令行工具(Impala Shell使用python實(shí)現(xiàn))祷杈,同時Impala還提供了Hue,JDBC渗饮, ODBC使用接口但汞。
DBeaver中配置的使用JDBC來訪問。
其具體執(zhí)行過程如下:
三互站、Hive 與 Impala對比
1私蕾、試用場景:
Hive:跑批
Impala:實(shí)時交互
2、計算方式:
Hive:依賴于MapReduce框架
Impala:直接分發(fā)執(zhí)行計劃到各個Impalad執(zhí)行查詢
3胡桃、資源使用情況:
Hive執(zhí)行過程中踩叭,若內(nèi)存放不下所有數(shù)據(jù)則會使用外存。
Impala只用內(nèi)存翠胰。