EMR Hadoop 并未利用所有集群节点

Posted

技术标签:

【中文标题】EMR Hadoop 并未利用所有集群节点【英文标题】:EMR Hadoop does not utilize all cluster nodes 【发布时间】:2017-12-20 17:01:38 【问题描述】:

我们正在试验 Hadoop 和 Common Crawl 的处理。

我们的问题是,如果我们创建一个包含 1 个Master 节点和 1 个Core 和 2 个Task 节点的集群,那么每个组中只有一个节点会获得较高的 CPU/网络使用率。 我们也尝试了使用 2 个Core 而没有使用Task 节点,但在这种情况下也只使用了一个Core 节点。

以下是节点/集群监控的一些屏幕截图。该作业一直在运行(在前两个并行映射阶段),并且应该已经使用了大部分可用的 CPU 能力,正如您在工作 Task 节点的屏幕截图中所见。 但是为什么空闲的Task节点没有被利用呢?

我们的 hadoop 作业以Jar 步骤运行,对地图作业没有限制。它由多个链接的 map/reduce 步骤组成。最后一个 reduce 作业仅限于一个 Reducer。

截图: https://drive.google.com/drive/folders/1xwABYJMJAC_B0OuVpTQ9LNSj12TtbxI1?usp=sharing

ClusterId:j-3KAPYQ6UG9LU6

StepId:s-2LY748QDLFLM9

在另一次运行时,我们在空闲节点的系统日志中发现以下内容,可能是 EMR 问题?

ERROR main: Failed to fetch extraInstanceData from https://aws157-instance-data-1-prod-us-east-1.s3.amazonaws.com/j-2S62KOVL68GVK/ig-3QUKQSH7YJIAU.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X

问候 卢卡斯

【问题讨论】:

所有节点都是数据节点吗?他们是否安装了节点管理器 (YARN)? 向驱动器添加了软件设置屏幕截图。使用 EMR 5.10。我觉得 YARN 是默认安装的? 你有Ambari吗?,添加新数据节点时不默认。您必须手动安装 nodemanger 服务。手动是指通常通过 Ambari 安装。 @Petro EMR 通常没有 Ambari。 AWS 有自己的管理控制台 如果你限制了一台reducer,那么它只使用一台服务器 【参考方案1】:

迟到了,但您是否尝试过将这些属性设置为 spark 提交命令的一部分。

--conf 'spark.dynamicAllocation.enabled=true' 
--conf 'spark.dynamicAllocation.minExecutors=<MIN_NO_OF_CORE_OR_TASK_NODES_YOU_WANT>'

【讨论】:

以上是关于EMR Hadoop 并未利用所有集群节点的主要内容,如果未能解决你的问题,请参考以下文章

EMR 集群中的“LOST”节点

如何在 Amazon EMR 集群上远程提交 hadoop MR 作业

利用docker搭建spark hadoop workbench

Amazon EMR 未使用所有节点

AWS EMR 文件已存在:Hadoop 作业读取和写入 S3

怎样利用Spark Streaming和Hadoop实现近实时的会话连接