可以通过在storm.yaml中增加如下样例的配置,
启动JMX来监控storm的各个角色。
其中对于Worker的监控,因为一个节点上可以有多个work,为了防止端口号重复导致启动失败,所以用动态代替。
%ID%为每个work的占用端口号,例如worker端口为6704,则监视端口为16704。
nimbus.childopts: "-Xmx1024m -Djava.rmi.server.hostname=192.168.1.1 -Dcom.sun.management.jmxremote.port=9801 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" supervisor.childopts: "-Xmx2048m -Djava.rmi.server.hostname=192.168.1.1 -Dcom.sun.management.jmxremote.port=9802 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" worker.childopts: "-Xmx2048m -Xms2048m -Xmn500m -XX:PermSize=256M -XX:MaxPermSize=256M -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSParallelRemarkEnabled -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSConcurrentMTEnabled -Djava.net.preferIPv4Stack=true -Xloggc:/home/master/platform/apache-storm-0.9.4/logs/gc_%ID%.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1%ID%"
下图为实际项目的配置文件截图: