AnsweredAssumed Answered

java.lang.ClassNotFoundException: org.apache.hadoop.hbase.client.mapr.TableMappingRulesInterface

Question asked by subroto on Aug 5, 2013
Latest reply on Sep 18, 2013 by aditya
Hi,

I am using MapR version 3.0.
<pre>root@ip-10-110-143-40 mapr]# hadoop version
Hadoop 1.0.3
Source http://mapr.com -r 2ea05ec4f3d58f118ccf1fe636a3b7ca88666ffe
Compiled by root on Wed May  1 01:15:18 PDT 2013
From source with checksum 2cfc52f353231b60af74ec1ba25fc6d2</pre>

While running a MapReduce job which uses <i>org.apache.hadoop.hbase.mapreduce.TableInputFormat</i>; I get the following exception:
<pre>Caused by: java.lang.RuntimeException: java.lang.RuntimeException: Error occurred while instantiating org.apache.hadoop.hbase.client.HTableFactoryEx
org/apache/hadoop/hbase/client/mapr/TableMappingRulesInterface
at org.apache.hadoop.hbase.client.HTableFactoryEx.createHTableInterface(HTableFactoryEx.java:53)
at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:119)
... 18 more
Caused by: java.lang.RuntimeException: Error occurred while instantiating org.apache.hadoop.hbase.client.HTableFactoryEx
org/apache/hadoop/hbase/client/mapr/TableMappingRulesInterface
at org.apache.hadoop.hbase.client.GenericHFactory.getImplementorInstance(GenericHFactory.java:52)
at org.apache.hadoop.hbase.client.HTableFactoryEx.createHTableInterface(HTableFactoryEx.java:48)
... 19 more
Caused by: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/client/mapr/TableMappingRulesInterface
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:295)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at xxx.plugin.PluginClassLoader.loadClass(PluginClassLoader.java:59)
at xxx.plugin.PluginClassLoader.loadClass(PluginClassLoader.java:50)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:1039)
at org.apache.hadoop.hbase.client.mapr.TableMappingRulesFactory.create(TableMappingRulesFactory.java:55)
at org.apache.hadoop.hbase.client.HTableFactoryEx.getImplementingClass(HTableFactoryEx.java:92)
at org.apache.hadoop.hbase.client.GenericHFactory.getImplementingClass(GenericHFactory.java:17)
at org.apache.hadoop.hbase.client.GenericHFactory.getImplementorInstance(GenericHFactory.java:35)
... 20 more
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.client.mapr.TableMappingRulesInterface
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 42 more</pre>

I use a custom classloader but, I have checked the classpath and it includes the <i>protobuf-java-2.4.0a.jar,hbase-0.94.5-mapr.jar,zookeeper-3.4.5.jar</i>.

Please let me know if I am missing any other dependency/library ??

Cheers,<br/>
Subroto Sanyal

Outcomes