2015-01-23 3 views
1

Я использую Amazon EMR (версия Hadoop2/AMI: 3.3.1), и я хотел бы изменить конфигурацию по умолчанию (например, коэффициент репликации). Чтобы изменения вступили в силу, мне нужно перезапустить кластер, и вот где мои проблемы начинаются.Перезапуск Amazon EMR cluster

Как это сделать? Сценарий, который я нашел в ./.versions/2.4.0/sbin/stop-dfs.sh, не работает. Файл slaves ./.versions/2.4.0/etc/hadoop/slaves пуст в любом случае. Есть некоторые скрипты в init.d: ​​

$ ls -l /etc/init.d/hadoop-* -rwxr-xr-x 1 root root 477 Nov 8 02:19 /etc/init.d/hadoop-datanode -rwxr-xr-x 1 root root 788 Nov 8 02:19 /etc/init.d/hadoop-httpfs -rwxr-xr-x 1 root root 481 Nov 8 02:19 /etc/init.d/hadoop-jobtracker -rwxr-xr-x 1 root root 477 Nov 8 02:19 /etc/init.d/hadoop-namenode -rwxr-xr-x 1 root root 1632 Oct 27 21:12 /etc/init.d/hadoop-state-pusher-control -rwxr-xr-x 1 root root 484 Nov 8 02:19 /etc/init.d/hadoop-tasktracker

, но если я, например, остановить NameNode что-то начнет его снова немедленно. Я искал документацию, и Amazon предоставляет руководство пользователя на 600 страниц, но это больше, как использовать кластер, а не столько о техническом обслуживании.

+0

Вы узнали, как это сделать? – Gevorg

+0

То, что я основал, было то, что я не должен этого делать. Если вы хотите изменить настройки кластера, вы должны сделать это, хотя «шаги» в процессе создания. –

ответ

0

В EMR 3.x.x он использовал традиционные скрипты SysVInit для управления службами. ls /etc/init.d/ может рассказать вам список таких услуг. Вы можете перезапустить службу, как это так,

sudo service hadoop-namenode restart 

Но если я, например, остановить NameNode что-то начнет его снова немедленно.

Однако в EMR также есть процесс под названием service-nanny, который контролирует службы, связанные с hadoop, и гарантирует, что все они всегда работают. Это тайный процесс, который возвращает его.

Итак, для действительно перезапуска службы вам необходимо временно остановить сервис-няню, а затем перезапустить/остановить необходимые процессы. Как только вы вернете сервисную няню, она снова выполнит свою работу. Таким образом, вы можете запускать команды, как -

sudo service service-nanny stop 
sudo service hadoop-namenode restart 
sudo service service-nanny start 

Обратите внимание, что такое поведение не отличается в 4.x.x и 5.x.x AMI, где выскочка используется для остановки/запуска приложений и сервис-няни больше не возвращает приложения.

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