大數(shù)據(jù)計(jì)算引擎:impala對(duì)比hive

      網(wǎng)友投稿 820 2025-04-04

      目錄

      Impala與Hive的異同

      數(shù)據(jù)存儲(chǔ)

      元數(shù)據(jù)

      SQL解釋處理

      執(zhí)行計(jì)劃:

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

      內(nèi)存使用:

      調(diào)度:

      容錯(cuò):

      適用面:

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

      Impala的優(yōu)缺點(diǎn)

      Impala與Hive的異同

      數(shù)據(jù)存儲(chǔ)

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

      元數(shù)據(jù)

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

      SQL解釋處理

      比較相似都是通過詞法分析生成執(zhí)行計(jì)劃。

      執(zhí)行計(jì)劃:

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

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

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

      Hive: 采用推的方式,每一個(gè)計(jì)算節(jié)點(diǎn)計(jì)算完成后將數(shù)據(jù)主動(dòng)推給后續(xù)節(jié)點(diǎn)。

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

      內(nèi)存使用:

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

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

      調(diào)度:

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

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

      容錯(cuò):

      Hive: 依賴于Hadoop的容錯(cuò)能力。

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

      適用面:

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

      Impala:實(shí)時(shí)數(shù)據(jù)分析,因?yàn)椴恢С諹DF,能處理的問題域有一定的限制,與Hive配合使用,對(duì)Hive的結(jié)果數(shù)據(jù)集進(jìn)行實(shí)時(shí)分析。

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

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

      大數(shù)據(jù)計(jì)算引擎:impala對(duì)比hive

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

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

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

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

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

      Impala的優(yōu)缺點(diǎn)

      優(yōu)點(diǎn):

      支持SQL查詢,快速查詢大數(shù)據(jù)。

      可以對(duì)已有數(shù)據(jù)進(jìn)行查詢,減少數(shù)據(jù)的加載,轉(zhuǎn)換。

      多種存儲(chǔ)格式可以選擇(Parquet, Text, Avro, RCFile, SequeenceFile)。

      可以與Hive配合使用。

      缺點(diǎn):

      不支持用戶定義函數(shù)UDF。

      不支持text域的全文搜索。

      不支持Transforms。

      不支持查詢期的容錯(cuò)。

      對(duì)內(nèi)存要求高。

      傳送門:?大數(shù)據(jù)生態(tài)圈常用組件(一):數(shù)據(jù)庫(kù)、查詢引擎、ETL工具、調(diào)度工具等

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

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

      上一篇:wps表格中給表格添加邊框的方法步驟詳解(wps表格里面怎么加邊框)
      下一篇:Excel中替換指定字符數(shù)的文本的REPLACE函數(shù)使用教程
      相關(guān)文章
      亚洲啪啪AV无码片| 久久亚洲国产精品123区| 久久91亚洲精品中文字幕| 国产成人亚洲精品狼色在线| 激情无码亚洲一区二区三区| 亚洲youwu永久无码精品| 久久亚洲精品11p| 日韩亚洲人成在线综合| 国产亚洲综合视频| 亚洲色一色噜一噜噜噜| 国产精品亚洲精品日韩已方| 伊人久久综在合线亚洲91| 亚洲国产精品久久久久婷婷软件| 亚洲国产精品成人精品无码区| 久久亚洲精品视频| 亚洲AV无码一区东京热| 西西人体44rt高清亚洲| 91在线亚洲精品专区| 亚洲国产成人资源在线软件| 亚洲国产av高清无码| 国产成+人+综合+亚洲专| 国产成人精品日本亚洲直接| 亚洲国产区男人本色在线观看| 亚洲综合av一区二区三区| 亚洲精品蜜夜内射| 日韩色日韩视频亚洲网站| 亚洲中文字幕成人在线| 亚洲国产无套无码av电影| 亚洲高清视频在线观看| 亚洲精品在线免费观看视频| 国产成+人+综合+亚洲专| 亚洲AV成人无码久久WWW| 亚洲AⅤ男人的天堂在线观看| 亚洲七七久久精品中文国产| 亚洲国产综合无码一区| 亚洲高清无在码在线无弹窗| 中文字幕无码亚洲欧洲日韩| 久久精品熟女亚洲av麻豆| 亚洲中文字幕久久久一区| 亚洲中文无码a∨在线观看| 亚洲国产综合久久天堂|