先決條件
啟用 Kerberos
預先設定
啟動精靈之前,您必須先設定兩個組態,然後重新開機所有服務。開始使用
流覽至 Admin - > Kerberos ,然後按下「Enable Kerberos」按鈕。本節中的標題指的是 Kerberos 精靈頁面的標題。設定 Kerberos/安裝和測試 Kerberos 用戶端
填寫所有 KDC 和管理員伺服器資訊。在步驟 3 (安裝和測試 Kerberos 用戶端) 上,Ambari 伺服器會進行抽取測試,以確保您已正確設定 Kerberos。
設定身分/確認組態
a) Ambari 使用者主體 (UPN)
Ambari 以$-$@$的形式建立使用者主體,然後使用core-site.xml 中的hadoop.security.auth_to_local,將主體對應至檔案系統上只需$。
設定適當的主體後,按下「下一步」。在「確認組態」畫面中,按下「下一步」。
停止服務/Kerberize 叢集
停止服務並進行核心化服務應會成功。
請勿繼續:Isilon 不允許 Ambari 為 Isilon 主體建立 Keytab。您必須使用以下步驟,在 Isilon 上手動設定 Kerberos。
a) 以 Isilon Auth 提供者身分建立 KDC
注意:如果這個 Isilon 區域已設定為使用您的 MIT KDC,您可以略過這些步驟。
isi auth krb5 create --realm=$REALM --admin-server=$admin_server --kdc=$kdc_server --user=$admin_principal --password=$admin_password
isi zone zones modify --zone=$isilon_zone --add-auth-provider=krb5:$REALM
b) 為 HDFS 和 HTTP (適用于 WebHDFS) 建立服務主體。
isi auth krb5 spn create --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
isi auth krb5 spn create --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
c) 建立任何必要的 Proxy 使用者
在不安全的叢集中,任何使用者都可以冒充任何其他使用者。在安全的叢集中,必須明確指定 Proxy 使用者。
如果您有 Hive 或 O gadgetie,請新增適當的 Proxy 使用者。
isi hdfs proxyusers create oozie --zone=$isilon_zone --add-user=ambari-qa
isi hdfs proxyusers create hive --zone=$isilon_zone --add-user=ambari-qa
d) 停用簡單的驗證
僅允許 Kerberos 或委派權杖驗證。
isi hdfs 設定修改 --zone=$isilon_zone --authentication-mode=kerberos_only
現在 Isilon 也已設定好,請在 Ambari 中按下「下一步」以移至精靈的最後一個步驟。
開始和測試服務
如果服務未啟動,以下是偵錯 Kerberos 問題的一些技巧:
在 HDFS 中- > 自訂核心月臺 會將「hadoop.rpc.protection」設為「完整性」或「隱私權」。除了驗證之外,完整性保證訊息並未遭到篡改,隱私權也會加密所有訊息。
執行工作!
在任何用戶端主機中,嘗試執行 MapReduce 工作!
kinit <some-user> yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 1 1000
Job Finished in 37.635 seconds
Estimated value of Pi is 3.14800000000000000000
Congratulations--you have secured your cluster with Kerberos!
(選配)停用 Kerberos
清理 Isilon
您應先清理 Isilon。這基本上與啟用 Kerberos 相反。
a) 停用 Kerberos 驗證
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
b) 刪除任何 Proxy 使用者
isi hdfs proxyusers delete oozie --zone=$isilon_zone
isi hdfs proxyusers delete hive --zone=$isilon_zone
c) 刪除主體
isi auth krb5 spn delete --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --all
isi auth krb5 spn delete --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --all
請注意,上述命令僅從 Isilon 移除這些主體,但請勿將其從 KDC 中移除。使用這些命令從 KDC 中移除 Isilon 主體:
kadmin -p $admin_principal
kadmin: delete_principal hdfs/$isilon_smartconnect@$REALM
kadmin: delete_principal HTTP/$isilon_smartconnect@$REALM
d) 將 KDC 移除為 Isilon 驗證供應商
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
使用 Ambari 清理用戶端
在Admin - > Kerberos中按下「Disable Kerberos」。所有服務皆應亮起綠色。