Hadoop jar配置使用JMX进行远程JVM监控
2016-05-26 09:38
513 查看
背景: 编写了一个MapReduce程序,发现该程序内存占用非常多,需要有一种方法来分析内存详细的占用情况。
可以使用linux上的pmap –d <PID>来看进程逻辑地址空间使用情况,但是会有很多anno区域,显然这不能够满足同学们的好奇心。
在这篇文章Eclipse远程调试HDP源代码中,提到使用JMX的方法对HDP进行远程调试。JMX(Java Management Extensions,即Java管理扩展),望文生义一下,可知这个机制是与管理相关的。在这个机制的基础上,可以对JVM的运行情况进行实时的分析。方法如下:
1. 修改vim /usr/hdp/2.3.0.0-2557/hadoop/etc/hadoop/hadoop-env.sh的配置,添加与JMX相关的参数:
文字版本(添加45行的内容)
这个会在执行hadoop jar的机器上,开启一个端口,这个端口号由-Dcom.sun.management.jmxremote.port=1499这个参数决定。
2.启动一个mapreduce程序,bash-4.1$ hadoop jar /home/yanliming/workspace/mosaicTest/videoMapreduce/videoMapreduce-1.0-SNAPSHOT.jar /tmp/yanliming/Wildlife.wmv /tmp/ryj/result/output012
在启动mapreduce的集群上,可以看到刚才配置的端口已经起来:
3. 下载visualVM 地址:http://visualvm.java.net/download.html
在visualVM中,配置远程机器的IP和端口号,进行实时的监控:
可以使用linux上的pmap –d <PID>来看进程逻辑地址空间使用情况,但是会有很多anno区域,显然这不能够满足同学们的好奇心。
在这篇文章Eclipse远程调试HDP源代码中,提到使用JMX的方法对HDP进行远程调试。JMX(Java Management Extensions,即Java管理扩展),望文生义一下,可知这个机制是与管理相关的。在这个机制的基础上,可以对JVM的运行情况进行实时的分析。方法如下:
1. 修改vim /usr/hdp/2.3.0.0-2557/hadoop/etc/hadoop/hadoop-env.sh的配置,添加与JMX相关的参数:
文字版本(添加45行的内容)
42 43 # The following applies to multiple commands (fs, dfs, fsck, distcp etc) 44 export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS" 45 export HADOOP_CLIENT_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremo te.local.only=false -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.port=1499 $HADOOP_CLIENT_OPTS "
这个会在执行hadoop jar的机器上,开启一个端口,这个端口号由-Dcom.sun.management.jmxremote.port=1499这个参数决定。
2.启动一个mapreduce程序,bash-4.1$ hadoop jar /home/yanliming/workspace/mosaicTest/videoMapreduce/videoMapreduce-1.0-SNAPSHOT.jar /tmp/yanliming/Wildlife.wmv /tmp/ryj/result/output012
在启动mapreduce的集群上,可以看到刚才配置的端口已经起来:
3. 下载visualVM 地址:http://visualvm.java.net/download.html
在visualVM中,配置远程机器的IP和端口号,进行实时的监控:
相关文章推荐
- Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
- PYTHON的程序在LINUX后台运行(转)
- 清理Win10DNS缓存 解决上不了网、网站打不开的问题
- echsop下载安装
- nginx413错误
- CentOS Linux 6.8 正式发布
- 关于浏览器无法访问某些网站的问题
- shell 生成随机数
- 查看Linux文件锁
- 使用putty可以访问centos的中文内容
- CentOS of MySQL command
- linux配置网络详细解析,上外网
- centos升级glibc过程
- linux-memory-buffer-vs-cache
- linux删除过期文件
- Linux 技巧:重定向 stderr 和 stdout 输出到 gdb 窗口
- Linux 的僵尸(zombie)进程
- 软件许可证——GPL、AGPL、LGPL、Apache、ZLIB/LIBPNG、MIT
- Centos自动登录系统并自动打开VNC Server
- win10系统调用架构分析