Repository: hbase Updated Branches: refs/heads/branch-1.2 2ef33e151 -> 322c076a0
HBASE-15752 ClassNotFoundException is encountered when custom WAL codec is not found in WALPlayer job (cherry picked from commit a7b31f74dbc4f6a6d0c1f6134ecbf809ab691dd4) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/c153f6fd Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/c153f6fd Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/c153f6fd Branch: refs/heads/branch-1.2 Commit: c153f6fdd4d5db77347158a3a4b28d2ca7d2437b Parents: 2ef33e1 Author: tedyu <[email protected]> Authored: Tue May 3 07:01:08 2016 -0700 Committer: Sean Busbey <[email protected]> Committed: Mon Jan 7 12:52:45 2019 -0600 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java | 7 +++++++ .../apache/hadoop/hbase/regionserver/wal/WALCellCodec.java | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/c153f6fd/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java index 6b5286b..f16aecb 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java @@ -38,6 +38,7 @@ import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.RegionLocator; import org.apache.hadoop.hbase.client.Table; import org.apache.hadoop.hbase.io.ImmutableBytesWritable; +import org.apache.hadoop.hbase.regionserver.wal.WALCellCodec; import org.apache.hadoop.hbase.regionserver.wal.WALEdit; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.wal.WALKey; @@ -294,6 +295,12 @@ public class WALPlayer extends Configured implements Tool { // No reducers. job.setNumReduceTasks(0); } + String codecCls = WALCellCodec.getWALCellCodecClass(conf); + try { + TableMapReduceUtil.addDependencyJars(conf, Class.forName(codecCls)); + } catch (Exception e) { + throw new IOException("Cannot determine wal codec class " + codecCls, e); + } return job; } http://git-wip-us.apache.org/repos/asf/hbase/blob/c153f6fd/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java index 05d733d..5c62ef2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java @@ -79,7 +79,7 @@ public class WALCellCodec implements Codec { this.compression = compression; } - static String getWALCellCodecClass(Configuration conf) { + public static String getWALCellCodecClass(Configuration conf) { return conf.get(WAL_CELL_CODEC_CLASS_KEY, WALCellCodec.class.getName()); }
