2016-11-30 13 views
2

私はすべてのスレーブマシンでピップインストールで実行中のEMRクラスタを更新しようとしています。どうやってやるの?EMRスレーブでコマンドを実行しますか?

長時間実行しているEMRであり、使用できないため、ブートストラップステップでは実行できません。

EMRクラスターはSpark & Yarnを実行していますので、通常はsparks slaves.shを使用しますが、マスターノードでそのスクリプトを見つけることができません。私は見つけられていない場所にインストールされていますか?または、それをインストールする方法はありますか?

私は、糸分散シェルを使用すると言う他の質問を見ましたが、それを行う方法の実例は見つかりません。

ところで、クラスタはEMR 4.8.0、Spark 1.6.1を使用しています。

+0

あなたの目標を達成するために/安全な塩のようなツールを試してください。または、このlinuxスクリプトを試してみてください - https://hvivani.com.ar/2015/06/19/yarn-execute-a-script-on-all-the-nodes-of-the-cluster/ – annunarcist

答えて

3

ノードからyarnコマンドを実行してすべてのノードのリストを取得し、SSHを使用してそれらのノードすべてでコマンドを実行することができます。前述の記事のように、あなたは何かを実行することができます

#Copy ssh key(like ssh_key.pem) of the cluster to master node. 
aws s3 cp s3://bucket/ssh_key.pem ~/ 

# change permissions to read 
chmod 400 ssh_key.pem 

# Run a PIP command 
yarn node -list|sed -n "s/^\(ip[^:]*\):.*/\1/p" | xargs -t -I{} -P10 ssh -o StrictHostKeyChecking=no -i ~/ssh_key.pem [email protected]{} "pip install package" 
関連する問題