可以通过在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=
-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=
-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=
-XX:+CMSParallelRemarkEnabled
-XX:+DisableExplicitGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:CMSInitiatingOccupancyFraction=
-XX:SoftRefLRUPolicyMSPerMB=
-XX:+CMSConcurrentMTEnabled
-Djava.net.preferIPv4Stack=true
-Xloggc:/home/master/platform/apache-storm-0.9./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=%ID%"
下图为实际项目的配置文件截图: