[ 
https://issues.apache.org/jira/browse/HBASE-15752?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ted Yu updated HBASE-15752:
---------------------------
    Description: 
[~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.

Although this was found during testing of backup / restore, the error may occur 
in other places where WALPlayer needs custom WAL codec for the replay.

  was:
[~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.


> 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
>             Fix For: 2.0.0, 1.3.0, 1.4.0
>
>         Attachments: 15752.v1.patch, 15752.v2.patch
>
>
> [~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.
> Although this was found during testing of backup / restore, the error may 
> occur in other places where WALPlayer needs custom WAL codec for the replay.



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

Reply via email to