Support Questions
Find answers, ask questions, and share your expertise

java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration

Guru

Hi,

I am trying to access a HBase-backed Hive table via 'select * from tbl_name', but seems like some HBase jar's are not in place.

Any help highly appreciated 😉

Details:

0: jdbc:hive2://deala.corp:1> select * from tbl_name; Error: java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration (state=,code=0)

Regards, Gerd

PS: HDP2.2.4.2, Ambari 2.1.2

1 ACCEPTED SOLUTION

Accepted Solutions

Append HBASE_CLASSPATH to HADOOP_CLASSPATH like below:-

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_CLASSPATH

//but before that confirm HBASE_CLASSPATH is properly set.

And

also you may need to set hive.aux.jars.path in hive-site.xml so that libraries are available in MR job.

<property> <name>hive.aux.jars.path</name> <value><hive_home>/lib/hive-hbase-handler-<version>.jar, <hbase_home>/lib/hbase-client-<version>.jar, <hbase_home>/lib/hbase-server-<version>.jar,<hbase_home>/lib/hbase-protocol-<version>.jar,<hbase_home>/lib/zookeeper-<version>.jar</value> <description>A comma separated list (with no spaces) of the jar files required for Hive-HBase integration</description> </property>

replace the above paths with actual paths as per your setup.

View solution in original post

3 REPLIES 3

Append HBASE_CLASSPATH to HADOOP_CLASSPATH like below:-

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_CLASSPATH

//but before that confirm HBASE_CLASSPATH is properly set.

And

also you may need to set hive.aux.jars.path in hive-site.xml so that libraries are available in MR job.

<property> <name>hive.aux.jars.path</name> <value><hive_home>/lib/hive-hbase-handler-<version>.jar, <hbase_home>/lib/hbase-client-<version>.jar, <hbase_home>/lib/hbase-server-<version>.jar,<hbase_home>/lib/hbase-protocol-<version>.jar,<hbase_home>/lib/zookeeper-<version>.jar</value> <description>A comma separated list (with no spaces) of the jar files required for Hive-HBase integration</description> </property>

replace the above paths with actual paths as per your setup.

View solution in original post

Guru

Hi,

just to extend @asinghal 's answer, the whole solution was:

1) adding

export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HBASE_CLASSPATH 

to hadoop-env section in Ambari=>HDFS=>config

2) restart HDFS (will be shown in Ambari to restart all affected services)

3) restart Hive (this won't show up in Ambari, but needs to be restarted to apply the change from steps 1. and 2.)

Regards....

Thanks @Gerd Koenig for extending the answer in terms of ambari and HDP.