選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用者模擬 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用者模擬

在 Jupyter 筆記本內執行的 Spark 作業,會在其於 Amazon EMR 上執行期間周遊多個應用程式。例如,使用者在 Jupyter 內執行的 PySpark3 程式碼,將由 Sparkmagic 接收,此應用程式會使用 HTTP POST 要求將該程式碼提交到 Livy,再由其建立可在使用 YARN 的叢集上執行的 Spark 工作。

根據預設,以這種方式提交的 YARN 工作將會以使用者 livy 的身分執行,無論該工作當初是由哪位使用者啟動。設定使用者模擬之後,筆記本使用者的使用者 ID 也會成為與該 YARN 工作關聯的使用者。因此不需要讓 shirleydiego 起始的工作都與使用者 livy 建立關聯,因為由每位使用者所起始的工作,都已分別與 shirleydiego 互有關聯。這樣能幫助您稽核 Jupyter 用量,以及管理組織內的應用程式。

只有當從 Sparkmagic 發出的 Livy 呼叫是未經授權時,此組態才會受到支援。不支援為 Hadoop 應用程式和 Livy 之間提供身分驗證或代理層 (例如 Apache Knox Gateway) 的應用程式。本節中所述用於設定使用者模擬的步驟,則假設 JupyterHub 和 Livy 執行於相同主節點上。如果您的應用程式具有不同的叢集,則您必須修改 步驟 3:建立 HDFS 使用者主目錄,以便在 Livy 主節點上建立該 HDFS 目錄。

步驟 1:設定 Livy

當您建立叢集來啟用 Livy 使用者模擬時,您就會用到 livy-confcore-site 組態分類,如下面範例所示。將組態分類儲存為 JSON,然後在建立叢集時參考該檔案,或是指定內嵌的組態分類。如需詳細資訊,請參閱設定應用程式

[ { "Classification": "livy-conf", "Properties": { "livy.impersonation.enabled": "true" } }, { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*" } } ]

步驟 2:新增使用者

使用 PAM 或 LDAP 以新增 JupyterHub 使用者。如需詳細資訊,請參閱 使用 PAM 身分驗證使用 LDAP 身分驗證

步驟 3:建立 HDFS 使用者主目錄

您已連接到主節點,並可建立使用者。在持續與主節點連線情況下複製下面內容,並將其存成指令碼檔案。這個指令碼會為主節點上的每位 JupyterHub 使用者建立 HDFS 主目錄。這段指令碼會假設您使用預設的管理員使用者 ID jovyan

#!/bin/bash CURL="curl --silent -k" HOST=$(curl -s http://169.254.169.254/latest/meta-data/local-hostname) admin_token() { local user=jovyan local pwd=jupyter local token=$($CURL https://$HOST:9443/hub/api/authorizations/token \ -d "{\"username\":\"$user\", \"password\":\"$pwd\"}" | jq ".token") if [[ $token != null ]]; then token=$(echo $token | sed 's/"//g') else echo "Unable to get Jupyter API Token." exit 1 fi echo $token } # Get Jupyter Admin token token=$(admin_token) # Get list of Jupyter users users=$(curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $token" | jq '.[].name' | sed 's/"//g') # Create HDFS home dir for user in ${users[@]}; do echo "Create hdfs home dir for $user" hadoop fs -mkdir /user/$user hadoop fs -chmod 777 /user/$user done
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。