翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EMR Studio でのカーネルとライブラリのインストールと使用
各EMRノートブックには、あらかじめインストールされたライブラリとカーネルのセットが付属しています。EMR クラスターがカーネルとライブラリがあるリポジトリにアクセスできる場合は、追加のライブラリとカーネルをクラスターにインストールできます。例えば、プライベートサブネット内のクラスターの場合、ネットワークアドレス変換 (NAT) を設定し、クラスターがパブリック PyPI リポジトリにアクセスしてライブラリをインストールするためのパスを提供する必要があります。さまざまなネットワーク設定の外部アクセスの設定の詳細については、「Amazon VPCユーザーガイド」の「シナリオと例」を参照してください。
注記
EMR ノートブックは、コンソールで EMR Studio Workspaces として使用できます。コンソールのワークスペースの作成ボタンを使用すると、新しいノートブックを作成できます。Workspaces にアクセスまたは作成するには、EMRノートブックユーザーに追加のIAMロールアクセス許可が必要です。詳細については、「コンソール」および「Amazon コンソール」の「Amazon EMR Notebooks are Amazon EMR Studio Workspaces」を参照してください。 EMR
EMR サーバーレスアプリケーションには、Python および 用の以下のプリインストールされたライブラリが付属しています PySpark。
-
Python ライブラリ – ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy
-
PySpark ライブラリ – ggplot, matplotlib, numpy, pandas, plotly, bokeh, scikit-learn, scipy, scipy
クラスターのプライマリノードへのカーネルと Python ライブラリのインストール
Amazon EMRリリースバージョン 5.30.0 以降では、6.0.0 を除く追加の Python ライブラリとカーネルをクラスターのプライマリノードにインストールできます。インストール後、これらのカーネルとライブラリは、クラスターにアタッチされたEMRノートブックを実行しているすべてのユーザーが使用できます。この方法でインストールした Python ライブラリは、プライマリノードで実行されるプロセスでのみ使用できます。ライブラリはコアノードまたはタスクノードにはインストールされず、それらのノードで実行されているエグゼキュターでは使用できません。
注記
Amazon EMRバージョン 5.30.1、5.31.0、および 6.1.0 では、クラスターのプライマリノードにカーネルとライブラリをインストールするには、追加の手順を実行する必要があります。
この機能を有効にするには、以下の操作を行います。
-
EMR Notebooks のサービスロールにアタッチされたアクセス許可ポリシーで、次のアクションが許可されていることを確認します。
elasticmapreduce:ListSteps
詳細については、EMR「ノートブックのサービスロール」を参照してください。
-
AWS CLI を使用して、次の例に示すようにEMRノートブックを設定するステップをクラスターで実行します。ステップ名
EMRNotebooksSetup
を使用する必要があります。置換us-east-1
クラスターが存在するリージョン。詳細については、「AWS CLIを使用したクラスターへのステップの追加」を参照してください。aws emr add-steps --cluster-id
MyClusterID
--steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://us-east-1
.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]
カーネルとライブラリをインストールするには、プライマリノードの /emr/notebook-env/bin
ディレクトリで pip
または conda
を使用します。
例 — Python ライブラリのインストール
Python3 カーネルから、ノートブックセル内から %pip
マジックをコマンドとして実行し、Python ライブラリをインストールします。
%pip install pmdarima
更新されたパッケージを使用するには、カーネルの再起動が必要になる場合があります。%%sh
pip
を呼び出すこともできます。
%%sh /emr/notebook-env/bin/pip install -U matplotlib /emr/notebook-env/bin/pip install -U pmdarima
PySpark カーネルを使用する場合、 pip
コマンドを使用してクラスターにライブラリをインストールするか、ノートブック内から PySpark ノートブックスコープライブラリを使用できます。
ターミナルからクラスターでpip
コマンドを実行するには、次のコマンドに示すようにSSH、まず を使用してプライマリノードに接続します。
sudo pip3 install -U matplotlib sudo pip3 install -U pmdarima
ノートブックスコープのライブラリを使用することもできます。ノートブックスコープのライブラリでは、ライブラリのインストールはセッションの範囲に限定され、すべての Spark エグゼキューターで行われます。詳細については、「ノートブックスコープのライブラリの使用」を参照してください。
PySpark カーネル内に複数の Python ライブラリをパッケージ化する場合は、分離された Python 仮想環境を作成することもできます。例については、「 の使用」を参照してください。Virtualenv
セッションに Python 仮想環境を作成するには、以下の例に示すように、ノートブックの最初のセルにある %%configure
マジックコマンドの Spark spark.yarn.dist.archives
プロパティを使用します。
%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://
amzn-s3-demo-bucket
/prefix
/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }
Spark エグゼキューター環境も同様に作成できます。
%%configure -f { "conf": { "spark.yarn.appMasterEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON":"./environment/bin/python", "spark.executorEnv.PYSPARK_PYTHON":"./environment/bin/python", "spark.yarn.dist.archives":"s3://
amzn-s3-demo-bucket
/prefix
/my_pyspark_venv.tar.gz#environment", "spark.submit.deployMode":"cluster" } }
conda
を使用して Python ライブラリをインストールすることもできます。conda
を使用するのに sudo アクセスは必要ありません。を使用してプライマリノードに接続しSSH、ターミナルconda
から実行する必要があります。詳細については、「を使用して Amazon EMRクラスターのプライマリノードに接続する SSH」を参照してください。
例 - カーネルをインストールする
以下の例は、クラスターのプライマリノードに接続されている間にターミナルコマンドを使用して Kotlin カーネルをインストールする方法を示しています。
sudo /emr/notebook-env/bin/conda install kotlin-jupyter-kernel -c jetbrains
注記
これらの手順では、カーネルの依存関係はインストールされません。カーネルにサードパーティーの依存関係がある場合、ノートブックでカーネルを使用するためには、その前に、追加のセットアップ手順を実行する必要があります。
ノートブックスコープのライブラリの考慮事項および制限
ノートブックスコープのライブラリを使用する場合は、以下の点を考慮してください。
-
ノートブックスコープライブラリは、Amazon EMRリリース 5.26.0 以降で作成したクラスターで使用できます。
-
ノートブック範囲のライブラリは、カーネルでのみ PySpark使用されるように設計されています。
-
すべてのユーザーがノートブックのセルから追加のノートブックスコープのライブラリをインストールできます。ノートブックのユーザーは、それらのライブラリを 1 回のノートブックセッションでのみ使用できます。他のユーザーが同じライブラリを必要とする場合や同じユーザーが別のセッションで同じライブラリを必要とする場合は、ライブラリを再インストールする必要があります。
-
でインストールされたライブラリのみをアンインストールできます
install_pypi_package
API。クラスターにプリインストールされたライブラリをアンインストールすることはできません。 -
異なるバージョンの同じライブラリがノートブックスコープのライブラリとしてクラスターにインストールされている場合、ノートブックスコープのライブラリのバージョンはクラスター全体のライブラリのバージョンを上書きします。
ノートブックスコープのライブラリの操作
ライブラリをインストールするには、Amazon EMRクラスターがライブラリがある PyPI リポジトリにアクセスできる必要があります。
次の例は、 PySpark カーネルと を使用してノートブックセル内からライブラリを一覧表示、インストール、アンインストールするためのシンプルなコマンドを示していますAPIs。その他の例については、 AWS ビッグデータブログのEMRノートブックの投稿で実行中のクラスターに Python ライブラリをインストールする
例 - 現在のライブラリの一覧表示
以下のコマンドは、現在の Spark ノートブックセッションで使用できる Python パッケージを一覧表示します。これにより、クラスターにインストールされたライブラリと、ノートブックスコープのライブラリが一覧表示されます。
sc.list_packages()
例 - Celery ライブラリのインストール
以下のコマンドは、Celery
sc.install_pypi_package("celery")
このライブラリのインストール後、以下のコマンドは、そのライブラリが Spark のドライバーと実行プログラムで使用できることを確認します。
import celery sc.range(1,10000,1,100).map(lambda x: celery.__version__).collect()
例 - Arrow ライブラリのインストール、バージョンとリポジトリの指定
次のコマンドは、ライブラリバージョン とリポジトリ を指定して、Arrow
sc.install_pypi_package("arrow==0.14.0", "https://pypi.org/simple")
例 - ライブラリのアンインストール
以下のコマンドは、Arrow ライブラリをアンインストールし、現在のセッションからノートブックスコープのライブラリとして削除します。
sc.uninstall_package("arrow")