You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2016/05/03 00:06:12 UTC

[jira] [Created] (HBASE-15752) ClassNotFoundException is encountered when custom WAL codec is not found in WALPlayer job

Ted Yu created HBASE-15752:
------------------------------

             Summary: ClassNotFoundException is encountered when custom WAL codec is not found in WALPlayer job
                 Key: HBASE-15752
                 URL: https://issues.apache.org/jira/browse/HBASE-15752
             Project: HBase
          Issue Type: Bug
            Reporter: Ted Yu
            Assignee: Ted Yu


[~cartershanklin] reported the following when he tried out back / restore feature in a Phoenix enabled deployment:
{code}
2016-05-02 18:57:58,578 FATAL [IPC Server handler 2 on 38194] org.apache.hadoop.mapred.TaskAttemptListenerImpl: Task: attempt_1462215011294_0001_m_000000_0 - exited : java.io. IOException: Cannot get log reader
  at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:344)
  at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:266)
  at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:254)
  at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:403)
  at org.apache.hadoop.hbase.mapreduce.WALInputFormat$WALRecordReader.initialize(WALInputFormat.java:152)
  at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.initialize(MapTask.java:548)
  at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:786)
  at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
  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:422)
  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1708)
  at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
Caused by: java.lang.UnsupportedOperationException: Unable to find org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
  at org.apache.hadoop.hbase.util.ReflectionUtils.instantiateWithCustomCtor(ReflectionUtils.java:36)
  at org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.create(WALCellCodec.java:103)
  at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.getCodec(ProtobufLogReader.java:282)
  at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initAfterCompression(ProtobufLogReader.java:292)
  at org.apache.hadoop.hbase.regionserver.wal.ReaderBase.init(ReaderBase.java:82)
  at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.init(ProtobufLogReader.java:149)
  at org.apache.hadoop.hbase.wal.WALFactory.createReader(WALFactory.java:301)
  ... 12 more
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec
  at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
  at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
  at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:264)
{code}
This was due to the IndexedWALEditCodec (specified thru hbase.regionserver.wal.codec) used by Phoenix being absent in hadoop classpath.

WALPlayer should handle this situation better by adding the jar for IndexedWALEditCodec class to mapreduce job dependency.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)