如何从群集获取内存使用率和Cpu使用率

时间:2019-09-27 12:30:40

标签: apache-spark amazon-emr ganglia

我们正在使用AWS EMR运行Spark作业。从神经节来看,与分配的内存相比,群集的内存利用率较低。 CPU利用率也是如此。

我们目前正在通过实施Spark侦听器来报告Spark指标。但是我找不到如何从Spark代码中获取神经节指标的方法。在火花事件中的任何地方也可以使用此信息吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用sparklens(https://github.com/qubole/sparklens)来首先找到适合您的spark应用程序的执行程序计数,然后相应地配置集群。群集利用率还取决于应用程序的可伸缩性特征。

要获取Spark JMX指标

1)在spark / conf /

中创建metrics.properties文件
  

*。sink.jmx.class = org.apache.spark.metrics.sink.JmxSink driver.source.jvm.class = org.apache.spark.metrics.source.JvmSource   executor.source.jvm.class = org.apache.spark.metrics.source.JvmSource   master.source.jvm.class = org.apache.spark.metrics.source.JvmSource   worker.source.jvm.class = org.apache.spark.metrics.source.JvmSource

2)将jolokai代理jar下载到集群中的某个位置。其他JMX代理也应该工作。

3)更新以下Spark替代:

  

spark.metrics.conf spark / conf / metrics.properties   spark.driver.extraJavaOptions -Djava.net.preferIPv4Stack = true   -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 8090 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -javaagent:/ tmp / jolokia-jvm.jar = port = 8779,host = localhost spark.executor.extraJavaOptions -Djava.net.preferIPv4Stack = true   -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port = 8091 -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote.ssl = false -javaagent:/ tmp / jolokia-jvm.jar = port = 8781,host = localhost“

4)使用电报或其他监视工具从代理获取指标。