Impala與hive的區(qū)別是什么

這篇文章主要講解了“Impala與hive的區(qū)別是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Impala與hive的區(qū)別是什么”吧!

創(chuàng)新新互聯(lián),憑借10多年的成都網(wǎng)站設(shè)計、做網(wǎng)站經(jīng)驗,本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計網(wǎng)站有上千多家案例。做網(wǎng)站建設(shè),選成都創(chuàng)新互聯(lián)。

 

Impala簡介

Impala是由Cloudera公司開發(fā)的新型查詢系統(tǒng),它提供SQL語義,能查詢存儲在Hadoop的HDFS和HBase上的PB級大數(shù)據(jù),在性能上比Hive高出3~30倍。

Impala的運行需要依賴于Hive的元數(shù)據(jù)。Impala是參照 Dremel系統(tǒng)進行設(shè)計的。

Impala采用了與商用并行關(guān)系數(shù)據(jù)庫類似的分布式查詢引擎,可以直接與HDFS和HBase進行交互查詢。

Impala和Hive采用相同的SQL語法、ODBC驅(qū)動程序和用戶接口。

Impala與hive的區(qū)別是什么  
組件

圖:Impala與其他組件的關(guān)系

 

Impala系統(tǒng)架構(gòu)

Impala與hive的區(qū)別是什么

系統(tǒng)架構(gòu)

圖:Impala系統(tǒng)架構(gòu)圖

Impala和Hive、HDFS、HBase等工具是統(tǒng)一部署在一個Hadoop平臺上的。Impala主要由Impalad,State Store和CLI三部分組成。

(1)Impalad

  • 負責協(xié)調(diào)客戶端提交的查詢的執(zhí)行
  • 包含Query Planner、Query Coordinator和Query Exec Engine三個模塊。
  • 與HDFS的數(shù)據(jù)節(jié)點(HDFS DN)運行在同一節(jié)點上。
  • 給其他Impalad分配任務(wù)以及收集其他Impalad的執(zhí)行結(jié)果進行匯總。
  • Impalad也會執(zhí)行其他Impalad給其分配的任務(wù),主要就是對本地HDFS和HBase里的部分數(shù)據(jù)進行操作。

(2)State Store

  • 會創(chuàng)建一個statestored進程。
  • 負責收集分布在集群中各個Impalad進程的資源信息,用于查詢調(diào)度。

(3)CLI

  • 給用戶提供查詢使用的命令行工具。
  • 還提供了Hue、JDBC及ODBC的使用接口。

說明:Impala中的元數(shù)據(jù)直接存儲在Hive中。Impala采用與Hive相同的元數(shù)據(jù)、SQL語法、ODBC驅(qū)動程序和用戶接口,從而使得在一個Hadoop平臺上,可以統(tǒng)一部署Hive和Impala等分析工具,同時支持批處理和實時查詢。

 

Impala查詢執(zhí)行過程

Impala與hive的區(qū)別是什么

過程圖

圖:Impala查詢執(zhí)行過程圖

Impala執(zhí)行查詢的具體過程:

  1. 第0步,當用戶提交查詢前,Impala先創(chuàng)建一個負責協(xié)調(diào)客戶端提交的查詢的Impalad進程,該進程會向Impala State Store提交注冊訂閱信息,State Store會創(chuàng)建一個statestored進程,statestored進程通過創(chuàng)建多個線程來處理Impalad的注冊訂閱信息。
  2. 第1步,用戶通過CLI客戶端提交一個查詢到impalad進程,Impalad的Query Planner對SQL語句進行解析,生成解析樹;然后,Planner把這個查詢的解析樹變成若干PlanFragment,發(fā)送到Query Coordinator.
  3. 第2步,Coordinator通過從MySQL元數(shù)據(jù)庫中獲取元數(shù)據(jù),從HDFS的名稱節(jié)點中獲取數(shù)據(jù)地址,以得到存儲這個查詢相關(guān)數(shù)據(jù)的所有數(shù)據(jù)節(jié)點。
  4. 第3步,Coordinator初始化相應(yīng)impalad上的任務(wù)執(zhí)行,即把查詢?nèi)蝿?wù)分配給所有存儲這個查詢相關(guān)數(shù)據(jù)的數(shù)據(jù)節(jié)點。
  5. 第4步,Query Executor通過流式交換中間輸出,并由Query Coordinator匯聚來自各個impalad的結(jié)果。
  6. 第5步,Coordinator把匯總后的結(jié)果返回給CLI客戶端。
 

Impala與Hive的比較

Impala與hive的區(qū)別是什么

對比

圖:Impala與Hive的對比

Hive與Impala的不同點總結(jié)如下:

  1. Hive適合于長時間的批處理查詢分析,而Impala適合于實時交互式SQL查詢。
  2. Hive依賴于MapReduce計算框架,Impala把執(zhí)行計劃表現(xiàn)為一棵完整的執(zhí)行計劃樹,直接分發(fā)執(zhí)行計劃到各個Impalad執(zhí)行查詢。
  3. Hive在執(zhí)行過程中,如果內(nèi)存放不下所有數(shù)據(jù),則會使用外存,以保證查詢能順序執(zhí)行完成,而Impala在遇到內(nèi)存放不下數(shù)據(jù)時,不會利用外存,所以Impala目前處理查詢時會受到一定的限制。

Hive與Impala的相同點總結(jié)如下:

  1. Hive與Impala使用相同的存儲數(shù)據(jù)池,都支持把數(shù)據(jù)存儲于HDFS和HBase中。
  2. Hive與Impala使用相同的元數(shù)據(jù)。
  3. Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執(zhí)行計劃。

總結(jié):

  • Impala的目的不在于替換現(xiàn)有的MapReduce工具。
  • 把Hive與Impala配合使用效果最佳。
  • 可以先使用Hive進行數(shù)據(jù)轉(zhuǎn)換處理,之后再使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進行快速的數(shù)據(jù)分析。

感謝各位的閱讀,以上就是“Impala與hive的區(qū)別是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對Impala與hive的區(qū)別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

當前標題:Impala與hive的區(qū)別是什么
當前URL:http://muchs.cn/article2/jephoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、靜態(tài)網(wǎng)站、搜索引擎優(yōu)化小程序開發(fā)定制開發(fā)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化