【轉(zhuǎn)載】Impala和Hive的區(qū)別

      網(wǎng)友投稿 932 2025-03-31

      Impala和Hive的關(guān)系

      Impala是基于Hive的大數(shù)據(jù)實時分析查詢引擎,直接使用Hive的元數(shù)據(jù)庫Metadata,意味著impala元數(shù)據(jù)都存儲在Hive的metastore中。并且impala兼容Hive的sql解析,實現(xiàn)了Hive的SQL語義的子集,功能還在不斷的完善中。

      與Hive的關(guān)系

      Impala 與Hive都是構(gòu)建在Hadoop之上的數(shù)據(jù)查詢工具各有不同的側(cè)重適應(yīng)面,但從客戶端使用來看Impala與Hive有很多的共同之處,如數(shù)據(jù)表元數(shù) 據(jù)、ODBC/JDBC驅(qū)動、SQL語法、靈活的文件格式、存儲資源池等。Impala與Hive在Hadoop中的關(guān)系如下圖所示。Hive適合于長時間的批處理查詢分析,而Impala適合于實時交互式SQL查詢,Impala給數(shù)據(jù)分析人員提供了快速實驗、驗證想法的大數(shù) 據(jù)分析工具。可以先使用hive進行數(shù)據(jù)轉(zhuǎn)換處理,之后使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進行快速的數(shù)據(jù)分析。

      Impala相對于Hive所使用的優(yōu)化技術(shù)

      1、沒有使用 MapReduce進行并行計算,雖然MapReduce是非常好的并行計算框架,但它更多的面向批處理模式,而不是面向交互式的SQL執(zhí)行。與 MapReduce相比:Impala把整個查詢分成一執(zhí)行計劃樹,而不是一連串的MapReduce任務(wù),在分發(fā)執(zhí)行計劃后,Impala使用拉式獲取 數(shù)據(jù)的方式獲取結(jié)果,把結(jié)果數(shù)據(jù)組成按執(zhí)行樹流式傳遞匯集,減少的了把中間結(jié)果寫入磁盤的步驟,再從磁盤讀取數(shù)據(jù)的開銷。Impala使用服務(wù)的方式避免 每次執(zhí)行查詢都需要啟動的開銷,即相比Hive沒了MapReduce啟動時間。

      2、使用LLVM產(chǎn)生運行代碼,針對特定查詢生成特定代碼,同時使用Inline的方式減少函數(shù)調(diào)用的開銷,加快執(zhí)行效率。

      3、充分利用可用的硬件指令(SSE4.2)。

      4、更好的IO調(diào)度,Impala知道數(shù)據(jù)塊所在的磁盤位置能夠更好的利用多磁盤的優(yōu)勢,同時Impala支持直接數(shù)據(jù)塊讀取和本地代碼計算checksum。

      5、通過選擇合適的數(shù)據(jù)存儲格式可以得到最好的性能(Impala支持多種存儲格式)。

      6、最大使用內(nèi)存,中間結(jié)果不寫磁盤,及時通過網(wǎng)絡(luò)以stream的方式傳遞。

      Impala與Hive的異同

      數(shù)據(jù)存儲:使用相同的存儲數(shù)據(jù)池都支持把數(shù)據(jù)存儲于HDFS, HBase。

      【轉(zhuǎn)載】Impala和Hive的區(qū)別

      元數(shù)據(jù):兩者使用相同的元數(shù)據(jù)。

      SQL解釋處理:比較相似都是通過詞法分析生成執(zhí)行計劃。

      執(zhí)行計劃:

      Hive: 依賴于MapReduce執(zhí)行框架,執(zhí)行計劃分成 map->shuffle->reduce->map->shuffle->reduce…的模型。如果一個Query會 被編譯成多輪MapReduce,則會有更多的寫中間結(jié)果。由于MapReduce執(zhí)行框架本身的特點,過多的中間過程會增加整個Query的執(zhí)行時間。

      Impala: 把執(zhí)行計劃表現(xiàn)為一棵完整的執(zhí)行計劃樹,可以更自然地分發(fā)執(zhí)行計劃到各個Impalad執(zhí)行查詢,而不用像Hive那樣把它組合成管道型的 map->reduce模式,以此保證Impala有更好的并發(fā)性和避免不必要的中間sort與shuffle。

      數(shù)據(jù)流:

      Hive: 采用推的方式,每一個計算節(jié)點計算完成后將數(shù)據(jù)主動推給后續(xù)節(jié)點。

      Impala: 采用拉的方式,后續(xù)節(jié)點通過getNext主動向前面節(jié)點要數(shù)據(jù),以此方式數(shù)據(jù)可以流式的返回給客戶端,且只要有1條數(shù)據(jù)被處理完,就可以立即展現(xiàn)出來,而不用等到全部處理完成,更符合SQL交互式查詢使用。

      內(nèi)存使用:

      Hive: 在執(zhí)行過程中如果內(nèi)存放不下所有數(shù)據(jù),則會使用外存,以保證Query能順序執(zhí)行完。每一輪MapReduce結(jié)束,中間結(jié)果也會寫入HDFS中,同樣由于MapReduce執(zhí)行架構(gòu)的特性,shuffle過程也會有寫本地磁盤的操作。

      Impala: 在遇到內(nèi)存放不下數(shù)據(jù)時,當(dāng)前版本1.0.1是直接返回錯誤,而不會利用外存,以后版本應(yīng)該會進行改進。這使用得Impala目前處理Query會受到一 定的限制,最好還是與Hive配合使用。Impala在多個階段之間利用網(wǎng)絡(luò)傳輸數(shù)據(jù),在執(zhí)行過程不會有寫磁盤的操作(insert除外)。

      調(diào)度:

      Hive: 任務(wù)調(diào)度依賴于Hadoop的調(diào)度策略。

      Impala: 調(diào)度由自己完成,目前只有一種調(diào)度器simple-schedule,它會盡量滿足數(shù)據(jù)的局部性,掃描數(shù)據(jù)的進程盡量靠近數(shù)據(jù)本身所在的物理機器。調(diào)度器 目前還比較簡單,在SimpleScheduler::GetBackend中可以看到,現(xiàn)在還沒有考慮負載,網(wǎng)絡(luò)IO狀況等因素進行調(diào)度。但目前 Impala已經(jīng)有對執(zhí)行過程的性能統(tǒng)計分析,應(yīng)該以后版本會利用這些統(tǒng)計信息進行調(diào)度吧。

      容錯:

      Hive: 依賴于Hadoop的容錯能力。

      Impala: 在查詢過程中,沒有容錯邏輯,如果在執(zhí)行過程中發(fā)生故障,則直接返回錯誤(這與Impala的設(shè)計有關(guān),因為Impala定位于實時查詢,一次查詢失敗, 再查一次就好了,再查一次的成本很低)。但從整體來看,Impala是能很好的容錯,所有的Impalad是對等的結(jié)構(gòu),用戶可以向任何一個 Impalad提交查詢,如果一個Impalad失效,其上正在運行的所有Query都將失敗,但用戶可以重新提交查詢由其它Impalad代替執(zhí)行,不 會影響服務(wù)。對于State Store目前只有一個,但當(dāng)State Store失效,也不會影響服務(wù),每個Impalad都緩存了State Store的信息,只是不能再更新集群狀態(tài),有可能會把執(zhí)行任務(wù)分配給已經(jīng)失效的Impalad執(zhí)行,導(dǎo)致本次Query失敗。

      適用面:

      Hive: 復(fù)雜的批處理查詢?nèi)蝿?wù),數(shù)據(jù)轉(zhuǎn)換任務(wù)。

      Impala:實時數(shù)據(jù)分析,因為不支持UDF,能處理的問題域有一定的限制,與Hive配合使用,對Hive的結(jié)果數(shù)據(jù)集進行實時分析。

      Impala 與Hive都是構(gòu)建在Hadoop之上的數(shù)據(jù)查詢工具,但是各有不同側(cè)重,那么我們?yōu)槭裁匆瑫r使用這兩個工具呢?單獨使用Hive或者Impala不可以嗎?

      一、介紹Impala和Hive

      (1)Impala和Hive都是提供對HDFS/Hbase數(shù)據(jù)進行SQL查詢的工具,Hive會轉(zhuǎn)換成MapReduce,借助于YARN進行調(diào)度從而實現(xiàn)對HDFS的數(shù)據(jù)的訪問,而Impala直接對HDFS進行數(shù)據(jù)查詢。但是他們都是提供如下的標準SQL語句,在機身里運行。

      (2)Apache Hive是MapReduce的高級抽象,使用HiveQL,Hive可以生成運行在Hadoop集群的MapReduce或Spark作業(yè)。Hive最初由Facebook大約在2007年開發(fā),現(xiàn)在是Apache的開源項目。

      Apache Impala是高性能的專用SQL引擎,使用Impala SQL,因為Impala無需借助任何的框架,直接實現(xiàn)對數(shù)據(jù)塊的查詢,所以查詢延遲毫秒級。Impala受到Google的Dremel項目啟發(fā),2012年由Cloudera開發(fā),現(xiàn)在是Apache開源項目。

      二、Impala和Hive有什么不同?

      (1)Hive有很多的特性:

      1、對復(fù)雜數(shù)據(jù)類型(比如arrays和maps)和窗口分析更廣泛的支持

      2、高擴展性

      3、通常用于批處理

      (2)Impala更快

      1、專業(yè)的SQL引擎,提供了5x到50x更好的性能

      2、理想的交互式查詢和數(shù)據(jù)分析工具

      3、更多的特性正在添加進來

      三、高級概述:

      四、為什么要使用Hive和Impala?

      1、為數(shù)據(jù)分析人員帶來了海量數(shù)據(jù)分析能力,不需要軟件開發(fā)經(jīng)驗,運用已掌握的SQL知識進行數(shù)據(jù)的分析。

      2、比直接寫MapReduce或Spark具有更好的生產(chǎn)力,5行HiveQL/Impala SQL等同于200行或更多的Java代碼。

      3、提供了與其他系統(tǒng)良好的互操作性,比如通過Java和外部腳本擴展,而且很多商業(yè)智能工具支持Hive和Impala。

      五、Hive和Impala使用案例

      (1)日志文件分析

      日志是普遍的數(shù)據(jù)類型,是當(dāng)下大數(shù)據(jù)時代重要的數(shù)據(jù)源,結(jié)構(gòu)不固定,可以通過Flume和kafka將日志采集放到HDFS,然后分析日志的結(jié)構(gòu),根據(jù)日志的分隔符去建立一個表,接下來運用Hive和Impala 進行數(shù)據(jù)的分析。例如:

      (2)情感分析

      很多組織使用Hive或Impala來分析社交媒體覆蓋情況。例如:

      (3)商業(yè)智能

      很多領(lǐng)先的BI工具支持Hive和Impala

      出處:http://www.cnblogs.com/zlslch/

      Hive 大數(shù)據(jù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:物聯(lián)網(wǎng)技術(shù)之網(wǎng)絡(luò)層技術(shù)
      下一篇:操作系統(tǒng)學(xué)習(xí)筆記(三十二)~大容量存儲器結(jié)構(gòu)單元測試
      相關(guān)文章
      亚洲AV女人18毛片水真多| 久久青青成人亚洲精品| 久久亚洲精品无码AV红樱桃| 亚洲AV无码精品国产成人| 亚洲午夜视频在线观看| 亚洲阿v天堂在线| 国产亚洲综合色就色| 亚洲乱码中文字幕综合| 亚洲色精品vr一区二区三区| 国产国拍精品亚洲AV片| 亚洲av午夜电影在线观看| 亚洲欧美成人综合久久久| 亚洲AV无码一区二区乱子仑| 亚洲成a人片在线不卡一二三区| 亚洲美女大bbbbbbbbb| 亚洲成人网在线播放| 亚洲人成电影网站| 亚洲va久久久噜噜噜久久天堂| 亚洲av午夜国产精品无码中文字 | 亚洲一级片在线播放| 国产v亚洲v天堂无码网站| 婷婷亚洲综合一区二区| 亚洲娇小性色xxxx| 亚洲精品亚洲人成在线播放| 亚洲精品国产专区91在线| 亚洲日产2021三区在线| 亚洲激情视频图片| 色偷偷噜噜噜亚洲男人| 亚洲精品偷拍视频免费观看| 亚洲国产成人精品女人久久久| 亚洲午夜无码久久| 精品韩国亚洲av无码不卡区| 亚洲精品无码专区在线| 狠狠综合亚洲综合亚洲色| 亚洲日本va午夜中文字幕久久| 国内成人精品亚洲日本语音| 亚洲人成电影网站色www| 亚洲欧美在线x视频| 亚洲精品美女久久久久久久| 亚洲AV成人无码天堂| 亚洲国产成人综合精品|