hadoop - 重启 Amazon EMR 集群

标签 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 的东西会立即再次启动它。我查找了文档,Amazon 提供了 600 页的用户指南,但更多的是如何使用集群而不是维护。

最佳答案

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

sudo service hadoop-namenode restart

But if I for example stop the namenode something will start it again immediately.

不过,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 不再带回应用程序。

关于hadoop - 重启 Amazon EMR 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28108508/

相关文章:

sql - 从分组查询中删除连接操作

amazon-web-services - 将 AWS IoT 设备开发工具包与 Espruino 和 ESP8266 结合使用

python - MapReduce,调整Mapper方法

java - apache drill如何查询HBase?

scala - 如何在 Spark 中拆分?

hadoop - 同时使用HBase做小数据集和大数据分析?

sql - 从Apache HIVE或SQL中的两个表获取计数

amazon-web-services - AWS CloudFormation 用于更新(重新运行?)下游嵌套堆栈

django - 将数据库与弹性 beanstalk 一起使用

python - 为什么 DatastoreInputReader 过滤器参数仅支持相等运算符?