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 并未利用所有集群节点的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Amazon EMR 集群上远程提交 hadoop MR 作业
利用docker搭建spark hadoop workbench