Created on 06-28-2014 12:21 PM - edited 09-16-2022 02:01 AM
Hi,
i want to create an external hive tebale mapped on hbase in my oozie workflow. on cdh4 it works without problems but using the script on cdh5 i got an "java.lang.NoClassDefFoundError" exception. I have added all jars like in the documentation:
I also added the jars with the "hive.aux.jars.path" property at the hive-site.xml
Hive script:
CREATE EXTERNAL TABLE IF NOT EXISTS hive_table( hash BIGINT, f1 STRING )STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ( 'hbase.columns.mapping' =':key,cf1:f1')TBLPROPERTIES('hbase.table.name' = 'hbase_table');
Error:
3029 [main] ERROR hive.ql.exec.DDLTask - java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/mapreduce/TableInputFormatBase at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270) at org.apache.hadoop.hive.ql.metadata.Table.getInputFormatClass(Table.java:305) at org.apache.hadoop.hive.ql.metadata.Table.<init>(Table.java:98) at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:991) at org.apache.hadoop.hive.ql.metadata.Hive.getTable(Hive.java:894) at org.apache.hadoop.hive.ql.exec.DDLTask.dropTable(DDLTask.java:3308) at org.apache.hadoop.hive.ql.exec.DDLTask.execute(DDLTask.java:278) at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:151) at org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:65) at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1485) at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1263) at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1091) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:931) at org.apache.hadoop.hive.ql.Driver.run(Driver.java:921) at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268) at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:422) at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:357) at org.apache.hadoop.hive.cli.CliDriver.processReader(CliDriver.java:455) at org.apache.hadoop.hive.cli.CliDriver.processFile(CliDriver.java:465) at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:746) at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:684) at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:623) at org.apache.oozie.action.hadoop.HiveMain.runHive(HiveMain.java:315) at org.apache.oozie.action.hadoop.HiveMain.run(HiveMain.java:276) at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:38) at org.apache.oozie.action.hadoop.HiveMain.main(HiveMain.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:226) at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:430) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:342) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:168) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.mapreduce.TableInputFormatBase at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 60 more
My Cluster is configured with CDH5.0.2 and CDM5 with Yarn MRv2
I hope you can help me which jar file is missing
Created 10-31-2014 10:51 AM
I was able to fix this issue by copying the following jars located at /opt/cloudera/parcels/CDH/lib/hive/lib to /user/oozie/share/lib/lib_{ts}/hive/
hbase-client.jar
hbase-common.jar
hbase-hadoop2-compat.jar
hbase-hadoop-compat.jar
hbase-protocol.jar
hbase-server.jar
hive-hbase-handler-0.12.0-cdh5.1.3.jar
hive-hbase-handler.jar
htrace-core.jar
I'm using Hadoop 2.3.0-cdh5.1.3 and CDH manager 5.
- Saimon
Created 07-01-2014 05:39 AM
Has anyone an idea what library is missing?
It would be great if someone could help me briefly?
thanks a lot 🙂
BG,
Created 10-31-2014 09:07 AM
I'm having the same problem. Did you find a fix?
Created 10-31-2014 10:51 AM
I was able to fix this issue by copying the following jars located at /opt/cloudera/parcels/CDH/lib/hive/lib to /user/oozie/share/lib/lib_{ts}/hive/
hbase-client.jar
hbase-common.jar
hbase-hadoop2-compat.jar
hbase-hadoop-compat.jar
hbase-protocol.jar
hbase-server.jar
hive-hbase-handler-0.12.0-cdh5.1.3.jar
hive-hbase-handler.jar
htrace-core.jar
I'm using Hadoop 2.3.0-cdh5.1.3 and CDH manager 5.
- Saimon