JupyterHub 構成と管理 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

JupyterHub 構成と管理

JupyterHub および関連コンポーネントは、Ubuntujupyterhub オペレーティングシステムを実行する名前の Docker コンテナ内で実行されます。コンテナ内で実行するコンポーネントを管理する方法はいくつかあります。

警告

コンテナ内で行うカスタマイズはコンテナの再起動時に保持されない場合があります。カスタマイズをより再現しやすくするため、スクリプトを使用するかコンテナ設定の自動化を推奨します。

コマンドラインを使用して管理する

SSH を使用してマスターノードに接続する場合は、Docker コマンドラインインターフェイス (CLI) を使用してコマンドを実行できます。その場合はコンテナを名前または ID で指定します (jupyterhub)。たとえば、sudo docker exec jupyterhub command はオペレーティングシステムまたはコンテナ内で実行されるアプリケーションが認識するコマンドを実行します。このメソッドを使用し、オペレーティングシステムにユーザーを追加して Docker コンテナ内に追加アプリケーションやライブラリをインストールすることができます。たとえば、デフォルトのコンテナイメージにはパッケージのインストールの Conda が含まれているので、マスターノードラインで次のコマンドを実行し、コンテナ内でアプリケーション、Keras をインストールすることができます。

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 を使用して管理する

Jupyter JupyterHub、およびの HTTP プロキシには、リクエストの送信に使用できる REST API が用意されています。 JupyterHub にリクエストを送信するには JupyterHub、リクエストとともに API トークンを渡す必要があります。マスターノードのコマンドラインから curl コマンドを使用して、REST コマンドを実行できます。詳細については、以下のリソースを参照してください。

次の例は、REST API JupyterHub を使用してユーザーのリストを取得する方法を示しています。このコマンドは、以前に生成された管理トークンを渡し、デフォルトのポートである9443を使用して出力をjqにパイプ処理して見やすくします。 JupyterHub

curl -XGET -s -k https://$HOST:9443/hub/api/users \ -H "Authorization: token $admin_token" | jq .