2020.02.17 impala知識點回顧

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
      
發佈了124 篇原創文章 · 獲贊 18 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章