HDFS文件压缩
发布日期:2021-06-29 12:30:32 浏览次数:2 分类:技术文章

本文共 1326 字,大约阅读时间需要 4 分钟。

减少储存文件所需空间,还可以降低其在网络上传输的时间。

hadoop下各种压缩算法的压缩比压缩算法    原始文件大小  压缩后的文件大小    压缩速度    解压速度gzip         8.3GB        1.8GB           17.5MB/s   58MB/sbzip2        8.3GB        1.1GB           2.4MB/s    9.5MB/sLZO-best     8.3GB        2GB             4MB/s      60.6MB/sLZO          8.3GB        2.9GB           49.3MB/S   74.6MB/s
1.CodeC实现了一种压缩解压算法。Hadoop中压缩解压类实现CompressionCodec接口createOutputStream来创建一个CompressionOutputStream,将其压缩格式写入底层的流
2.本地库Hadoop使用java开发,但是有些需求和操作并不适合java,所以引入了本地库 native。可以高效执行某些操作。如使用gzip压缩解压时,使用本地库比使用java时间要缩短大约10%,解压达到50%。在hadoop_home/lib/native下hadoop配置文件core-site.xml可以设置是否使用native
Hadoop.native.lib
true
默认是启用本地库,如果频繁使用原生库做压解压任务,可以使用codecpool,通过CodecPool的getCompressor方法获得Compressor对象,需要传入Codec 。这样可以节省创建Codec对象开销 ,允许反复使用。
3.如何选择压缩格式Gzip 优点是压缩率高,速度快。Hadoop支持与直接处理文本一样。缺点不支持split,当文件压缩在128m内,都可以用gzipIzo  优点压缩速度快 合理的压缩率;支持split,是最流行的压缩格式。支持native库;缺点 比gzip压缩率低,hadoop本身不支持,需要安装;在应用中对lzo格式文件需要处理如 指定inputformat为lzo格式Snappy压缩 高速压缩率合理支持本地库。不支持split,hadoop不支持 要安装linux没有对应命令;当MR输出数据较大,作为到reduce数据压缩格式 Bzip2 支持split,很高的压缩率,比gzip高,hadoop支持但不支持native,linux自带命令使用方便。缺点压缩解压速度慢
4、使用哪种压缩和具体应用有关,对于巨大,没有储存边界的文件如日志 可以考虑1、储存不压缩的文件2、使用支持切分的储存格式 bzip23、在应用中切分,然后压缩,需要选择合理数据块的大小,以确定压缩后的块大小4、使用顺序文件SF,支持压缩和切分5、使用Avro数据文件,支持压缩切分并增加了编程语言可读写的优势对于大文件,不应该使用不支持切分的压缩格式,否则失去本地性,造成MR应用效率低下。

转载地址:https://bupt-xbz.blog.csdn.net/article/details/79171524 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Hadoop序列化
下一篇:MapFile

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月03日 05时16分50秒