重新启动Amazon EMR集群

时间:2015-01-23 11:05:14

标签: hadoop amazon-web-services mapreduce emr hadoop2

我正在使用Amazon EMR(Hadoop2 / AMI版本:3.3.1),我想更改默认配置(例如复制因子)。为了使更改生效,我需要重新启动集群,这就是我的问题开始的地方。

怎么做?我在./.versions/2.4.0/sbin/stop-dfs.sh找到的脚本不起作用。无论如何,从属文件./.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会立即再次启动它。我查找了文档,亚马逊提供了600页的用户指南,但更多的是如何使用群集而不是维护。

1 个答案:

答案 0 :(得分:1)

EMR 3.x.x上,它使用传统的SysVInit脚本来管理服务。 ls /etc/init.d/可以告诉您此类服务的列表。您可以重新启动这样的服务,

sudo service hadoop-namenode restart
  

但是,例如,如果我停止namenode,将会再次启动它   立即

但是,EMR还有一个名为service-nanny的进程,它监视与hadoop相关的服务并确保所有em'始终在运行。这是将它带回来的神秘过程。

因此,要真正重新启动服务,您需要暂停service-nanny一段时间,然后重新启动/停止必要的进程。一旦你带回服务保姆,它将再次完成它的工作。因此,您可以运行类似 -

的命令
sudo service service-nanny stop
sudo service hadoop-namenode restart
sudo service service-nanny start

请注意,此行为在4.x.x和5.x.x AMI中有所不同,其中up​​start用于停止/启动应用程序,而service-nanny不再带回应用程序。