如何创建商业网站,欧力虎网站建设,网站建设怎么选公司,顺德做pc端网站面试题来源#xff1a;
《大数据面试题 V4.0》
大数据面试题V3.0#xff0c;523道题#xff0c;679页#xff0c;46w字
可回答#xff1a;1#xff09;Hadoop常见的压缩算法有哪些#xff1f;
问过的一些公司#xff1a;网易云音乐(2022.11)#xff0c;阿里(2020.…面试题来源
《大数据面试题 V4.0》
大数据面试题V3.0523道题679页46w字
可回答1Hadoop常见的压缩算法有哪些
问过的一些公司网易云音乐(2022.11)阿里(2020.08)
参考答案
1、MapReduce支持的压缩方式
压缩格式hadoop自带算法文件扩展名是否可切分换成压缩格式后原来的程序是否需要修改DEFLATE是直接使用DEFLATE.deflate否和文本处理一样不需要修改Gzip是直接使用DEFLATE.gz否和文本处理一样不需要修改bzip2是直接使用bzip2.bz2是和文本处理一样不需要修改LZO否需要安装LZO.lzo是需要建索引还需要指定输入格式Snappy否需要安装Snappy.snappy否和文本处理一样不需要修改
2、压缩性能比较
压缩算法原始文件大小压缩文件大小压缩速度解压速度gzip8.3GB1.8GB17.5MB/s58MB/sbzip28.3GB1.1GB2.4MB/s9.5MB/sLZO8.3GB2.9GB49.3MB/s74.6MB/s
3、压缩方式选择
压缩方式选择时重点考虑压缩/解压缩速度、压缩率压缩后存储大小、压缩后是否可以支持切片。
Gzip压缩
优点压缩率比较高而且压缩/解压速度也比较快Hadoop本身支持在应用中处理Gzip格式的文件就和直接处理文本一样大部分Linux系统都自带Gzip命令使用方便。
缺点不支持Split。
应用场景当每个文件压缩之后在130M以内的1个块大小都可以考虑使用Gzip压缩格式。例如一天或者一个小时的日志压缩成一个Gzip文件。
Bzip2压缩
优点支持split具有很高的压缩率比gzip压缩率都高hadoop本身支持但不支持native在linux系统下自带bzip2命令使用方便。
缺点压缩/解压速度慢不支持native。
应用场景适合对速度要求不高但需要较高的压缩率的时候可以作为mapreduce作业的输出格式或者输出之后的数据比较大处理之后的数据需要压缩存档减少磁盘空间并且以后数据用得比较少的情况或者对单个很大的文本文件想压缩减少存储空间同时又需要支持split而且兼容之前的应用程序即应用程序不需要修改的情况 。
Lzo压缩
优点压缩/解压速度也比较快合理的压缩率支持split是hadoop中最流行的压缩格式可以在linux系统下安装lzop命令使用方便。
缺点压缩率比gzip要低一些hadoop本身不支持需要安装在应用中对lzo格式的文件需要做一些特殊处理为了支持split需要建索引还需要指定inputformat为lzo格式。
应用场景一个很大的文本文件压缩之后还大于200M以上的可以考虑而且单个文件越大lzo优点越越明显。
Snappy压缩
优点高速压缩速度和合理的压缩率。
缺点不支持split压缩率比gzip要低hadoop本身不支持需要安装
应用场景当Mapreduce作业的Map输出的数据比较大的时候作为Map到Reduce的中间数据的压缩格式或者作为一个Mapreduce作业的输出和另外一个Mapreduce作业的输入。
4、压缩位置选择
压缩可以在MapReduce作用的任意阶段启用 输入端采用压缩
在有大量数据并计划重复处理的情况下应该考虑对输入进行压缩。然而你无须显示指定使用的编解码方式。Hadoop自动检查文件扩展名如果扩展名能够匹配就会用恰当的编解码方式对文件进行压缩和解压。否则Hadoop就不会使用任何编解码器。
mapper输出端采用压缩
当map任务输出的中间数据量很大时应考虑在此阶段采用压缩技术。这能显著改善内部数据Shuffle过程而Shuffle过程在Hadoop处理过程中是资源消耗最多的环节。如果发现数据量大造成网络传输缓慢应该考虑使用压缩技术。可用于压缩mapper输出的快速编解码器包括LZO或者Snappy。
reducer输出采用压缩
在此阶段启用压缩技术能够减少要存储的数据量因此降低所需的磁盘空间。当mapreduce作业形成作业链条时因为第二个作业的输入也已压缩所以启用压缩同样有效。