impala是cloudera公司主導開發的新型查詢系統,它提供sql語義,能查詢儲存在hadoop的hdfs和hbase中的pb級大資料。已有的hive系統雖然也提供了sql語義,但由於hive底層執行使用的是mapreduce引擎,仍然是乙個批處理過程,難以滿足查詢的互動性。相比之下,impala的最大特點也是最大賣點就是它的快速。
二、impala組成
1、客戶端:包括jdbc、odbc、hue、impala shell等,用於執行查詢或完成管理任務;
2、hive metastore:儲存可用於impala資料的資訊,包括可用資料庫及其結構。當執行impala sql語句進行schema物件的建立、修改及刪除,或載入資料到表中等操作時,相關元資料的變化,通過單獨的catalog服務自動廣播到所有impala節點;
3、cloudera impala(impalad程序):執行於資料節點的impala程式,用於協調和執行查詢。每乙個impala的例項可以獲取、解析以及協調impala客戶端傳來的查詢。查詢是被分布到各impala節點間,這些節點作為workers,並行執行查詢片段;
4、hdfs、hbase:資料的實際儲存位置。
三、impala查詢執處理過程
1、使用者程式通過jdbc、odbc、impala shell等impala 客戶端傳送sql語句給impala;
2、使用者程式連線到集群中任意impalad程序,這一程序作為整個查詢的協調器;
3、impala解析、分析查詢,確定哪些任務由集群中哪一impalad例項執行,並生成最優執行計畫;
4、impalad例項訪問對應hdfs、hbase服務,獲取資料;
5、每乙個impalad例項將資料返回給協調器impalad,由其傳送結果給客戶端。
1、impala不需要把中間結果寫入磁碟,省掉了大量的i/o開銷。
2、省掉了mapreduce作業啟動的開銷。mapreduce啟動task的速度很慢(預設每個心跳間隔是3秒鐘),impala直接通過相應的服務程序來進行作業排程,速度快了很多。
3、impala完全拋棄了mapreduce這個不太適合做sql查詢的正規化,而是像dremel一樣借鑑了mpp並行資料庫的思想另起爐灶,因此可做更多的查詢優化,從而省掉不必要的shuffle、sort等開銷。
4、通過使用llvm來統一編譯執行時**,避免了為支援通用編譯而帶來的不必要開銷。
5、用c++實現,做了很多有針對性的硬體優化,例如使用sse指令。
6、使用了支援data locality的i/o排程機制,盡可能地將資料和計算分配在同一臺機器上進行,減少了網路開銷。
Impala簡介(整理)
impala是cloudera公司主導開發的新型查詢系統,它提供sql語義,能查詢儲存在hadoop的hdfs和hbase中的pb級大資料。已有的hive系統雖然也提供了sql語義,但由於hive底層執行使用的是mapreduce引擎,仍然是乙個批處理過程,難以滿足查詢的互動性。相比之下,impal...
大資料入門 Impala框架基礎簡介
在大資料處理當中,核心的資料分析處理環節,衍生出了非常多的框架元件工具,基於不同場景下的需求,給出了更多可選的技術方案。比如說在互動式查詢場景下,impala就是乙個不可忽視的重要選擇。今天的大資料入門分享,我們就來講講impala框架入門的一些基礎知識。impala的出現,追溯其源頭,是來自於go...
LINQ技術簡介(整理)
linq技術 解決降低訪問和整合資訊資料的複雜度的問題,即集合訪問技術 linq,語言級整合查詢 languageintegratedquery c 3.0 linq 查詢語法 首先來看乙個很簡單的linq查詢例子,查詢乙個int 陣列中小於5的數字,並按照大小順序排列 class program ...