<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Impala一文詳解及與hive簡單對比

          共 1994字,需瀏覽 4分鐘

           ·

          2021-05-16 04:43

          關(guān)注我,回復(fù)"資料",獲取精美的大數(shù)據(jù)資料

          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ū)動程序和用戶接口。
          組件

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


          系統(tǒng)架構(gòu)
          圖:Impala系統(tǒng)架構(gòu)圖
          Impala和Hive、HDFS、HBase等工具是統(tǒng)一部署在一個Hadoop平臺上的。Impala主要由Impalad,State Store和CLI三部分組成。
          (1)Impalad
          • 負(fù)責(zé)協(xié)調(diào)客戶端提交的查詢的執(zhí)行
          • 包含Query Planner、Query Coordinator和Query Exec Engine三個模塊。
          • 與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)建一個statestored進(jìn)程。
          • 負(fù)責(zé)收集分布在集群中各個Impalad進(jìn)程的資源信息,用于查詢調(diào)度。
          (3)CLI
          • 給用戶提供查詢使用的命令行工具。
          • 還提供了Hue、JDBC及ODBC的使用接口。
          說明:Impala中的元數(shù)據(jù)直接存儲在Hive中。Impala采用與Hive相同的元數(shù)據(jù)、SQL語法、ODBC驅(qū)動程序和用戶接口,從而使得在一個Hadoop平臺上,可以統(tǒng)一部署Hive和Impala等分析工具,同時支持批處理和實(shí)時查詢。

          Impala查詢執(zhí)行過程


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

          Impala與Hive的比較


          對比
          Hive與Impala的不同點(diǎn)總結(jié)如下:
          1. Hive適合于長時間的批處理查詢分析,而Impala適合于實(shí)時交互式SQL查詢。
          2. Hive依賴于MapReduce計(jì)算框架,Impala把執(zhí)行計(jì)劃表現(xiàn)為一棵完整的執(zhí)行計(jì)劃樹,直接分發(fā)執(zhí)行計(jì)劃到各個Impalad執(zhí)行查詢。
          3. Hive在執(zhí)行過程中,如果內(nèi)存放不下所有數(shù)據(jù),則會使用外存,以保證查詢能順序執(zhí)行完成,而Impala在遇到內(nèi)存放不下數(shù)據(jù)時,不會利用外存,所以Impala目前處理查詢時會受到一定的限制。
          Hive與Impala的相同點(diǎn)總結(jié)如下:
          1. Hive與Impala使用相同的存儲數(shù)據(jù)池,都支持把數(shù)據(jù)存儲于HDFS和HBase中。
          2. Hive與Impala使用相同的元數(shù)據(jù)。
          3. Hive與Impala中對SQL的解釋處理比較相似,都是通過詞法分析生成執(zhí)行計(jì)劃。
          總結(jié):
          • Impala的目的不在于替換現(xiàn)有的MapReduce工具。
          • 把Hive與Impala配合使用效果最佳。
          • 可以先使用Hive進(jìn)行數(shù)據(jù)轉(zhuǎn)換處理,之后再使用Impala在Hive處理后的結(jié)果數(shù)據(jù)集上進(jìn)行快速的數(shù)據(jù)分析。

          猜你喜歡
          Spark性能優(yōu)化指南——高級篇
          Flink實(shí)時計(jì)算topN熱榜
          Hbase集群掛掉的一次驚險(xiǎn)經(jīng)歷
          數(shù)倉建模分層理論
          數(shù)倉架構(gòu)發(fā)展史
          數(shù)倉建模方法論
          瀏覽 36
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  一区二区三区四区无码免费 | 中文字幕成人乱码熟女 | 色a视频 色操网站 | 精品国产伦一区二区三区在线闺蜜 | 蜜臀久久99精品久久久久老师 |