【问题标题】:Am I fully utilizing my EMR cluster?我是否充分利用了我的 EMR 集群?
【发布时间】:2017-06-06 18:43:14
【问题描述】:
  • 实例总数:我创建了一个总共有 11 个节点的 EMR(1 个主实例,10 个核心实例)。
  • 作业提交: spark-submit myApplication.py

  • 容器图表:接下来,我有这些图表,它们指的是“容器”,我并不完全了解 EMR 上下文中的容器,所以这并不明显。我:

  • 实际运行的执行程序:然后我在我的 spark 历史 UI 中得到了这个,这表明我只创建了 4 个执行程序。
  • 动态分配:然后我得到了spark.dynamicAllocation.enabled=True,我可以在我的环境详细信息中看到它。
  • 执行程序内存:另外,默认执行程序内存为5120M

  • Executors:接下来,我有我的 executors 选项卡,显示我有看起来像 3 个活动和 1 个死的 executor:

因此,从表面上看,在我看来,我并没有使用所有节点或可用内存。

  1. 我如何知道我是否使用了所有可用的资源?
  2. 如果我没有充分发挥所有可用资源的潜力,我该如何改变我正在做的事情,以便让可用资源充分发挥其潜力?

【问题讨论】:

  • 正确调整集群规模是在向用户提供服务和服务成本之间进行权衡。为什么要像以前那样配置它(10 个节点,选择的实例类型)?您的用户是否有时会抱怨它太慢?如果您要缩小计数类型或计数,您的用户会受到负面影响吗?您是否尝试过 Spark 的标准监控工具 (Accessing the Spark Web UIs)?
  • 是的,executors 表截图来自 EMR 上的 Spark Web UI,其他截图来自 EMR 监控窗格。此外,这个问题纯粹是关于集群内节点的利用率。在过去的一个小时里,我一直在研究启用maximizeResourceAllocation 的含义,并且提供默认值的 4 个设置完全没有被我触及,所以我的问题的答案是“否”。此外,现在似乎很清楚,如果我不手动设置这些设置并且不启用最大化资源分配,那么我的集群就像一个 2 节点集群一样被使用。

标签: amazon-web-services apache-spark pyspark elastic-map-reduce


【解决方案1】:

查看集群的每个节点正在使用多少资源的另一种方法是使用Ganglia 的网络工具。

这是在主节点上发布的,并将显示每个节点的资源使用情况图表。如果您在创建集群时没有启用 Ganglia 作为 EMR 集群上可用的工具之一,则会出现问题。

启用后,您可以转到网页查看每个节点的使用量。

【讨论】:

    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    相关资源
    最近更新 更多