Apache Impala
- impla是個實時的sql查詢工具,類似於hive的操作方式,只不過執行的效率極高,號稱當下大數據生態圈中執行效率最高的sql類軟件
- impala來自於cloudera,後來貢獻給了apache
- impala工作底層執行依賴於hive 與hive共用一套元數據存儲。在使用impala的時候,必須保證hive服務是正常可靠的,至少metastore開啓。
- impala最大的跟hive的不同在於 不在把sql編譯成mr程序執行 編譯成執行
計劃數(勘誤:計劃樹)。 - impala的sql語法幾乎兼容hive的sql語句。
impala是一個適用於實時交互查詢的sql軟件 hive適合於批處理查詢的sql軟件。通常是兩個互相配合。
- impala 可以集羣部署
- Impalad(impala server):可以部署多個不同機器上,通常與datanode部署在同一個節點 方便數據本地計算,負責具體執行本次查詢sql的impalad稱之爲Coordinator。每個impala server都可以對外提供服務。
- impala state store:主要是保存impalad的狀態信息 監視其健康狀態
- impala catalogd :metastore維護的網關 負責跟hive 的metastore進行交互 同步hive的元數據到impala自己的元數據中。
- CLI:用戶操作impala的方式(impala shell、jdbc、hue)
- impala 查詢處理流程
- impalad分爲java前端(接受解析sql編譯成執行計劃樹),c++後端(負責具體的執行計劃樹操作)
- impala sql---->impalad(Coordinator)---->調用java前端編譯sql成計劃樹------>以Thrift數據格式返回給C++後端------>根據執行計劃樹、數據位於路徑(libhdfs和hdfs交互)、impalad狀態分配執行計劃 查詢----->彙總查詢結果----->返回給java前端---->用戶cli
- 跟hive不同就在於整個執行中已經沒有了mapreduce程序的存在
-
impala集羣安裝規劃
- node-3 :impalad 、impala state store、impala catalogd、impala-shell
- node-2:impalad
- node-1:impalad
-
impala安裝
- impala沒有提供tar包 只有rpm包 這個rpm包只有cloudera公司
- 要麼自己去官網下載impala rpm包和其相關的依賴 要麼自己製作本地yum源
- 特別注意本地yum源的安裝 需要Apache server對外提供web服務 使得各個機器都可以訪問下載yum源
- 在指定的每個機器上根據規劃 yum安裝指定的服務
- 保證hadoop hive服務正常,開啓相關的服務
- hive metastore hiveserver2
- hadoop hdfs-site.xml 開啓本地讀取數據的功能
- 要把配置文件scp給其他機器 重啓
- 修改impala配置文件
- 修改bigtop 指定java路徑
- 根據規劃分別啓動對應的impala進程
- 如果出錯 排查的依據就是去,日誌默認都在/var/log/impala
-
impala集羣的啓動關閉
-
主節點 按照順序啓動以下服務
service impala-state-store start service impala-catalog start service impala-server start
-
從節點
service impala-server start
-
如果需要關閉impala 把上述命令中start 改爲stop
-
通過ps -ef|grep impala 判斷啓動的進程是否正常 如果出錯 日誌是你解決問題的唯一依據。
/var/log/impala
-