|
@@ -28,7 +28,6 @@ import org.apache.hadoop.io.compress.snappy.SnappyCompressor;
|
|
import org.apache.hadoop.io.compress.snappy.SnappyDecompressor;
|
|
import org.apache.hadoop.io.compress.snappy.SnappyDecompressor;
|
|
import org.apache.hadoop.io.compress.snappy.SnappyDecompressor.SnappyDirectDecompressor;
|
|
import org.apache.hadoop.io.compress.snappy.SnappyDecompressor.SnappyDirectDecompressor;
|
|
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
|
import org.apache.hadoop.fs.CommonConfigurationKeys;
|
|
-import org.apache.hadoop.util.NativeCodeLoader;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* This class creates snappy compressors/decompressors.
|
|
* This class creates snappy compressors/decompressors.
|
|
@@ -56,37 +55,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
return conf;
|
|
return conf;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * Are the native snappy libraries loaded & initialized?
|
|
|
|
- */
|
|
|
|
- public static void checkNativeCodeLoaded() {
|
|
|
|
- if (!NativeCodeLoader.buildSupportsSnappy()) {
|
|
|
|
- throw new RuntimeException("native snappy library not available: " +
|
|
|
|
- "this version of libhadoop was built without " +
|
|
|
|
- "snappy support.");
|
|
|
|
- }
|
|
|
|
- if (!NativeCodeLoader.isNativeCodeLoaded()) {
|
|
|
|
- throw new RuntimeException("Failed to load libhadoop.");
|
|
|
|
- }
|
|
|
|
- if (!SnappyCompressor.isNativeCodeLoaded()) {
|
|
|
|
- throw new RuntimeException("native snappy library not available: " +
|
|
|
|
- "SnappyCompressor has not been loaded.");
|
|
|
|
- }
|
|
|
|
- if (!SnappyDecompressor.isNativeCodeLoaded()) {
|
|
|
|
- throw new RuntimeException("native snappy library not available: " +
|
|
|
|
- "SnappyDecompressor has not been loaded.");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static boolean isNativeCodeLoaded() {
|
|
|
|
- return SnappyCompressor.isNativeCodeLoaded() &&
|
|
|
|
- SnappyDecompressor.isNativeCodeLoaded();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public static String getLibraryName() {
|
|
|
|
- return SnappyCompressor.getLibraryName();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* Create a {@link CompressionOutputStream} that will write to the given
|
|
* Create a {@link CompressionOutputStream} that will write to the given
|
|
* {@link OutputStream}.
|
|
* {@link OutputStream}.
|
|
@@ -115,7 +83,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
public CompressionOutputStream createOutputStream(OutputStream out,
|
|
public CompressionOutputStream createOutputStream(OutputStream out,
|
|
Compressor compressor)
|
|
Compressor compressor)
|
|
throws IOException {
|
|
throws IOException {
|
|
- checkNativeCodeLoaded();
|
|
|
|
int bufferSize = conf.getInt(
|
|
int bufferSize = conf.getInt(
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT);
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT);
|
|
@@ -133,7 +100,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public Class<? extends Compressor> getCompressorType() {
|
|
public Class<? extends Compressor> getCompressorType() {
|
|
- checkNativeCodeLoaded();
|
|
|
|
return SnappyCompressor.class;
|
|
return SnappyCompressor.class;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -144,7 +110,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public Compressor createCompressor() {
|
|
public Compressor createCompressor() {
|
|
- checkNativeCodeLoaded();
|
|
|
|
int bufferSize = conf.getInt(
|
|
int bufferSize = conf.getInt(
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT);
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT);
|
|
@@ -179,7 +144,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
public CompressionInputStream createInputStream(InputStream in,
|
|
public CompressionInputStream createInputStream(InputStream in,
|
|
Decompressor decompressor)
|
|
Decompressor decompressor)
|
|
throws IOException {
|
|
throws IOException {
|
|
- checkNativeCodeLoaded();
|
|
|
|
return new BlockDecompressorStream(in, decompressor, conf.getInt(
|
|
return new BlockDecompressorStream(in, decompressor, conf.getInt(
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT));
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT));
|
|
@@ -192,7 +156,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public Class<? extends Decompressor> getDecompressorType() {
|
|
public Class<? extends Decompressor> getDecompressorType() {
|
|
- checkNativeCodeLoaded();
|
|
|
|
return SnappyDecompressor.class;
|
|
return SnappyDecompressor.class;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -203,7 +166,6 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public Decompressor createDecompressor() {
|
|
public Decompressor createDecompressor() {
|
|
- checkNativeCodeLoaded();
|
|
|
|
int bufferSize = conf.getInt(
|
|
int bufferSize = conf.getInt(
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_KEY,
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT);
|
|
CommonConfigurationKeys.IO_COMPRESSION_CODEC_SNAPPY_BUFFERSIZE_DEFAULT);
|
|
@@ -215,7 +177,7 @@ public class SnappyCodec implements Configurable, CompressionCodec, DirectDecomp
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public DirectDecompressor createDirectDecompressor() {
|
|
public DirectDecompressor createDirectDecompressor() {
|
|
- return isNativeCodeLoaded() ? new SnappyDirectDecompressor() : null;
|
|
|
|
|
|
+ return new SnappyDirectDecompressor();
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|