這篇文章主要講解了“Impala與hive的區(qū)別是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Impala與hive的區(qū)別是什么”吧!
創(chuàng)新新互聯(lián),憑借10多年的成都網(wǎng)站設(shè)計(jì) 、做網(wǎng)站經(jīng)驗(yàn),本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計(jì)網(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的運(yùn)行需要依賴于Hive的元數(shù)據(jù)。Impala是參照 Dremel系統(tǒng)進(jìn)行設(shè)計(jì)的。
Impala采用了與商用并行關(guān)系數(shù)據(jù)庫類似的分布式查詢引擎,可以直接與HDFS和HBase進(jìn)行交互查詢。
Impala和Hive采用相同的SQL語法、ODBC驅(qū)動(dòng)程序和用戶接口。
組件 圖:Impala與其他組件的關(guān)系
Impala系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu) 圖:Impala系統(tǒng)架構(gòu)圖
Impala和Hive、HDFS、HBase等工具是統(tǒng)一部署在一個(gè)Hadoop平臺上的。Impala主要由Impalad,State Store和CLI三部分組成。
(1)Impalad
負(fù)責(zé)協(xié)調(diào)客戶端提交的查詢的執(zhí)行 包含Query Planner、Query Coordinator和Query Exec Engine三個(gè)模塊。 與HDFS的數(shù)據(jù)節(jié)點(diǎn)(HDFS DN)運(yùn)行在同一節(jié)點(diǎn)上。 給其他Impalad分配任務(wù)以及收集其他Impalad的執(zhí)行結(jié)果進(jìn)行匯總。 Impalad也會執(zhí)行其他Impalad給其分配的任務(wù),主要就是對本地HDFS和HBase里的部分?jǐn)?shù)據(jù)進(jìn)行操作。 (2)State Store
會創(chuàng)建一個(gè)statestored進(jìn)程。 負(fù)責(zé)收集分布在集群中各個(gè)Impalad進(jìn)程的資源信息,用于查詢調(diào)度。 (3)CLI
說明:Impala中的元數(shù)據(jù)直接存儲在Hive中。Impala采用與Hive相同的元數(shù)據(jù)、SQL語法、ODBC驅(qū)動(dòng)程序和用戶接口,從而使得在一個(gè)Hadoop平臺上,可以統(tǒng)一部署Hive和Impala等分析工具,同時(shí)支持批處理和實(shí)時(shí)查詢。
Impala查詢執(zhí)行過程
過程圖 圖:Impala查詢執(zhí)行過程圖
Impala執(zhí)行查詢的具體過程:
第0步,當(dāng)用戶提交查詢前,Impala先創(chuàng)建一個(gè)負(fù)責(zé)協(xié)調(diào)客戶端提交的查詢的Impalad進(jìn)程,該進(jìn)程會向Impala State Store提交注冊訂閱信息,State Store會創(chuàng)建一個(gè)statestored進(jìn)程,statestored進(jìn)程通過創(chuàng)建多個(gè)線程來處理Impalad的注冊訂閱信息。 第1步,用戶通過CLI客戶端提交一個(gè)查詢到impalad進(jìn)程,Impalad的Query Planner對SQL語句進(jìn)行解析,生成解析樹;然后,Planner把這個(gè)查詢的解析樹變成若干PlanFragment,發(fā)送到Query Coordinator. 第2步,Coordinator通過從MySQL元數(shù)據(jù)庫中獲取元數(shù)據(jù),從HDFS的名稱節(jié)點(diǎn)中獲取數(shù)據(jù)地址,以得到存儲這個(gè)查詢相關(guān)數(shù)據(jù)的所有數(shù)據(jù)節(jié)點(diǎn)。 第3步,Coordinator初始化相應(yīng)impalad上的任務(wù)執(zhí)行,即把查詢?nèi)蝿?wù)分配給所有存儲這個(gè)查詢相關(guān)數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)。 第4步,Query Executor通過流式交換中間輸出,并由Query Coordinator匯聚來自各個(gè)impalad的結(jié)果。 第5步,Coordinator把匯總后的結(jié)果返回給CLI客戶端。 Impala與Hive的比較
對比 圖:Impala與Hive的對比
Hive與Impala的不同點(diǎn) 總結(jié)如下:
Hive適合于長時(shí)間的批處理查詢分析,而Impala適合于實(shí)時(shí)交互式SQL查詢。 Hive依賴于MapReduce計(jì)算框架,Impala把執(zhí)行計(jì)劃表現(xiàn)為一棵完整的執(zhí)行計(jì)劃樹,直接分發(fā)執(zhí)行計(jì)劃到各個(gè)Impalad執(zhí)行查詢。 Hive在執(zhí)行過程中,如果內(nèi)存放不下所有數(shù)據(jù),則會使用外存,以保證查詢能順序執(zhí)行完成,而Impala在遇到內(nèi)存放不下數(shù)據(jù)時(shí),不會利用外存,所以Impala目前處理查詢時(shí)會受到一定的限制。 Hive與Impala的相同點(diǎn) 總結(jié)如下:
Hive與Impala使用相同的存儲數(shù)據(jù)池,都支持把數(shù)據(jù)存儲于HDFS和HBase中。 Hive與Impala使用相同的元數(shù)據(jù)。 Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執(zhí)行計(jì)劃。 總結(jié):
Impala的目的不在于替換現(xiàn)有的MapReduce工具。 可以先使用Hive進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理,之后再使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進(jìn)行快速的數(shù)據(jù)分析。 感謝各位的閱讀,以上就是“Impala與hive的區(qū)別是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Impala與hive的區(qū)別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!
名稱欄目:Impala與hive的區(qū)別是什么
文章鏈接:
http://weahome.cn/article/jephoc.html