Sangjin Lee created HADOOP-12773:
------------------------------------
Summary: HBase classes fail to load with client/job classloader
enabled
Key: HADOOP-12773
URL: https://issues.apache.org/jira/browse/HADOOP-12773
Project: Hadoop Common
Issue Type: Bug
Components: util
Affects Versions: 2.6.3
Reporter: Sangjin Lee
Assignee: Sangjin Lee
Currently if a user uses HBase and enables the client/job classloader, the job
fails to load HBase classes. For example,
{noformat}
java.lang.NoClassDefFoundError: Lorg/apache/hadoop/hbase/client/HBaseAdmin;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2509)
at java.lang.Class.getDeclaredField(Class.java:1959)
at
java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1703)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:72)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:484)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:472)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:472)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:369)
{noformat}
It is because the HBase classes (org.apache.hadoop.hbase.\*) meet the system
classes criteria which are supposed to be loaded strictly from the base
classloader. But hadoop does not provide HBase as a dependency.
We should exclude the HBase classes from the system classes until/unless HBase
is provided by a future version of hadoop.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)