Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Hadoop >> mail # user >> How to Monitor Child Processes Via JConsole?


Copy link to this message
-
How to Monitor Child Processes Via JConsole?
Hi,

I was trying to use Jconsole to monitor MR child processes (i.e. mappers
and reducers), but nothing I tried worked.

According to this link
http://hadoop.apache.org/common/docs/r0.20.2/mapred_tutorial.html#Task+Execution+%26+Environment
I added below lines to my mapred configuration file.

<property>
  <name>mapred.child.java.opts</name>
  <value>
     -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
  </value>
</property>

The problem is, since the configuration does not specify a port number, how
am I supposed to know which port
is opened waiting for JConsole to connect to?

So I searched a little bit more and found this article
http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html#remote
Following this article, I modified the property to be

<property>
  <name>mapred.child.java.opts</name>
  <value>
     *-Dcom.sun.management.jmxremote.port=8765*
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
  </value>
</property>

where 8765 is the port I would like to use for jmxrmi.
Here comes another problem: since more than one child will be spawned, how
could one monitor-port be shared by several processes?
As you could imagine, this solution didn't work for me either.

I am stuck here. I wonder has anybody tried this before? Any
suggestions/comments welcome!

Xun