Repository: hadoop Updated Branches: refs/heads/trunk 6546d9e7f -> 18f9b77a3
Support additional compression levels for GzipCodec. Contributed by Ravi Mutyala. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/18f9b77a Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/18f9b77a Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/18f9b77a Branch: refs/heads/trunk Commit: 18f9b77a321b225677ce23c503b41d21478fc4a7 Parents: 6546d9e Author: Junping Du <[email protected]> Authored: Fri Feb 19 14:21:25 2016 -0800 Committer: Junping Du <[email protected]> Committed: Fri Feb 19 14:21:25 2016 -0800 ---------------------------------------------------------------------- hadoop-common-project/hadoop-common/CHANGES.txt | 3 ++ .../hadoop/io/compress/zlib/ZlibCompressor.java | 42 +++++++++++++++++++- .../zlib/TestZlibCompressorDecompressor.java | 25 ++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/18f9b77a/hadoop-common-project/hadoop-common/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index bf84d7a..e53c001 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -1737,6 +1737,9 @@ Release 2.7.3 - UNRELEASED HADOOP-12413. AccessControlList should avoid calling getGroupNames in isUserInList with empty groups. (Zhihai Xu via cnauroth) + HADOOP-12794. Support additional compression levels for GzipCodec. + (Ravi Mutyala via junping_du) + OPTIMIZATIONS HADOOP-12810. FileSystem#listLocatedStatus causes unnecessary RPC calls http://git-wip-us.apache.org/repos/asf/hadoop/blob/18f9b77a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java index b955044..24d98a5 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/compress/zlib/ZlibCompressor.java @@ -67,7 +67,47 @@ public class ZlibCompressor implements Compressor { * Compression level for fastest compression. */ BEST_SPEED (1), - + + /** + * Compression level 2. + */ + TWO (2), + + + /** + * Compression level 3. + */ + THREE (3), + + + /** + * Compression level 4. + */ + FOUR (4), + + + /** + * Compression level 5. + */ + FIVE (5), + + + /** + * Compression level 6. + */ + SIX (6), + + /** + * Compression level 7. + */ + SEVEN (7), + + /** + * Compression level 8. + */ + EIGHT (8), + + /** * Compression level for best compression. */ http://git-wip-us.apache.org/repos/asf/hadoop/blob/18f9b77a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/zlib/TestZlibCompressorDecompressor.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/zlib/TestZlibCompressorDecompressor.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/zlib/TestZlibCompressorDecompressor.java index 6a4fc60..7e2ab24 100644 --- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/zlib/TestZlibCompressorDecompressor.java +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/compress/zlib/TestZlibCompressorDecompressor.java @@ -122,6 +122,31 @@ public class TestZlibCompressorDecompressor { } @Test + public void testZlibCompressorDecompressorWithCompressionLevels() { + Configuration conf = new Configuration(); + conf.set("zlib.compress.level","FOUR"); + if (ZlibFactory.isNativeZlibLoaded(conf)) { + byte[] rawData; + int tryNumber = 5; + int BYTE_SIZE = 10 * 1024; + Compressor zlibCompressor = ZlibFactory.getZlibCompressor(conf); + Decompressor zlibDecompressor = ZlibFactory.getZlibDecompressor(conf); + rawData = generate(BYTE_SIZE); + try { + for (int i = 0; i < tryNumber; i++) + compressDecompressZlib(rawData, (ZlibCompressor) zlibCompressor, + (ZlibDecompressor) zlibDecompressor); + zlibCompressor.reinit(conf); + } catch (Exception ex) { + fail("testZlibCompressorDecompressorWithConfiguration ex error " + ex); + } + } else { + assertTrue("ZlibFactory is using native libs against request", + ZlibFactory.isNativeZlibLoaded(conf)); + } + } + + @Test public void testZlibCompressDecompress() { byte[] rawData = null; int rawDataSize = 0;
