Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-12773

HBase classes fail to load with client/job classloader enabled

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.6.3
    • Fix Version/s: 2.8.0, 2.7.3, 2.6.5, 3.0.0-alpha1
    • Component/s: util
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Currently if a user uses HBase and enables the client/job classloader, the job fails to load HBase classes. For example,

      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)
      

      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.

        Attachments

          Activity

            People

            • Assignee:
              sjlee0 Sangjin Lee
              Reporter:
              sjlee0 Sangjin Lee
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: