如何通过Java VisualVM监控spark shell进程?

如何通过Java VisualVM监控spark shell进程?,java,apache-spark,Java,Apache Spark,今天我读了一本书,书中说我可以通过修改$spark_HOME/bin/spark类并添加以下内容,通过Java VisualVM监控spark shell进程: JAVA_OPTS="-XX:MaxPermSize=128m $OUR_JAVA_OPTS -Dcom.sun.management.jmxremote.port=8300 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxrem

今天我读了一本书,书中说我可以通过修改$spark_HOME/bin/spark类并添加以下内容,通过Java VisualVM监控spark shell进程:

JAVA_OPTS="-XX:MaxPermSize=128m $OUR_JAVA_OPTS 
-Dcom.sun.management.jmxremote.port=8300  
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Djava.rmi.server.hostname=127.0.0.1"
然后启动$SPARK_HOME/bin/SPARK shell,并在Linux中执行以下顺序

netstat -tunlp

不幸的是,没有程序在8300端口监听,有人能告诉我这种现象的原因吗?提前谢谢

使用visualvm最简单的方法是在同一台机器上以同一用户的身份运行。但是这台机器在我的虚拟机中,并且没有图形界面,我必须在我的windows计算机中进行连接。在这种情况下,最有可能的问题是使主机能够看到虚拟机中的端口-通常最容易的方法是使用桥接网络。。但是,我鼓励您了解如何启用从虚拟机到WIndows主机的X11转发。对于普通ssh,这是“ssh-Y”。您还需要一个适用于Windows的X11仿真器。我认为问题的关键是端口未启用,设置是否有问题?我错过了什么吗?很难说,因为你没有提供足够的环境信息。您可以远程登录到虚拟机内的端口吗?