我是否充分利用了我的EMR集群?

时间:2017-01-22 01:08:57

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

  • 总实例:我创建了一个总共有11个节点的EMR(1个主实例,10个核心实例)。
  • 职位提交: spark-submit myApplication.py

enter image description here

  • 容器图表:接下来,我已经获得了这些图表,这些图表引用了"容器"而且我并不完全是EMR背景下的容器,所以它告诉我的并不明显:

enter image description here

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

  • 执行人员接下来,我已经获得了执行程序选项卡,表明我已经看到了3个活动和1个死执行程序: enter image description here

因此,从表面上看,我觉得我没有使用我的所有节点或可用内存。

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

1 个答案:

答案 0 :(得分:2)

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

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

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