2016-11-30 12 views
2

Я пытаюсь обновить действующий кластер EMR с установкой pip на всех подчиненных машинах. Как я могу это сделать?Выполнить команду на EMR Slaves?

Я не могу сделать это с помощью этапа начальной загрузки, потому что это длинный EMR, и я не могу его снять.

EMR-кластер работает Spark & Пряжа, поэтому я бы обычно использовал искру slaves.sh, но я не могу найти этот скрипт на главном узле. Установлен ли он в месте, которое я не нашел? Или есть способ установить его?

Я видел другие вопросы, которые говорят, что используется пряжа распределенной оболочки, но я не могу найти рабочий пример того, как это сделать.

BTW, кластер использует 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

Вы можете запустить команду пряжи из своих узлов, чтобы получить список всех узлов, и вы можете использовать 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" 

 Смежные вопросы

  • Нет связанных вопросов^_^