Hadoop中的HDFS文件系统内部如何解压ZIP文件

kent7306 2014-11-07 03:44:21
一、命令不支持解压文件,这种就弃用了
二、那调用HDFS的java api,这段是从网上找来的关于HDFS文件解压的代码,

//使用文件扩展名来推断二来的codec来对文件进行解压缩
public static void uncompress1(String uri) throws IOException{
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(URI.create(uri), conf);

Path inputPath = new Path(uri);
CompressionCodecFactory factory = new CompressionCodecFactory(conf);
CompressionCodec codec = factory.getCodec(inputPath);
if(codec == null){
System.out.println("no codec found for " + uri);
System.exit(1);
}
String outputUri = CompressionCodecFactory.removeSuffix(uri, codec.getDefaultExtension());
InputStream in = null;
OutputStream out = null;
try {
in = codec.createInputStream(fs.open(inputPath));
out = fs.create(new Path(outputUri));
IOUtils.copyBytes(in, out, conf);
} finally{
IOUtils.closeStream(out);
IOUtils.closeStream(in);
}
}

但是不支持zip格式的文件解压,下面两行代码
CompressionCodecFactory factory = new CompressionCodecFactory(conf);
CompressionCodec codec = factory.getCodec(inputPath);

运行后codec为空,不能获取到压缩方式,English网站有位bro说hadoop不支持zip格式的压缩跟解压,不知道各位兄弟有没有解决这个问题的呢?
...全文
1922 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42443454 2018-11-26
  • 打赏
  • 举报
回复
兄弟,你解压zip解决了吗?我现在也要在hdfs解压zip然后在hdfs把解压后的zip文件保存,你发帖的我也试过了,都不行,貌似只能自定义inputformat,这个我有点hold不住啊...
kent7306 2014-11-12
  • 打赏
  • 举报
回复
引用 3 楼 fenghuangdesire 的回复:
问题(1) 对于MapReduce 上的输入文件,TextInputFormat会自动识别是否是压缩文件,并进行解压,所以可以与普通文件进行完全相同的处理,应该这四种压缩文件都支持(我只用过gzip)。 问题(2)当然可以,解压后形成文件可以作为MapReduce的输入。
非常感谢!
GeekStuff 2014-11-11
  • 打赏
  • 举报
回复
问题(1) 对于MapReduce 上的输入文件,TextInputFormat会自动识别是否是压缩文件,并进行解压,所以可以与普通文件进行完全相同的处理,应该这四种压缩文件都支持(我只用过gzip)。 问题(2)当然可以,解压后形成文件可以作为MapReduce的输入。
kent7306 2014-11-11
  • 打赏
  • 举报
回复
引用 1 楼 fenghuangdesire 的回复:
hadoop 支持的压缩方式有gzip,bzip2,LZO,Snappy,目前只支持这四种压缩方式。
这位兄弟,我还有两个问题: (1)是不是四种压缩文件都支持作为mapreduce文件,在map前进行解压。 (2)可以直接调用hadoop API在HDFS内进行解压成新的文件不?
GeekStuff 2014-11-08
  • 打赏
  • 举报
回复
hadoop 支持的压缩方式有gzip,bzip2,LZO,Snappy,目前只支持这四种压缩方式。

932

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云存储相关讨论
社区管理员
  • 云存储
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧