2020-12-31

博客园Logo
首页
新闻
博问
专区
闪存
班级

代码改变世界
搜索
注册
登录
大数据学习与分享
博客园
首页
新随笔
联系
订阅
管理
随笔 - 54 文章 - 0 评论 - 10
Hadoop支持的压缩格式对比和应用场景以及Hadoop native库

对于文件的存储、传输、磁盘IO读取等操作在使用Hadoop生态圈的存储系统时是非常常见的,而文件的大小等直接影响了这些操作的速度以及对磁盘空间的消耗。

此时,一种常用的方式就是对文件进行压缩。但文件被压缩之后,在读取数据时要先进行解压缩,会对CPU造成一定负担。

因此,在实际生产中,是否对数据进行压缩以及采用哪种方式进行压缩显得尤为重要。需要综合考虑压缩和解压缩数据所需的资源、磁盘IO,以及在网络传输数据所需带宽以及集群的性能和文件的特性等。它至少能带来以下好处:

减少磁盘存储空间

降低IO(包括磁盘和网络IO),加快数据在磁盘和网络中的传输速度,提升性能

首先来看一下常见的Hadoop压缩格式一览表,以及详细介绍:

snappy压缩

优点:高速压缩速度和合理的压缩率;支持Hadoop native库。

缺点:不支持split;压缩率比gzip要低;Hadoop本身不支持,需要安装;linux系统下没有对应的命令。

应用场景:当MapReduce作业的map输出的数据量比较大的时候,作为map到reduce的中间数据的压缩格式;或者作为一个MapReduce作业的输出和另外一个MapReduce作业的输入。

lzo压缩

优点:压缩/解压速度也比较快,合理的压缩率;支持split,是Hadoop中最流行的压缩格式;支持Hadoop native库;可以在linux系统下安装lzop命令,使用方便。

缺点:压缩率比gzip要低一些;hadoop本身不支持,需要安装;在应用中对lzo格式的文件需要做一些特殊处理(为了支持split需要建索引,还需要指定inputformat为lzo格式)。

应用场景:一个很大的文本文件,压缩之后还大于200M以上的可以考虑,而且单个文件越大,lzo优点越明显。

gzip压缩

优点:压缩率比较高,而且压缩/解压速度也比较快;Hadoop本身支持,在应用中处理gzip格式的文件就和直接处理文本一样;有Hadoop native库;大部分linux系统都自带gzip命令,使用方便。

缺点:不支持split

应用场景:当每个文件压缩之后在130M以内的,都可以考虑用gzip压缩格式。比如每天的日志压缩成一个gzip文件,运行MapReduce程序的时候通过多个gzip文件达到并发。对于处理这些文件的程序(如Hive、流、MapReduce程序)完全和文本处理一样,压缩之后原来的程序不需要做任何修改。

bzip2压缩

优点:支持split;具有很高的压缩率,比gzip压缩率都高;Hadoop本身支持,但不支持native;在linux系统下自带bzip2命令,使用方便。

缺点:压缩/解压速度慢;不支持native。

应用场景:适合对速度要求不高,但需要较高的压缩率的场景。可以作为MapReduce作业的输出格式;输出之后的数据比较大,处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况;对单个很大的文本文件想压缩减少存储空间,同时又需要支持split,而且兼容之前的应用程序(即应用程序不需要修改)的情况。

在介绍上述压缩格式时,强调了它们是否对Hadoop native库的支持,因为是否支持Hadoop native库对性能产生巨大影响。

Hadoop是使用Java语言开发的,但是有些操作并不总适合使用Java,所以才引入了native库即本地库的概念。通过使用本地库,Hadoop可更加高效的执行某些操作。

Hadoop带有预置的32位和64位Linux的本地压缩库。

本地库通过Java系统属性java.library.path来使用。Hadoop的脚本在bin目录中已经设置好这个属性,但如果不使用该脚本,则需要在应用中设置属性。

默认情况下,Hadoop会在它运行的平台上查找本地库,如果发现就自动加载,这意味着不需要修改任何配置就可以使用本地库。如果想禁用本地库(比如需要调试压缩相关问题),则将属性hadoop.native.lib设置为false,即可确保内置的Java等同内置实现 被使用(如果它们可用的话)。

推荐文章:
必须掌握的分布式文件存储系统—HDFS
关于HDFS应知应会的几个问题
NameNode调优
详解MapReduce

关注微信公众号:大数据学习与分享,获取更对技术干货

分类: HDFS, Hadoop
标签: Hadoop支持的压缩格式, 分布式存储系统, 大数据, Hadoop
好文要顶 关注我 收藏该文
大数据学习与分享
关注 - 0
粉丝 - 21
+加关注
0 0
« 上一篇: 自适应查询执行:在运行时提升Spark SQL执行性能
posted @ 2020-12-31 11:12 大数据学习与分享 阅读(41) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
登录后才能发表评论,立即 登录 或 注册, 访问 网站首页
写给园友们的一封求助信
【推荐】News: 大型组态、工控、仿真、CADGIS 50万行VC++源码免费下载
【推荐】博客园x丝芙兰-圣诞特别活动:圣诞选礼,美力送递
【推荐】新一代 NoSQL 数据库,Aerospike专区新鲜入驻

相关博文:
· HadoopYARN
· [Hadoop]Zookeeper
· HadoopMapReduce
· hadoopnamenode
· HadoopHDFS
» 更多推荐…

最新 IT 新闻:
· 加速的B站,滞后的社区治理
· 天猫回应被市场监管总局处罚:全面整改所涉问题
· 携程CEO孙洁发表跨年署名文章:2020年每一位旅业人都是英雄
· MIT研发出可通过光让药物直接作用于靶子区域的方法:且无副作用
· 蛋壳公寓App下架全部房源 行业人士:腾讯或成为接盘方
» 更多新闻…
公告
昵称: 大数据学习与分享
园龄: 2个月
粉丝: 21
关注: 0
+加关注
< 2020年12月 >
日 一 二 三 四 五 六
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9
搜索

找找看

谷歌搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
我的标签
大数据(37)
Spark(19)
大数据计算引擎(15)
Hadoop(12)
分布式存储系统(11)
内存计算(7)
Java(7)
Kafka(6)
Hive(5)
HBase(5)
更多
随笔分类
Canal(1)
Hadoop(8)
HBase(5)
HDFS(4)
Hive(5)
Java(7)
Kafka(3)
Linux(1)
MapReduce(1)
Redis(2)
Scala(5)
Spark(18)
Yarn(1)
大数据(7)
大数据问题处理分析(1)
数据分析(3)
推荐系统(1)
随笔档案
2020年12月(16)
2020年11月(25)
2020年10月(13)
最新评论

  1. Re:学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合
    不错
    –DavidZuo
  2. Re:开发导致的内存泄露问题,运维小伙伴儿这样排查不背锅
    竟然不清理缓存数据,是要留着过年吗。
    –花落心语
  3. Re:开发导致的内存泄露问题,运维小伙伴儿这样排查不背锅
    你好棒哦!大佬!
    –网抑云患者
  4. Re:Databricks说的Lakehouse是什么?
    @爱吃甜品的女孩 你好,微信搜索公众号"大数据学习与分享",然后在后台回复合作或转载,添加微信,详聊~…
    –大数据学习与分享
  5. Re:Databricks说的Lakehouse是什么?
    老师您好,我是开源中国的内容志愿者李艳,想跟您聊聊内容合作,能否加下您的微信或qq给您详细说明下
    –爱吃甜品的女孩
    阅读排行榜
  6. 监听MySQL的binlog日志工具分析:Canal(959)
  7. 九种常见的数据分析模型(777)
  8. Redis中的一致性哈希问题(602)
  9. 分布式流平台Kafka(455)
  10. 必须掌握的分布式文件存储系统—HDFS(441)
    评论排行榜
  11. 开发导致的内存泄露问题,运维小伙伴儿这样排查不背锅(2)
  12. Databricks说的Lakehouse是什么?(2)
  13. JVM内存管理和垃圾回收(2)
  14. 监听MySQL的binlog日志工具分析:Canal(2)
  15. 学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合(1)
    推荐排行榜
  16. 分布式流平台Kafka(3)
  17. Redis中的一致性哈希问题(2)
  18. Redis从入门到精通(2)
  19. 学好Spark/Kafka必须要掌握的Scala技术点(二)类、单例/伴生对象、继承和trait,模式匹配、样例类(case class)(1)
  20. 学好Spark/Kafka必须要掌握的Scala技术点(一)变量、表达式、循环、Option、方法和函数,数组、映射、元组、集合(1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值