Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products

Isilon:Ambari 自動 Kerberos 組態與 Isilon

Summary: 本文將引導您使用 Ambari 管理的 Hadoop 叢集來設定 Kerberos 安全性。

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

N/A

Cause

N/A

Resolution

注意:本主題為使用 Hadoop with OneFS - Isilon 資訊中心中的一部分。

本文說明如何使用 Ambari 管理的 Hadoop 叢集來設定 Kerberos 安全性。

Kerberos 是 Hadoop 進行強驗證與加密的核心,但是設定和管理起來可能很困難。Ambari 2.0 推出精靈驅動的自動化 Kerberos 組態,讓處理速度更快,且不易發生錯誤。從 OneFS 8.0.0.1 開始,Dell EMC Isilon 客戶便可利用此絕佳功能。


先決條件

  • OneFS 8.0.0.1 或更新版本。
  • Ambari 2.0 或更高版本。
  • 執行中的 MIT KDC (不支援 Dell 就等)。請依照此處的步驟設定 Kerberos 基礎架構。
  • 所有主機之間的正向和反向 DNS。
  • Ambari 儀表板上的所有服務都在執行 (綠色)。

啟用 Kerberos

預先設定

啟動精靈之前,您必須先設定兩個組態,然後重新開機所有服務。
  • HDFS 中 - > 自訂核心月臺 會將「hadoop.security.token.service.use_ip」設為「false
  • MapReduce2 - > 進階 mapred-site 將「hadoop classpath」新增到「mapreduce.application.classpath」的開頭。記下冒號和背板 (但請勿複製引號)。

開始使用

流覽至 Admin - > Kerberos ,然後按下「Enable Kerberos」按鈕。本節中的標題指的是 Kerberos 精靈頁面的標題。

SLN319432_en_US__1i_isilon-1-enable

選取「Existing MIT KDC」,並確定是否符合先決條件,然後按一下「Next」。請注意,Isilon 不使用 JAVA,也不需要 JCE。

設定 Kerberos/安裝和測試 Kerberos 用戶端

填寫所有 KDC 和管理員伺服器資訊。在步驟 3 (安裝和測試 Kerberos 用戶端) 上,Ambari 伺服器會進行抽取測試,以確保您已正確設定 Kerberos。


SLN319432_en_US__2i_isilon-2-install


設定身分/確認組態

 a) Ambari 使用者主體 (UPN)

Ambari 以$-$@$的形式建立使用者主體,然後使用core-site.xml 中的hadoop.security.auth_to_local,將主體對應至檔案系統上只需$。

Isilon 不遵守對應規則,因此您必須在「Ambari 原則」區段中,從所有主體中移除-$。Isilon 將登出 @$ ,因此不需要別名。在執行 HDFS 的 Ambari 2.2.1 叢集中,YARN、MapReduce2、Tez、Hive、HBase、生牛、Sqoop、Ohmie、Zotor、Falcon、風暴、流暢、Accumulo、Ambari 指標、Kafka、Knox、取出、滑杆和 Spark,在「一般」標籤中進行下列修改:
  • 斯莫魯塞主體名稱${cluster-env/smokeuser}-$ @$ = > ${cluster-env/smokeuser}@$
  • spark.history.kerberos.principal${spark-env/spark_user}-$ @$ = > ${spark-env/spark_user}-@$
  • 風暴主體名稱${storm-env/storm_user}-$ @$ = > ${storm-env/storm_user}-@$
  • HBase 使用者主體${hbase-env/hbase_user}-$ @$ = > ${hbase-env/hbase_user}@$
  • HDFS 使用者主體${hadoop-env/hdfs_user}-$ @$ = > ${hadoop-env/hdfs_user}@$
  • accumulo_principal_name${accumulo-env/accumulo_user}-$ @$= > ${accumulo-env/accumulo_user}@$
  • trace.usertracer-$ @$= > tracer@$

SLN319432_en_US__3i_isilon-3-身分

b) 服務主體 (SPN)

Ambari 建立服務主體,其中部分原則與其 UNIX 使用者名稱不同。同樣地,由於 Isilon 不符合對應規則,您必須修改主體名稱,以符合其 UNIX 使用者名稱。在 Ambari 2.2.1 叢集中,在「進階」標籤中進行下列修改:
  • HDFS - > dfs.namenode.kerberos.principalnn/_HOST@$ = > hdfs/_HOST@$
  • YARN - > yarn.resourcemanager.principalrm/_HOST@$ = > 牛頭/_HOST@美元
  • YARN - > yarn.nodemanager.principalnm/_HOST@ $ = > 牛頭/_HOST@美元
  • MapReduce2 - > mapreduce.jobhistory.principaljhs/_HOST@ $ = > 對應/_HOST@美元
  • Falcon - > *.dfs.namenode.kerberos.principalnn/_HOST@$ = > hdfs/_HOST@$
 

SLN319432_en_US__4i_isilon-4-身分組態


設定適當的主體後,按下「下一步」。在「確認組態」畫面中,按下「下一步」。

停止服務/Kerberize 叢集

停止服務並進行核心化服務應會成功。
 

SLN319432_en_US__5i_isilon-5 叢集


請勿繼續: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 中按下「下一步」以移至精靈的最後一個步驟。

開始和測試服務
 

SLN319432_en_US__6i_isilon-6-startservices

 

如果服務未啟動,以下是偵錯 Kerberos 問題的一些技巧:
  1. 由於 YARN 中的錯誤,您必須在 YARN 中將「yarn.resourcemanager.principal」設為 yarn/$rm_hostname@$REALM 在 YARN - >Custom yarn-site。啟用 Kerberos 時,「_HOST」語法無法運作。
  2. 若要偵錯 JAVA GSSAPI/Kerberos 錯誤,請將「-Dsun.security.krb5.debug=true」新增至HADOOP_OPTS
  3. 若是 HTTP 401 錯誤,請使用 curl with -iv 以取得額外的偵錯資訊。
  4. 請確定在所有主機之間設定正向和反向 DNS。
(選配)強大的 RPC 安全性

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」。所有服務皆應亮起綠色。

Affected Products

Isilon, PowerScale OneFS, Isilon with HDFS
Article Properties
Article Number: 000128963
Article Type: Solution
Last Modified: 14 Sept 2023
Version:  5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.