本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
JupyterHub 組態和管理
JupyterHub 和相關元件在名為 jupyterhub
的 Docker 容器內執行,該容器執行 Ubuntu 作業系統。您可使用多種方法來管理容器內執行的元件。
警告
如果容器重新啟動,您在容器內執行的自訂項目可能不會保留。我們建議您編寫指令碼或自動化容器組態,如此您便可更容易的重現自訂項目。
使用命令列進行管理
當使用 SSH 連接到主節點時,您可以使用 Docker 命令列界面 (CLI) 和透過名稱 (jupyterhub
) 或 ID 來指定容器以發出命令。例如,sudo docker exec jupyterhub
執行由作業系統或容器內執行的應用程式所辨識的命令。您可以使用此方法將使用者新增到作業系統,並在 Docker 容器中安裝其他應用程式和程式庫。例如,預設的容器映像包含針對套件安裝的 Conda,因此您可以在主節點命令列上執行以下命令,以在容器中安裝應用程式、Keras:command
sudo docker exec jupyterhub conda install keras
提交步驟以進行管理
步驟是一種提交工作到叢集的方式。您可以在啟動叢集時提交步驟,或者提交步驟到執行中的叢集。您可使用 command-runner.jar
,以將您在命令列上執行的命令做為步驟來提交。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的使用 CLI 和主控台來使用步驟,以及 在 Amazon EMR 叢集上執行命令和指令碼。
例如,您可以在本機電腦上使用下列 AWS CLI 命令,以與先前範例中主節點命令列相同的方式安裝 Keras:
aws emr add-steps --cluster-id
MyClusterID
--steps Name="Command Runner
",Jar="command-runner.jar",Args="/usr/bin/sudo","/usr/bin/docker","exec","jupyterhub","conda","install","keras"
此外,您也可以編寫一系列的步驟指令碼,並上傳至 Amazon S3,然後在建立叢集或將指令碼新增為步驟時,使用 script-runner.jar
來執行指令碼。如需詳細資訊,請參閱在 Amazon EMR 叢集上執行命令和指令碼。如需範例,請參閱「範例:新增多個使用者的 Bash 指令碼」。
使用 REST API 進行管理
適用於 JupyterHub 的 Jupyter、JupyterHub 和 HTTP 代理提供您用於傳送請求的 REST API。若要傳送請求至 JupyterHub,您必須與請求一起傳遞 API 字符。您可以從主節點命令列使用 curl
命令來執行 REST 命令。如需詳細資訊,請參閱下列資源:
JupyterHub 文件中的使用 JupyterHub 的 REST API
,其中包含產生 API 字符的說明。 GitHub 上的 Jupyter 筆記本伺服器 API
GitHub 上的 configurable-http-proxy
以下範例示範了如何使用適用於 JupyterHub 的 REST API 以取得使用者清單。該指令會傳遞先前產生的管理字符,並針對 JupyterHub 使用預設的 9443 連接埠,將輸出透過管道傳送到 jq
curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $admin_token" | jq .