hadoop生态系统学习之路(四)MR支持的输入文件格式以及输出文件格式

释放双眼,带上耳机,听听看~!

在上一篇博文中,笔者执行mr时,输入文件是.txt格式的。其实,还可以是压缩格式。
为什么要使用压缩格式呢?文件压缩可以减少存储文件所需要的磁盘空间,并加速数据在网络和磁盘上的传输。
然后,MR又是怎么判断你的输入目录中的文件是压缩还是非压缩的呢?MR通过CompressionCodecFactory来推断CompressionCodec时,如果输入文件是压缩的,那么在根据文件扩展名推断出相应的codec后,MapReducer会在读取文件时自动解压缩文件。
另外,还可以指定MR作业的输出为压缩格式,代码如下:


1
2
3
4
1//将reduce输出文件压缩.gz
2 FileOutputFormat.setCompressOutput(job, true);  //job使用压缩  
3 FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class); //设置压缩格式
4

hdfs支持多种压缩格式,不过.gz这种格式应该是比较常用的。
下面,我们来试试。
首先,在hdfs中准备压缩文件,如下:
然后,执行yarn jar mr-demo-0.0.1-SNAPSHOT-jar-with-dependencies.jar /test/input /test/output,运行完毕后,查看输出目录,可以看到:
由于我指定了两个reducer,所以会产生两个压缩文件。
好了,关于hdfs的压缩格式就粗略的说说了,大家如果想使用其它的压缩格式,可以去查阅下相关的资料。

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MongoDB最简单的入门教程之二 使用nodejs访问MongoDB

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索