You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Ivan Ryndin <ir...@gmail.com> on 2012/12/17 10:20:06 UTC

Problems with HBase JMX beans

Hi all,

when starting HBase on a single node have following exceptions in log files:

======================================
javax.management.NotCompliantMBeanException:
org.apache.hadoop.hbase.master.MXBean: Method
org.apache.hadoop.hbase.master.MXBean.getRegionServers has parameter or
return type that cannot be translated into an open type
        at
com.sun.jmx.mbeanserver.Introspector.throwException(Introspector.java:419)
        at
com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:118)
        at
com.sun.jmx.mbeanserver.MBeanAnalyzer.analyzer(MBeanAnalyzer.java:104)
        at
com.sun.jmx.mbeanserver.MXBeanIntrospector.getAnalyzer(MXBeanIntrospector.java:71)
        at
com.sun.jmx.mbeanserver.MBeanIntrospector.getPerInterface(MBeanIntrospector.java:181)
        at
com.sun.jmx.mbeanserver.MBeanSupport.<init>(MBeanSupport.java:136)
        at
com.sun.jmx.mbeanserver.MXBeanSupport.<init>(MXBeanSupport.java:66)
        at
com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:184)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:936)
        at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:330)
        at
com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:516)
        at
org.apache.hadoop.metrics.util.MBeanUtil.registerMBean(MBeanUtil.java:58)
        at
org.apache.hadoop.hbase.master.HMaster.registerMBean(HMaster.java:1829)
        at
org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:562)
        at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:349)
        at
org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.run(HMasterCommandLine.java:220)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.IllegalArgumentException: Method
org.apache.hadoop.hbase.master.MXBean.getRegionServers has parameter or
return type that cannot be translated into an open type
        at
com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:45)
        at
com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:81)
        at
com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:51)
        at
com.sun.jmx.mbeanserver.MBeanAnalyzer.initMaps(MBeanAnalyzer.java:135)
        at
com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:116)
        ... 15 more
Caused by: javax.management.openmbean.OpenDataException: Cannot obtain
array class
        at
com.sun.jmx.mbeanserver.OpenConverter.openDataException(OpenConverter.java:1389)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:346)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:295)
        at
com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:376)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:417)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:312)
        at
com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeCompositeConverter(OpenConverter.java:482)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:309)
        at
com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:377)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:417)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:312)
        at
com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
        at
com.sun.jmx.mbeanserver.ConvertingMethod.<init>(ConvertingMethod.java:197)
        at
com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:40)
        ... 19 more
Caused by: java.lang.ClassNotFoundException: [Lbyte;
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at
com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:344)
        ... 34 more

======================================

Yes, I know about
https://issues.apache.org/jira/browse/HBASE-5718
and about
https://issues.apache.org/jira/browse/HBASE-5971

Also looked at:
http://stackoverflow.com/questions/10020702/jmx-exception-caused-by-java-lang-classnotfoundexception-lbyte

I didn't config JMX beans in hbase-site.xml (should I do this?). The only
config is ( hbase-site.xml):
======================
<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///data/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/data/zookeeper</value>
  </property>
</configuration>
======================

It seems that hbase developers do not consider this JMX issue  as a
noticeable problem. Am I right?

-- 
Best regards,
Ivan P. Ryndin,

Re: Problems with HBase JMX beans

Posted by Ivan Ryndin <ir...@gmail.com>.
Hi Nicolas,

thank you for the answer!
Yep, you are right, this is the problem with OpenJDK.
System is: Centos 64bit, java-1.6.0-openjdk-1.6.0.0.x86_64, HBase
0.94.3, java version "1.6.0_24"

Ok, I agree that the problem is not so critical.
Thank you again!

-- 
Best regards,
Ivan P. Ryndin

2012/12/17 Nicolas Liochon <nk...@gmail.com>

> HBASE-5718 seems to say it's reproducible only on openjdk.
> HBase requires the jdk from Oracle (see
> http://hbase.apache.org/book.html#basic.prerequisites).
> Issues that occur on other jdk are not rejected, but usually receives a
> lower priority. If someone provides a patch, it will be integrated.
>
>
> On Mon, Dec 17, 2012 at 10:20 AM, Ivan Ryndin <ir...@gmail.com> wrote:
>
> > Hi all,
> >
> > when starting HBase on a single node have following exceptions in log
> > files:
> >
> > ======================================
> > javax.management.NotCompliantMBeanException:
> > org.apache.hadoop.hbase.master.MXBean: Method
> > org.apache.hadoop.hbase.master.MXBean.getRegionServers has parameter or
> > return type that cannot be translated into an open type
> >         at
> >
> com.sun.jmx.mbeanserver.Introspector.throwException(Introspector.java:419)
> >         at
> > com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:118)
> >         at
> > com.sun.jmx.mbeanserver.MBeanAnalyzer.analyzer(MBeanAnalyzer.java:104)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.MXBeanIntrospector.getAnalyzer(MXBeanIntrospector.java:71)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.MBeanIntrospector.getPerInterface(MBeanIntrospector.java:181)
> >         at
> > com.sun.jmx.mbeanserver.MBeanSupport.<init>(MBeanSupport.java:136)
> >         at
> > com.sun.jmx.mbeanserver.MXBeanSupport.<init>(MXBeanSupport.java:66)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:184)
> >         at
> >
> >
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:936)
> >         at
> >
> >
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:330)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:516)
> >         at
> > org.apache.hadoop.metrics.util.MBeanUtil.registerMBean(MBeanUtil.java:58)
> >         at
> > org.apache.hadoop.hbase.master.HMaster.registerMBean(HMaster.java:1829)
> >         at
> >
> >
> org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:562)
> >         at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:349)
> >         at
> >
> >
> org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.run(HMasterCommandLine.java:220)
> >         at java.lang.Thread.run(Thread.java:679)
> > Caused by: java.lang.IllegalArgumentException: Method
> > org.apache.hadoop.hbase.master.MXBean.getRegionServers has parameter or
> > return type that cannot be translated into an open type
> >         at
> > com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:45)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:81)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:51)
> >         at
> > com.sun.jmx.mbeanserver.MBeanAnalyzer.initMaps(MBeanAnalyzer.java:135)
> >         at
> > com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:116)
> >         ... 15 more
> > Caused by: javax.management.openmbean.OpenDataException: Cannot obtain
> > array class
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.openDataException(OpenConverter.java:1389)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:346)
> >         at
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:295)
> >         at
> > com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:376)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:417)
> >         at
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:312)
> >         at
> > com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeCompositeConverter(OpenConverter.java:482)
> >         at
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:309)
> >         at
> > com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:377)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:417)
> >         at
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:312)
> >         at
> > com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
> >         at
> >
> com.sun.jmx.mbeanserver.ConvertingMethod.<init>(ConvertingMethod.java:197)
> >         at
> > com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:40)
> >         ... 19 more
> > Caused by: java.lang.ClassNotFoundException: [Lbyte;
> >         at java.lang.Class.forName0(Native Method)
> >         at java.lang.Class.forName(Class.java:186)
> >         at
> >
> >
> com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:344)
> >         ... 34 more
> >
> > ======================================
> >
> > Yes, I know about
> > https://issues.apache.org/jira/browse/HBASE-5718
> > and about
> > https://issues.apache.org/jira/browse/HBASE-5971
> >
> > Also looked at:
> >
> >
> http://stackoverflow.com/questions/10020702/jmx-exception-caused-by-java-lang-classnotfoundexception-lbyte
> >
> > I didn't config JMX beans in hbase-site.xml (should I do this?). The only
> > config is ( hbase-site.xml):
> > ======================
> > <configuration>
> >   <property>
> >     <name>hbase.rootdir</name>
> >     <value>file:///data/hbase</value>
> >   </property>
> >   <property>
> >     <name>hbase.zookeeper.property.dataDir</name>
> >     <value>/data/zookeeper</value>
> >   </property>
> > </configuration>
> > ======================
> >
> > It seems that hbase developers do not consider this JMX issue  as a
> > noticeable problem. Am I right?
> >
> > --
> > Best regards,
> > Ivan P. Ryndin,
> >
>

Re: Problems with HBase JMX beans

Posted by Nicolas Liochon <nk...@gmail.com>.
HBASE-5718 seems to say it's reproducible only on openjdk.
HBase requires the jdk from Oracle (see
http://hbase.apache.org/book.html#basic.prerequisites).
Issues that occur on other jdk are not rejected, but usually receives a
lower priority. If someone provides a patch, it will be integrated.


On Mon, Dec 17, 2012 at 10:20 AM, Ivan Ryndin <ir...@gmail.com> wrote:

> Hi all,
>
> when starting HBase on a single node have following exceptions in log
> files:
>
> ======================================
> javax.management.NotCompliantMBeanException:
> org.apache.hadoop.hbase.master.MXBean: Method
> org.apache.hadoop.hbase.master.MXBean.getRegionServers has parameter or
> return type that cannot be translated into an open type
>         at
> com.sun.jmx.mbeanserver.Introspector.throwException(Introspector.java:419)
>         at
> com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:118)
>         at
> com.sun.jmx.mbeanserver.MBeanAnalyzer.analyzer(MBeanAnalyzer.java:104)
>         at
>
> com.sun.jmx.mbeanserver.MXBeanIntrospector.getAnalyzer(MXBeanIntrospector.java:71)
>         at
>
> com.sun.jmx.mbeanserver.MBeanIntrospector.getPerInterface(MBeanIntrospector.java:181)
>         at
> com.sun.jmx.mbeanserver.MBeanSupport.<init>(MBeanSupport.java:136)
>         at
> com.sun.jmx.mbeanserver.MXBeanSupport.<init>(MXBeanSupport.java:66)
>         at
>
> com.sun.jmx.mbeanserver.Introspector.makeDynamicMBean(Introspector.java:184)
>         at
>
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:936)
>         at
>
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:330)
>         at
>
> com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:516)
>         at
> org.apache.hadoop.metrics.util.MBeanUtil.registerMBean(MBeanUtil.java:58)
>         at
> org.apache.hadoop.hbase.master.HMaster.registerMBean(HMaster.java:1829)
>         at
>
> org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:562)
>         at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:349)
>         at
>
> org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.run(HMasterCommandLine.java:220)
>         at java.lang.Thread.run(Thread.java:679)
> Caused by: java.lang.IllegalArgumentException: Method
> org.apache.hadoop.hbase.master.MXBean.getRegionServers has parameter or
> return type that cannot be translated into an open type
>         at
> com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:45)
>         at
>
> com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:81)
>         at
>
> com.sun.jmx.mbeanserver.MXBeanIntrospector.mFrom(MXBeanIntrospector.java:51)
>         at
> com.sun.jmx.mbeanserver.MBeanAnalyzer.initMaps(MBeanAnalyzer.java:135)
>         at
> com.sun.jmx.mbeanserver.MBeanAnalyzer.<init>(MBeanAnalyzer.java:116)
>         ... 15 more
> Caused by: javax.management.openmbean.OpenDataException: Cannot obtain
> array class
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.openDataException(OpenConverter.java:1389)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:346)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:295)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:376)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:417)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:312)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeCompositeConverter(OpenConverter.java:482)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:309)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeTabularConverter(OpenConverter.java:377)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeParameterizedConverter(OpenConverter.java:417)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.makeConverter(OpenConverter.java:312)
>         at
> com.sun.jmx.mbeanserver.OpenConverter.toConverter(OpenConverter.java:277)
>         at
> com.sun.jmx.mbeanserver.ConvertingMethod.<init>(ConvertingMethod.java:197)
>         at
> com.sun.jmx.mbeanserver.ConvertingMethod.from(ConvertingMethod.java:40)
>         ... 19 more
> Caused by: java.lang.ClassNotFoundException: [Lbyte;
>         at java.lang.Class.forName0(Native Method)
>         at java.lang.Class.forName(Class.java:186)
>         at
>
> com.sun.jmx.mbeanserver.OpenConverter.makeArrayOrCollectionConverter(OpenConverter.java:344)
>         ... 34 more
>
> ======================================
>
> Yes, I know about
> https://issues.apache.org/jira/browse/HBASE-5718
> and about
> https://issues.apache.org/jira/browse/HBASE-5971
>
> Also looked at:
>
> http://stackoverflow.com/questions/10020702/jmx-exception-caused-by-java-lang-classnotfoundexception-lbyte
>
> I didn't config JMX beans in hbase-site.xml (should I do this?). The only
> config is ( hbase-site.xml):
> ======================
> <configuration>
>   <property>
>     <name>hbase.rootdir</name>
>     <value>file:///data/hbase</value>
>   </property>
>   <property>
>     <name>hbase.zookeeper.property.dataDir</name>
>     <value>/data/zookeeper</value>
>   </property>
> </configuration>
> ======================
>
> It seems that hbase developers do not consider this JMX issue  as a
> noticeable problem. Am I right?
>
> --
> Best regards,
> Ivan P. Ryndin,
>