【问题标题】:Enable remote JMX monitoring for Spark running on DataStax Enterprise为在 DataStax Enterprise 上运行的 Spark 启用远程 JMX 监控
【发布时间】:2016-05-03 02:16:40
【问题描述】:
在 AWS EC2 上安装标准 AMI DSE 需要执行哪些步骤以启用远程 JMX 监控?
我执行了以下步骤,但无法使用 VisualVM 进行连接:
- 创建 /etc/dse/spark/conf/metrics.properties
- 复制粘贴https://github.com/apache/spark/blob/branch-1.4/conf/metrics.properties.template的内容
- 取消注释这些行:
- org.apache.spark.metrics.sink.JmxSink
- *.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink
- master.source.jvm.class=org.apache.spark.metrics.source.JvmSource
- worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource
- driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource
- executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource
- 通过 OpsCenter 重新启动 DSE 集群
【问题讨论】:
标签:
apache-spark
jmx
datastax
datastax-enterprise
opscenter
【解决方案1】:
默认情况下,远程 jmx 监控在 DSE 4.8.0 及更高版本中是关闭的。假设 ami 运行的是最新版本的 DSE。然后 spark 将在 DSE 节点上运行。文档是 here,但这里有一个摘要:
-
编辑 cassandra-env.sh 并设置以下内容:
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
LOCAL_JMX=no`
-
将 jmxremote.password.template 从您的 jre/jdk 安装位置复制到 /etc/cassandra 并将其重命名为 jmxremote.password
chown cassandra:cassandra /etc/cassandra/jmxremote.password
chmod 400 /etc/cassandra/jmxremote.password`
-
编辑 jmxremote.password 以及用户和密码。
monitorRole QED
controlRole R&D
cassandra cass_password`
-
对不起这个,但你必须将具有读写权限的用户添加到:
/usr/lib/jvm/java-8-oracle/jre/lib/management/jmxremote.access
我在 Ubuntu 上安装了 Oracle Java 8。请更改路径以匹配您的 java 安装。
monitorRole readonly
cassandra readwrite
controlRole readwrite \
create javax.management.monitor.,javax.management.timer. \
unregister
重新启动 cassandra 并使用 cassandra 用户名和密码附加您的 jmx 工具。