use of org.apache.hadoop.io.compress.CompressionOutputStream in project hadoop by apache.
the class TestLz4CompressorDecompressor method testCompressorDecopressorLogicWithCompressionStreams.
// test compress/decompress process through CompressionOutputStream/CompressionInputStream api
@Test
public void testCompressorDecopressorLogicWithCompressionStreams() {
DataOutputStream deflateOut = null;
DataInputStream inflateIn = null;
int BYTE_SIZE = 1024 * 100;
byte[] bytes = generate(BYTE_SIZE);
int bufferSize = 262144;
int compressionOverhead = (bufferSize / 6) + 32;
try {
DataOutputBuffer compressedDataBuffer = new DataOutputBuffer();
CompressionOutputStream deflateFilter = new BlockCompressorStream(compressedDataBuffer, new Lz4Compressor(bufferSize), bufferSize, compressionOverhead);
deflateOut = new DataOutputStream(new BufferedOutputStream(deflateFilter));
deflateOut.write(bytes, 0, bytes.length);
deflateOut.flush();
deflateFilter.finish();
DataInputBuffer deCompressedDataBuffer = new DataInputBuffer();
deCompressedDataBuffer.reset(compressedDataBuffer.getData(), 0, compressedDataBuffer.getLength());
CompressionInputStream inflateFilter = new BlockDecompressorStream(deCompressedDataBuffer, new Lz4Decompressor(bufferSize), bufferSize);
inflateIn = new DataInputStream(new BufferedInputStream(inflateFilter));
byte[] result = new byte[BYTE_SIZE];
inflateIn.read(result);
assertArrayEquals("original array not equals compress/decompressed array", result, bytes);
} catch (IOException e) {
fail("testLz4CompressorDecopressorLogicWithCompressionStreams ex error !!!");
} finally {
try {
if (deflateOut != null)
deflateOut.close();
if (inflateIn != null)
inflateIn.close();
} catch (Exception e) {
}
}
}
use of org.apache.hadoop.io.compress.CompressionOutputStream in project carbondata by apache.
the class CSVInputFormatTest method generateCompressFiles.
/**
* generate compressed files, no need to call this method.
* @throws Exception
*/
public void generateCompressFiles() throws Exception {
String pwd = new File("src/test/resources/csv").getCanonicalPath();
String inputFile = pwd + "/data.csv";
FileInputStream input = new FileInputStream(inputFile);
Configuration conf = new Configuration();
// .gz
String outputFile = pwd + "/data.csv.gz";
FileOutputStream output = new FileOutputStream(outputFile);
GzipCodec gzip = new GzipCodec();
gzip.setConf(conf);
CompressionOutputStream outputStream = gzip.createOutputStream(output);
int i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
// .bz2
input = new FileInputStream(inputFile);
outputFile = pwd + "/data.csv.bz2";
output = new FileOutputStream(outputFile);
BZip2Codec bzip2 = new BZip2Codec();
bzip2.setConf(conf);
outputStream = bzip2.createOutputStream(output);
i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
// .snappy
input = new FileInputStream(inputFile);
outputFile = pwd + "/data.csv.snappy";
output = new FileOutputStream(outputFile);
SnappyCodec snappy = new SnappyCodec();
snappy.setConf(conf);
outputStream = snappy.createOutputStream(output);
i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
//.lz4
input = new FileInputStream(inputFile);
outputFile = pwd + "/data.csv.lz4";
output = new FileOutputStream(outputFile);
Lz4Codec lz4 = new Lz4Codec();
lz4.setConf(conf);
outputStream = lz4.createOutputStream(output);
i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
}
use of org.apache.hadoop.io.compress.CompressionOutputStream in project hadoop by apache.
the class TestSnappyCompressorDecompressor method testSnappyCompressorDecopressorLogicWithCompressionStreams.
@Test
public void testSnappyCompressorDecopressorLogicWithCompressionStreams() {
int BYTE_SIZE = 1024 * 100;
byte[] bytes = BytesGenerator.get(BYTE_SIZE);
int bufferSize = 262144;
int compressionOverhead = (bufferSize / 6) + 32;
DataOutputStream deflateOut = null;
DataInputStream inflateIn = null;
try {
DataOutputBuffer compressedDataBuffer = new DataOutputBuffer();
CompressionOutputStream deflateFilter = new BlockCompressorStream(compressedDataBuffer, new SnappyCompressor(bufferSize), bufferSize, compressionOverhead);
deflateOut = new DataOutputStream(new BufferedOutputStream(deflateFilter));
deflateOut.write(bytes, 0, bytes.length);
deflateOut.flush();
deflateFilter.finish();
DataInputBuffer deCompressedDataBuffer = new DataInputBuffer();
deCompressedDataBuffer.reset(compressedDataBuffer.getData(), 0, compressedDataBuffer.getLength());
CompressionInputStream inflateFilter = new BlockDecompressorStream(deCompressedDataBuffer, new SnappyDecompressor(bufferSize), bufferSize);
inflateIn = new DataInputStream(new BufferedInputStream(inflateFilter));
byte[] result = new byte[BYTE_SIZE];
inflateIn.read(result);
Assert.assertArrayEquals("original array not equals compress/decompressed array", result, bytes);
} catch (IOException e) {
fail("testSnappyCompressorDecopressorLogicWithCompressionStreams ex error !!!");
} finally {
try {
if (deflateOut != null)
deflateOut.close();
if (inflateIn != null)
inflateIn.close();
} catch (Exception e) {
}
}
}
use of org.apache.hadoop.io.compress.CompressionOutputStream in project hadoop by apache.
the class TestZStandardCompressorDecompressor method compressDecompressLoop.
private void compressDecompressLoop(int rawDataSize) throws IOException {
byte[] rawData = null;
rawData = generate(rawDataSize);
ByteArrayOutputStream baos = new ByteArrayOutputStream(rawDataSize + 12);
CompressionOutputStream deflateFilter = new CompressorStream(baos, new ZStandardCompressor(), 4096);
DataOutputStream deflateOut = new DataOutputStream(new BufferedOutputStream(deflateFilter));
deflateOut.write(rawData, 0, rawData.length);
deflateOut.flush();
deflateFilter.finish();
byte[] compressedResult = baos.toByteArray();
int compressedSize = compressedResult.length;
ZStandardDecompressor.ZStandardDirectDecompressor decompressor = new ZStandardDecompressor.ZStandardDirectDecompressor(4096);
ByteBuffer inBuf = ByteBuffer.allocateDirect(compressedSize);
ByteBuffer outBuf = ByteBuffer.allocateDirect(8096);
inBuf.put(compressedResult, 0, compressedSize);
inBuf.flip();
ByteBuffer expected = ByteBuffer.wrap(rawData);
outBuf.clear();
while (!decompressor.finished()) {
decompressor.decompress(inBuf, outBuf);
if (outBuf.remaining() == 0) {
outBuf.flip();
while (outBuf.remaining() > 0) {
assertEquals(expected.get(), outBuf.get());
}
outBuf.clear();
}
}
outBuf.flip();
while (outBuf.remaining() > 0) {
assertEquals(expected.get(), outBuf.get());
}
outBuf.clear();
assertEquals(0, expected.remaining());
}
use of org.apache.hadoop.io.compress.CompressionOutputStream in project carbondata by apache.
the class CSVInputFormatTest method generateCompressFiles.
/**
* generate compressed files, no need to call this method.
* @throws Exception
*/
public void generateCompressFiles() throws Exception {
String pwd = new File("src/test/resources/csv").getCanonicalPath();
String inputFile = pwd + "/data.csv";
FileInputStream input = new FileInputStream(inputFile);
Configuration conf = new Configuration();
// .gz
String outputFile = pwd + "/data.csv.gz";
FileOutputStream output = new FileOutputStream(outputFile);
GzipCodec gzip = new GzipCodec();
gzip.setConf(conf);
CompressionOutputStream outputStream = gzip.createOutputStream(output);
int i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
// .bz2
input = new FileInputStream(inputFile);
outputFile = pwd + "/data.csv.bz2";
output = new FileOutputStream(outputFile);
BZip2Codec bzip2 = new BZip2Codec();
bzip2.setConf(conf);
outputStream = bzip2.createOutputStream(output);
i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
// .snappy
input = new FileInputStream(inputFile);
outputFile = pwd + "/data.csv.snappy";
output = new FileOutputStream(outputFile);
SnappyCodec snappy = new SnappyCodec();
snappy.setConf(conf);
outputStream = snappy.createOutputStream(output);
i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
// .lz4
input = new FileInputStream(inputFile);
outputFile = pwd + "/data.csv.lz4";
output = new FileOutputStream(outputFile);
Lz4Codec lz4 = new Lz4Codec();
lz4.setConf(conf);
outputStream = lz4.createOutputStream(output);
i = -1;
while ((i = input.read()) != -1) {
outputStream.write(i);
}
outputStream.close();
input.close();
}
Aggregations