全部產品
Search
文件中心

E-MapReduce:串連Impala

更新時間:Jun 19, 2026

本文為您介紹如何在E-MapReduce(簡稱EMR)上使用命令列工具操作Impala。

前提條件

已建立叢集,並且選擇了Impala服務,詳情請參見建立叢集

impala-shell串連方式

在串連Impala前,您可以執行impala-shell --help命令擷取協助。

普通叢集

  1. 通過SSH方式串連叢集的Master節點,詳情請參見登入叢集

  2. 執行以下命令,串連Impala。

    impala-shell -i <impalad節點名稱>

    本文中的<impalad節點名稱>,您可以在EMR控制台Impala服務的状态頁簽,Impalad拓撲列表中的節點名稱列查看。例如,查看到的節點名稱是core-1-1和core-1-2節點,串連Impala時選擇其中任意一個節點名稱即可。在EMR控制台的Impala服務狀態頁面中,展開Impalad組件,在拓撲列表的節點名稱列可擷取Impalad節點名稱(例如core-1-1、core-1-2),將其替換到上述命令的 <impalad 節點名稱> 處。

  3. 可選: 執行命令quit;,您可以退出Impala命令列。

高安全叢集

  1. 通過SSH方式串連叢集的Master節點,詳情請參見登入叢集

  2. 初始化憑證。

    1. 執行以下命令,查看是否有Kerberos憑證。

      klist

      如果輸出資訊中包含內容klist: No credentials cache found,則需要執行下一步初始化一個訪問憑證。如果輸出資訊中有憑證資訊,則可跳過初始化憑證步驟,直接使用impala-shell命令串連Impala。

    2. 執行以下命令,查看Principal資訊。

      klist -k $IMPALA_CONF_DIR/impala.keytab

      記錄返回資訊中的第一行資訊,下步驟中會使用。例如,本樣本擷取到的資訊為impala/master-1-1.c-45dcb9bbe234****.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE23****.COM

      [root@master-l-1(192.16xxx) ~]# klist -k $IMPALA_CONF_DIR/impala.keytab
      Keytab name: FILE:/etc/taihao-apps/impala-conf/runtime-conf/impala.keytab
      KVNO Principal
      ---- ----------------------------------------------------------------
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
         2 impala/master-l-1.c-45dcb9bbe234xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-45DCB9BBE234xxx.COM
    3. 執行以下命令,初始化憑證。

      kinit -k -t $IMPALA_CONF_DIR/impala.keytab <Principal資訊>
      說明

      <Principal資訊>為前一步驟中記錄的返回資訊。

  3. 執行以下命令,串連Impala。

    impala-shell -k -i <impalad節點名稱>
  4. 可選: 執行命令quit;,您可以退出Impala命令列。

Beeline JDBC串連方式

普通叢集

  1. 通過SSH方式串連叢集的Master節點,詳情請參見登入叢集

  2. 執行以下命令,串連Impala。

    beeline -u 'jdbc:hive2://<impalad節點名稱>:28000/default;transportMode=http;uauth=noSasl'
  3. 可選: 執行命令quit;,您可以退出Impala命令列。

高安全叢集

  1. 通過SSH方式串連叢集的Core節點,詳情請參見登入叢集

  2. 以root使用者身份初始化憑證。

    1. 執行以下命令,查看是否有kerberos憑證。

      klist

      如果輸出資訊中包含內容klist: No credentials cache found,則需要執行下一步初始化一個訪問憑證。如果輸出資訊中有憑證資訊,則可跳過初始化憑證步驟,直接使用impala-shell命令串連Impala。

    2. 執行以下命令,查看Principal資訊。

      klist -k $IMPALA_CONF_DIR/impala.keytab

      記錄返回資訊中的第一行資訊,下一步驟中會使用。例如,本樣本擷取到的資訊為impala/core-1-1.c-ee5cfb2d6306****.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D6306****.COM

      [root@core-1-1(xxx) ~]# klist -k $IMPALA_CONF_DIR/impala.keytab
      Keytab name: FILE:/etc/taihao-apps/impala-conf/runtime-conf/impala.keytab
      KVNO Principal
      ---- ----------------------------------------------------------------
         2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM
         2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM
         2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM
         2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM
         2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM
         2 impala/core-1-1.c-ee5cfb2dxxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2Dxxx.COM
         2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM
         2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM
         2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM
         2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM
         2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM
         2 HTTP/core-1-1.c-ee5cfb2d63xxx.cn-hangzhou.emr.aliyuncs.com@EMR.C-EE5CFB2D63xxx.COM
    3. 執行以下命令,初始化憑證。

      kinit -k -t $IMPALA_CONF_DIR/impala.keytab <Principal資訊>
      說明

      <Principal資訊>為前一步驟中記錄的返回資訊。

  3. 以root使用者身份執行以下命令,串連Impala。

    beeline -u 'jdbc:hive2://<impalad節點名稱>:28000/default;principal=<Principal資訊>;transportMode=http'
  4. 可選:執行命令!quit,您可以退出Impala命令列。

常見問題

如何尋找 Impala 日誌?

Impala 日誌預設儲存在 /var/log/taihao-apps/impala/ 目錄下。如果在 Core 節點上找不到 Impala 日誌,請確認尋找路徑是否正確。

若叢集未開啟 Ranger 服務,Impala 的許可權校正基於 HDFS 檔案讀寫權限。可以通過以下命令從審計日誌中提取歷史串連 Impala 的使用者資訊:

grep "Successfully authenticated client user" /var/log/taihao-apps/impala/impalad.INFO* | awk -F'"' '{print $2}' | sort | uniq -c | sort -nr

該命令會按串連次數從高到低列出所有歷史串連使用者。

如何為 Impala 建立唯讀帳號?

建立 Impala 唯讀帳號需要通過 Apache Ranger 實現許可權控制。如果叢集未部署 Ranger 服務,需要先在叢集中添加 Ranger 組件。

重要

EMR 4.9.0 版本的 Impala 不支援 Ranger 授權。如需使用 Ranger 管理 Impala 許可權,建議建立高版本 EMR 叢集並遷移資料。