Example usage for org.apache.hadoop.io.compress CodecPool returnCompressor

List of usage examples for org.apache.hadoop.io.compress CodecPool returnCompressor

Introduction

In this page you can find the example usage for org.apache.hadoop.io.compress CodecPool returnCompressor.

Prototype

public static void returnCompressor(Compressor compressor) 

Source Link

Document

Return the Compressor to the pool.

Usage

From source file:cascading.tuple.hadoop.collect.HadoopSpillableTupleList.java

License:Open Source License

@Override
protected TupleOutputStream createTupleOutputStream(File file) {
    OutputStream outputStream;/*from w w w . j  ava  2 s.  c  om*/

    try {
        outputStream = new FileOutputStream(file);

        Compressor compressor = null;

        if (codec != null) {
            compressor = getCompressor();
            outputStream = codec.createOutputStream(outputStream, compressor);
        }

        final Compressor finalCompressor = compressor;

        return new HadoopTupleOutputStream(outputStream, tupleSerialization.getElementWriter()) {
            @Override
            public void close() throws IOException {
                try {
                    super.close();
                } finally {
                    if (finalCompressor != null)
                        CodecPool.returnCompressor(finalCompressor);
                }
            }
        };
    } catch (IOException exception) {
        throw new TupleException("unable to create temporary file input stream", exception);
    }
}

From source file:cn.lhfei.hadoop.ch04.PooledStreamCompressor.java

License:Apache License

/**
 * use case: //  w w w  .  j a  va2  s .  c  o  m
 * 
 * @param args
 */
public static void main(String[] args) {
    String codecClassname = args[0];
    Class<?> codecClass = null;
    CompressionOutputStream out = null;
    Compressor compressor = null;
    try {
        codecClass = Class.forName(codecClassname);
        Configuration conf = new Configuration();
        CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(codecClass, conf);
        compressor = CodecPool.getCompressor(codec);

        out = codec.createOutputStream(System.out, compressor);

        IOUtils.copyBytes(System.in, out, 4096, false);

        out.finish();

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        CodecPool.returnCompressor(compressor);
    }
}

From source file:com.hadoop.mapreduce.TestLzoLazyLoading.java

License:Open Source License

public static Path writeFile(String name, String data) throws IOException {
    Path file = new Path(TEST_ROOT_DIR + "/" + name);
    localFs.delete(file, false);/*from  www  .jav a2  s  .com*/
    CompressionCodec codec = new CompressionCodecFactory(conf).getCodec(file);
    OutputStream f;
    Compressor compressor = null;
    if (codec == null) {
        f = localFs.create(file);
    } else {
        compressor = CodecPool.getCompressor(codec);
        f = codec.createOutputStream(localFs.create(file), compressor);
    }

    f.write(data.getBytes());
    f.close();
    if (compressor != null) {
        CodecPool.returnCompressor(compressor);
    }
    return file;
}

From source file:com.inmobi.conduit.distcp.tools.mapred.TestCopyMapper.java

License:Apache License

private static void touchFile(String path) throws Exception {
    FileSystem fs;//from   w ww.j  av  a 2s.c o m
    DataOutputStream outputStream = null;
    GzipCodec gzipCodec = ReflectionUtils.newInstance(GzipCodec.class, getConfiguration());
    Compressor gzipCompressor = CodecPool.getCompressor(gzipCodec);
    OutputStream compressedOut = null;
    try {
        fs = cluster.getFileSystem();
        final Path qualifiedPath = new Path(path).makeQualified(fs);
        final long blockSize = fs.getDefaultBlockSize() * 2;
        outputStream = fs.create(qualifiedPath, true, 0, (short) (fs.getDefaultReplication() * 2), blockSize);
        compressedOut = gzipCodec.createOutputStream(outputStream, gzipCompressor);
        Message msg = new Message("generating test data".getBytes());
        AuditUtil.attachHeaders(msg, currentTimestamp);
        byte[] encodeMsg = Base64.encodeBase64(msg.getData().array());
        compressedOut.write(encodeMsg);
        compressedOut.write("\n".getBytes());
        compressedOut.write(encodeMsg);
        compressedOut.write("\n".getBytes());
        // Genearate a msg with different timestamp.  Default window period is 60sec
        AuditUtil.attachHeaders(msg, nextMinuteTimeStamp);
        encodeMsg = Base64.encodeBase64(msg.getData().array());
        compressedOut.write(encodeMsg);
        compressedOut.write("\n".getBytes());
        compressedOut.flush();
        compressedOut.close();
        pathList.add(qualifiedPath);
        ++nFiles;

        FileStatus fileStatus = fs.getFileStatus(qualifiedPath);
        System.out.println(fileStatus.getBlockSize());
        System.out.println(fileStatus.getReplication());
    } finally {
        compressedOut.close();
        IOUtils.cleanup(null, outputStream);
        CodecPool.returnCompressor(gzipCompressor);
    }
}

From source file:com.inmobi.conduit.distcp.tools.TestDistCp.java

License:Apache License

private static void touchFile(String path) throws Exception {
    FileSystem fs;/*ww  w  . j  a v a  2 s  .c  o m*/
    DataOutputStream outputStream = null;
    GzipCodec gzipCodec = ReflectionUtils.newInstance(GzipCodec.class, getConfigurationForCluster());
    Compressor gzipCompressor = CodecPool.getCompressor(gzipCodec);
    OutputStream compressedOut = null;
    try {
        fs = cluster.getFileSystem();
        final Path qualifiedPath = new Path(path).makeQualified(fs);
        final long blockSize = fs.getDefaultBlockSize() * 2;
        outputStream = fs.create(qualifiedPath, true, 0, (short) (fs.getDefaultReplication() * 2), blockSize);
        compressedOut = gzipCodec.createOutputStream(outputStream, gzipCompressor);
        compressedOut.write(new byte[FILE_SIZE]);
        compressedOut.write("\n".getBytes());
        compressedOut.flush();
        //outputStream.write(new byte[FILE_SIZE]);
        pathList.add(qualifiedPath);
    } finally {
        compressedOut.close();
        IOUtils.cleanup(null, outputStream);
        CodecPool.returnCompressor(gzipCompressor);
    }
}

From source file:com.inmobi.conduit.distcp.tools.TestIntegration.java

License:Apache License

private void createFileForAudit(String... entries) throws IOException {
    for (String entry : entries) {
        OutputStream out = fs.create(new Path(root + "/" + entry));
        GzipCodec gzipCodec = ReflectionUtils.newInstance(GzipCodec.class, new Configuration());
        Compressor gzipCompressor = CodecPool.getCompressor(gzipCodec);
        OutputStream compressedOut = null;
        try {/*w w w.  j  a  v  a  2s  . c o  m*/
            compressedOut = gzipCodec.createOutputStream(out, gzipCompressor);
            Message msg = new Message((root + "/" + entry).getBytes());
            long currentTimestamp = new Date().getTime();
            AuditUtil.attachHeaders(msg, currentTimestamp);
            byte[] encodeMsg = Base64.encodeBase64(msg.getData().array());
            compressedOut.write(encodeMsg);
            compressedOut.write("\n".getBytes());
            compressedOut.write(encodeMsg);
            compressedOut.write("\n".getBytes());
            /* add a different timestamp to the msg header.
             * The generation time stamp falls in diff window
             * Each file will be having two counters
             */
            AuditUtil.attachHeaders(msg, currentTimestamp + 60001);
            encodeMsg = Base64.encodeBase64(msg.getData().array());
            compressedOut.write(encodeMsg);
            compressedOut.write("\n".getBytes());
            compressedOut.flush();
        } finally {
            compressedOut.close();
            out.close();
            CodecPool.returnCompressor(gzipCompressor);
        }
    }
}

From source file:com.inmobi.conduit.distcp.tools.TestIntegration.java

License:Apache License

private void createFiles(String... entries) throws IOException {
    for (String entry : entries) {
        OutputStream out = fs.create(new Path(root + "/" + entry));
        GzipCodec gzipCodec = ReflectionUtils.newInstance(GzipCodec.class, new Configuration());
        Compressor gzipCompressor = CodecPool.getCompressor(gzipCodec);
        OutputStream compressedOut = null;
        try {//from   w  w w. j a v a 2 s.c  o  m
            compressedOut = gzipCodec.createOutputStream(out, gzipCompressor);
            compressedOut.write((root + "/" + entry).getBytes());
            compressedOut.write("\n".getBytes());
        } finally {
            compressedOut.close();
            out.close();
            CodecPool.returnCompressor(gzipCompressor);
        }
    }
}

From source file:com.inmobi.messaging.consumer.util.FileUtil.java

License:Apache License

public static void gzip(Path src, Path target, Configuration conf) throws IOException {
    FileSystem fs = FileSystem.get(conf);
    FSDataOutputStream out = fs.create(target);
    GzipCodec gzipCodec = (GzipCodec) ReflectionUtils.newInstance(GzipCodec.class, conf);
    Compressor gzipCompressor = CodecPool.getCompressor(gzipCodec);
    OutputStream compressedOut = gzipCodec.createOutputStream(out, gzipCompressor);
    FSDataInputStream in = fs.open(src);
    try {//  ww  w . j a  va  2s.  c om
        IOUtils.copyBytes(in, compressedOut, conf);
    } catch (Exception e) {
        LOG.error("Error in compressing ", e);
    } finally {
        in.close();
        CodecPool.returnCompressor(gzipCompressor);
        compressedOut.close();
        out.close();
    }
}

From source file:com.jeffy.hdfs.compression.FileCompressor.java

License:Apache License

/**
 * @param args/*from   ww  w.ja  v  a  2 s  .co m*/
 * ??????
 * ????
 * @throws IOException 
 */
public static void main(String[] args) throws IOException {
    Configuration conf = new Configuration();
    //??
    CompressionCodecFactory factory = new CompressionCodecFactory(conf);
    // For example for the 'GzipCodec' codec class name the alias are 'gzip' and 'gzipcodec'.
    CompressionCodec codec = factory.getCodecByName(args[0]);
    if (codec == null) {//???
        System.err.println("Comperssion codec not found for " + args[0]);
        System.exit(1);
    }
    String ext = codec.getDefaultExtension();
    Compressor compressor = null;
    try {
        //?CodecPool?Compressor
        compressor = CodecPool.getCompressor(codec);
        for (int i = 1; i < args.length; i++) {
            String filename = args[i] + ext;
            System.out.println("Compression the file " + filename);
            try (FileSystem outFs = FileSystem.get(URI.create(filename), conf);
                    FileSystem inFs = FileSystem.get(URI.create(args[i]), conf);
                    InputStream in = inFs.open(new Path(args[i]))) {//
                //Compressor?
                CompressionOutputStream out = codec.createOutputStream(outFs.create(new Path(filename)),
                        compressor);
                //?????
                IOUtils.copy(in, out);
                out.finish();//?finish()?flush()???
                compressor.reset(); //???????java.io.IOException: write beyond end of stream
            }
        }
    } finally {//?Compressor??
        CodecPool.returnCompressor(compressor);
    }
}

From source file:crunch.MaxTemperature.java

License:Apache License

public static void main(String[] args) throws Exception {
        String codecClassname = args[0];
        Class<?> codecClass = Class.forName(codecClassname);
        Configuration conf = new Configuration();
        CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(codecClass, conf);
        /*[*/Compressor compressor = null;
        try {//from   w ww .  j av a 2s .  c  o m
            compressor = CodecPool.getCompressor(codec);/*]*/
            CompressionOutputStream out = codec.createOutputStream(System.out, /*[*/compressor/*]*/);
            IOUtils.copyBytes(System.in, out, 4096, false);
            out.finish();
            /*[*/} finally {
            CodecPool.returnCompressor(compressor);
        } /*]*/
    }