Hadoop压缩测试代码
package com.niit.compress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.util.ReflectionUtils;
import java.io.*;
public class CompressedDemo {
//压缩方法
public static void compress() throws IOException, ClassNotFoundException {
File src = new File( "d:/access.log");
InputStream inputStream = new FileInputStream(src);
//反射机制
//CompressionCodec compressionCodec = CompressionCodec
String codeName = "org.apache.hadoop.io.compress.DefaultCodec";
Class<?> forName = Class.forName(codeName);
//再借助反射工具
CompressionCodec compressionCodec = (CompressionCodec) ReflectionUtils.newInstance(forName, new Configuration());
File dest =new File(src.getName()+ compressionCodec.getDefaultExtension());
OutputStream outputStream = new FileOutputStream(dest);
CompressionOutputStream codecOutputStream = compressionCodec.createOutputStream(outputStream);
//文件的复制
IOUtils.copyBytes(inputStream,codecOutputStream,4096,false);
//关闭资源
codecOutputStream.close();
outputStream.close();
inputStream.close();
}
public static void main(String[]args) throws IOException, ClassNotFoundException {
compress();
}
}