压缩hdfs文件java源码

  • A+
所属分类:大数据

压缩hdfs文件java源码

源码来自网络,自己稍加修改;

  1. package com.hdfs;
  2. import java.io.IOException;
  3. import java.net.URI;
  4. import java.net.URISyntaxException;
  5. import javafx.scene.effect.Reflection;
  6. import org.apache.hadoop.conf.Configuration;
  7. import org.apache.hadoop.fs.FSDataInputStream;
  8. import org.apache.hadoop.fs.FSDataOutputStream;
  9. import org.apache.hadoop.fs.FileSystem;
  10. import org.apache.hadoop.fs.Path;
  11. import org.apache.hadoop.io.IOUtils;
  12. import org.apache.hadoop.io.compress.CompressionCodec;
  13. import org.apache.hadoop.io.compress.CompressionOutputStream;
  14. import org.apache.hadoop.util.ReflectionUtils;
  15. public class gzipHdfsFile {
  16.     static String hdfsFileDir = "";
  17.     public static void gzip(String codecClassName) throws Exception{
  18.         String gzipFileDir = hdfsFileDir.concat(".gz");
  19.         //压缩文件
  20.         Class<?> codecClass = Class.forName(codecClassName);
  21.         Configuration conf = new Configuration();
  22.         FileSystem fs = FileSystem.get(conf);
  23.         CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(codecClass,conf);
  24.         //指定压缩文件输出路径
  25.         FSDataOutputStream outputStream = fs.create(new Path(gzipFileDir));
  26.         //指定被压缩的文件路径
  27.         FSDataInputStream in = fs.open(new Path(hdfsFileDir));
  28.         //创建压缩输出流
  29.         CompressionOutputStream out = codec.createOutputStream(outputStream);
  30.         IOUtils.copyBytes(in, out, conf);
  31.         IOUtils.closeStream(in);
  32.         IOUtils.closeStream(out);
  33.     }
  34.     public static void main(String[] args) throws Exception {
  35.         //获取文件路径参数,生成输出路径参数
  36.         hdfsFileDir = args[0];
  37.         //执行文件压缩
  38.         gzip("org.apache.hadoop.io.compress.GzipCodec");
  39.     }
  40. }

压缩HDFS目录下的文件 利用java来进行

最后拷贝到hadoop集群上运行,运行命令

输入:文件名完整路径:/mahf/test.txt

输出:压缩后文件名完整路径:/mahf/test.txt.gz

hadoop jar gzipHdfsFile.jar 文件完整路径(包含文件名!)

例如:hadoop jar gzipHdfsFile.jar /mahf/test.txt

执行完生成文件:/mahf/test.txt.gz

  • QQ群二维码
  • 免费维皮恩账号赶紧来吧
  • weinxin
  • 微信公众号
  • 扫一扫关注"你不知道的iPhone技巧"
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: