Amazon EMR クラスターを実行中であるすべてのノードにサードパーティのライブラリをインストールするには、どうすればよいですか?

AWS Systems Manager を使用してセカンダリノードに接続してから、bash スクリプトを実行してサードパーティのライブラリをダウンロードします。

注意: ブートストラップアクションを使用して、実行中のクラスターを変更することはできません。手順はマスターノードでのみ実行されるため、どの手順も必須です。各ノードに手動でログインしてそのノードを変更することはできますが、クラスター内に多数のノードがある場合はこのアクションは面倒です。

Systems Manager のインスタンスプロファイルを作成する

1.   IAM コンソールを開きます。

2.    ナビゲーションペインで [Roles] を選択し、次にEMR クラスターの EC2 インスタンスに関連付けられているロールを選択します。デフォルトでは、このロールは EMR_EC2_DefaultRole という名前です。

3.    [Permissions ] タブで、[Attach policy] を選択します。

4.    [Attach policy] ページで、AmazonEC2RoleforSSM の横にあるチェックボックスを選択してから、[Attach policy] を選択します。

マスターノードにライブラリをインストールする

1.    SSH を使用してマスターノードに接続します。

2.    Amazon Simple Storage Service (Amazon S3) に保存された bash スクリプトを使用して、マスターノードにライブラリをインストールします。次の例のスクリプトは、easy_install-3.4 を使用して pip をインストールします。次に、スクリプトは pip を使用して、Python 3 カーネル用のparamikonltkscipyscikit-learnpandas をインストールします。

#!/bin/bash

sudo easy_install-3.4 pip
sudo /usr/local/bin/pip3 install paramiko nltk scipy scikit-learn pandas

コアノードとタスクノードにライブラリをインストールする

1.    コアノードとタスクノードにライブラリをインストールする Python スクリプトを作成します。スクリプトの例については、ライブラリの使用と追加のライブラリのインストール実行中のクラスターのコアノードへのライブラリのインストールの例を参照してください。

2.    スクリプトをローカルコンピューターまたは Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに保存します。

3.    次のようなコマンドを実行して、スクリプトを実行します。このスクリプトは、2 つの引数を取ります。クラスタ ID と、以前に作成した bash スクリプトの S3 での場所です。

python sample.py j-1K48XXXXXXHCB s3://mybucket/script-ssm.sh

注意: スクリプトを実行する IAM ユーザーまたはロールには、Systems Manager に対する適切な権限が必要です。詳細については、Systems Manager に対するユーザーアクセスを設定するを参照してください。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2019 年 1 月 30 日