运行一些HBase代码时出现以下问题。它看起来像源自MXBean位。我完全无能为力,但看起来很低级。JMX异常“导致:java.lang.ClassNotFoundException:[Lbyte;”
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:1646)
at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:527)
at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:336)
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)
... 14 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)
... 18 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)
... 33 more
描述符'[Lbyte;]指定一个名为'byte'的类的_Object_('L')的数组(''''),通常这是不可能的。一个Java本地字节数组将会有一个'[B'的描述符,所以'makeArrayOrCollectionConverter'中的某些内容会被混淆。您是否定义了自己的MXBeans? – 2012-04-05 01:38:18
不,我没有做任何事情比一些教科书初学者基础级别的代码。 – 2012-04-05 02:20:09
@NoahWatkins你找到解决方法,我也使用hbase over ubuntu并遇到同样的问题(在hbase中启用表时触发)。 – Richard 2012-10-15 15:13:07