【问题标题】:How to get memory usage and Cpu utilization from cluster如何从集群中获取内存使用情况和 Cpu 使用情况
【发布时间】:2019-09-27 12:30:40
【问题描述】:

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

我们目前通过实现 Spark 侦听器来报告 Spark 指标。但我找不到如何从 spark 代码中获取神经节指标。这些信息在 spark 事件中的任何地方都可用吗?

【问题讨论】:

  • 为什么你没有看到 spark 历史服务器?

标签: apache-spark amazon-emr ganglia


【解决方案1】:

您可以尝试 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) 使用电报或其他监控工具从代理获取指标。

【讨论】:

    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2015-03-28
    相关资源
    最近更新 更多