我正在使用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页的用户指南,但更多的是如何使用群集而不是维护。
答案 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中有所不同,其中upstart用于停止/启动应用程序,而service-nanny不再带回应用程序。