Hadoop jar配置使用JMX进行远程JVM监控

背景:  编写了一个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行的内容)

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和端口号,进行实时的监控:

时间: 2024-11-06 08:20:17

Hadoop jar配置使用JMX进行远程JVM监控的相关文章

visualvm监控jvm及远程jvm监控方法(转)

VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump.Thread Dump.内存对象实例情况.GC执行情况.CPU消耗以及类的装载情况. Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况.    下载页面 : https://visualvm.dev.jav

添加 Centos 远程JVM监控

某日 - 测试组 MM 要进行服务压测,询问本猿如何查看线上服务的jvm内存,cpu消耗情况.果断放下手中代码.为MM 耐心解惑 ~ ~ 1.启动项目的 .sh 方法内,启动配置下 添加配置信息: -Xms2048m -Xmx2048m [可省略] -Dcom.sun.management.jmxremote [开启 jmx,jdk 1.5 前需要手动开启,后面jdk版本可省略] -Dcom.sun.management.jmxremote.ssl=false [不开启 ssl 通道] -Dco

visualvm监控jvm及远程jvm监控方法

VisualVM是Sun的一个OpenJDK项目,其目的在于为Java应用创建一个整套的问题解决工具.它集成了多个JDK命令工具的一个可视化工具,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump.Thread Dump.内存对象实例情况.GC执行情况.CPU消耗以及类的装载情况. Java开发人员可以使用 VisualVM创建必要信息的日志,系统管理人员可用来监控及控制Java应用程序在网络中的运行状况.    下载页面 : https://visualvm.dev.jav

使用Java visualVM监控远程JVM

1 监控远程tomcat 对于被监控的tomcat,需要修改tomcat的bin目录下的Catalina.sh配置文件,增加如下配置. JAVA_ OPTS="$JAVA_ OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9004 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=f

在resin配置参数实现JConsole远程监控JVM

在Resin配置参数实现JConsole远程监控JVM 在Resin中配置中配置下列参数,就可以是实现了! <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.port=9999</jvm-arg> <jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg

Hadoop的配置过程(虚拟机中的伪分布模式)

1引言 hadoop如今已经成为大数据处理中不可缺少的关键技术,在如今大数据爆炸的时代,hadoop给我们处理海量数据提供了强有力的技术支撑.因此,了解hadoop的原理与应用方法是必要的技术知识. hadoop的基础原理可参考如下的三篇论文: The Google File System, 2003 MapReduce: Simplified Data Processing on Large Clusters, 2004 Bigtable: A Distributed Storage Syst

使用Java VisualVM监控远程JVM cpu jps

我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可以知道,不光可以监控本地JVM运行情况, 还可以监控远程机器上的JVM运行情况.本地监控:只要打开某个JAVA程序就会自动的

ubuntu14.04环境下hadoop2.7.0配置+在windows下远程eclipse和hdfs的调用

本教程是在三台电脑上部署的hadoop正式环境,没有建立用户组,而是在当前用户下直接进行集群的部署的,总结如下: 1.三个节点的主机电脑名为:192.168.11.33 Master,192.168.11.24 Slaver2,192.168.11.4 Slaver1,并且这三台主机用户名都要设置一样,我的都是hadoop的用户. 因为本教程使用的是vim编辑器,如果没有vim可以下载一个:sudo apt-get install vim 2.修改hosts文件:切换到root用户下:sudo 

&lt;JAVA&gt;Hadoop安装配置(单机)

参考文献: http://blog.csdn.net/inkfish/article/details/5168676 http://493663402-qq-com.iteye.com/blog/1515275 http://www.cnblogs.com/syveen/archive/2013/05/08/3068044.html http://www.cnblogs.com/kinglau/p/3794433.html 环境 :Vmware11下Ubuntu14.04 LTS, Hadoop