storm监控

数据采集
Worker JVM信息通过Jmx的方式获取:GC、线程、老年代内存等
storm.yaml添加JMX的配置如下:

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 进程使用资源通过脚本获取:cpu、fd、日志等
%ID%取的时每个work的进程号,因为一个节点上可以有多个work,所以防止端口号重复导致启动失败,所以用动态代替

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 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1%ID%"  

任务相关信息通过NimbusClient来获取,并做二次加工

定时脚本抓取Jstack

触发开关触发Jmap,生成堆文件

关于Zeno Chen

本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
此条目发表在大数据平台分类目录。将固定链接加入收藏夹。