但尽人事
莫问前程...

压缩hdfs文件java源码

hadoop2.7

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

  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

赞(0) 打赏
未经允许不得转载:马洪飞博客 » 压缩hdfs文件java源码
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

但尽人事,莫问前程

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏