全部產品
Search
文件中心

E-MapReduce:使用Kerberos認證

更新時間:Feb 09, 2025

Kerberos是一種基於對稱金鑰技術的身份認證協議,可以為其他服務提供身份認證功能。本文為您介紹Hive在開啟Kerberos的情況下,如何訪問Hive Client。

前提條件

已建立叢集,且在軟體配置頁面的進階設定地區中,開啟了Kerberos身份認證開關。建立叢集詳情請參見建立叢集Kerberos

操作步驟

  1. 使用SSH方式登入叢集,詳情請參見登入叢集

  2. 執行以下命令,進入Kerberos的admin.local工具。

    • 如果您是使用root使用者,登入KDC(Kerberos的服務端程式)所在的master-1-1節點,則可以執行以下命令,直接進入admin工具。

      kadmin.local

      當返回資訊中包含如下資訊時,表示已進入admin.local命令列。

      Authenticating as principal hadoop/admin@EMR.C-85D4B8D74296****.COM with password.
      kadmin.local:
    • 如果您登入的是其他節點或者使用Gateway時,則可以通過填寫admin-user和admin-password進入admin工具。

      kadmin -p <admin-user> -w <admin-password>
      說明

      如果您使用的是EMR自建的KDC,則參數:

      • <admin-user>:固定值為root/admin

      • <admin-password>:您可以在E-MapReduce控制台,Kerberos服務的配置頁面,擷取admin_pwd的參數值。

      當返回資訊中包含如下資訊時,表示已進入admin命令列。

      Authenticating as principal root/admin with password.
      kadmin:
  3. 執行以下命令,建立使用者名稱為test的Principal。

    本文樣本密碼設定為123456。

    addprinc -pw 123456 test

    當返回資訊中包含如下資訊時,表示建立成功。

    Principal "test@EMR.C-85D4B8D74296****.COM" created.
    說明

    需要記錄使用者名稱和密碼,在建立TGT(Ticket Granting Ticket)時會用到。

    執行quit命令,可以退出Kerberos的admin.local工具。

  4. 登入您需要運行Hive Client的機器,執行以下命令,建立並切換至test使用者。

    useradd test
    su test
  5. 執行以下命令,建立TGT。

    kinit

    斷行符號後輸入test使用者的密碼,本文樣本密碼為123456。

  6. 訪問Hive Client。

    • 方式一:直接使用hive命令訪問Hive Client

      hive
    • 方式二:使用Beeline訪問Hive Client

      beeline -u "jdbc:hive2://master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com:10000/;principal=hive/_HOST@EMR.c-56187feb57f0****.COM"

      其中,以下資訊需要您按照實際情況替換:

      • master-1-1.c-56187feb57f0****.cn-hangzhou.emr.aliyuncs.com:完整的主機名稱(包括網域名稱)。您可以通過在HiveServer2服務的節點(通常是master-1-1節點)執行hostname -f命令擷取。

      • EMR.c-56187feb57f0****.COM:realm名稱。您可以在EMR控制台Kerberos服務的配置頁簽,搜尋並查看realm參數,參數值即為該realm名稱。

        image

相關文檔