Use a compressed pool to compress who is reading the data from the standard and write it to standard output
Package com;
Import java.io.IOException;
Import org.apache.hadoop.conf.Configuration;
Import Org.apache.hadoop.io.IOUtils;
Import Org.apache.hadoop.io.compress.CodecPool;
Import Org.apache.hadoop.io.compress.CompressionCodec;
Import Org.apache.hadoop.io.compress.CompressionOutputStream;
Import Org.apache.hadoop.io.compress.Compressor;
Import Org.apache.hadoop.util.ReflectionUtils;
public class Pooledstreamcompressor {
/**
* @param args
* @throws IOException
* @throws ClassNotFoundException
*/
public static void Main (string[] args) throws IOException, ClassNotFoundException {
TODO auto-generated Method Stub
String codecclassname = args[0];
class<?> Codecclass = Class.forName (codecclassname);
Configuration conf = new configuration ();
Compressioncodec codec = (COMPRESSIONCODEC) reflectionutils.newinstance (codecclass, conf);
Compressor Compressor = null;
try{
Compressor = Codecpool.getcompressor (codec);
Compressionoutputstream out = Codec.createoutputstream (System.out, compressor);
Ioutils.copybytes (system.in, out, 4096, false);
Out.finish ();
}finally{
Codecpool.returncompressor (compressor);
}
}
}
Use a compressed pool to compress who is reading the data from the standard and write it to standard output