❶ 衡量压缩技术性能的重要指标
衡量压缩技术性能的重要指标是压缩比、速度、恢复效果。
数据压缩的应用:
一种非常简单的压缩方法是行程长度编码,这种方法使用数据及数据长度这样简单的编码代替同样的连续数据,这是无损数据压缩的一个实例。这种方法经常用于办公颂型计算机以更好地利用磁盘顷樱滑空间、或者更好地利用计算机网络中的带宽。
对于电子表格、文本、可执行文件等这样的符号数据来说,无损是一个非常关键的要求,因为除了一些有限的情况,大多数情况下即使是一个数据位的变化都是无法接受的。对于视频和音频数据,只要不损失数据的重要部分一定程度的质量下降是可以接受的。
❷ Hadoop 压缩从理论到实战
在大数据领域,无论上层计算引擎采用的是什么,在存储过程中,压缩都是一个避不开的问题。合适的压缩选择可以降低存储成本、减少网络传输I/O。而错误的压缩选择则可能让 cpu 负荷达到瓶颈、降低并发度等等,所以是否选择压缩、选择什么压缩格式在大数据存储环节中都是一个至关重要的问题。
点评:压缩时间和压缩率之间的取舍本质上是 cpu 资源和存储资源的取舍。是否需册猛要支持分片也不是绝对的,如果单个文件大小均小于 splitSize,则没必要支持分片。
点评:一阶段考虑尽可能支持分片(单个文件大于 splitSize 时)。二阶段考虑尽可能快的压悄姿基缩速度。三阶段根据是作为长期归档(几乎不用)or 作为下一作业输入,考虑尽可能高的压缩能力 or 支持分片。
点评:有两点需要注意,第一点:这里的速度和压缩率没有具体测试数据,而是给出了一个模糊的表达。因为即使具体测试了速度和压缩率,也会因数据不同而结果有很大的差异。后面会给出测试的脚本,大家可以结合自己的表数据自行测试。第二点:有些压缩格式性能参数很相似,为什么 Hadoop 中要搞这么多种?较为直观的一个原因是:不同存储格式支持的压缩是不一样的,比如 orc 存储格式只支持 zlib 和 snappy 两种压缩 [8] ,parquet 虽然支持很多压缩格式,但是不支持 bzip2 [7]
以下摘自《Hadoop The Definitive Guide》
重点阅读文中加粗片段。大致意思是:因为 gzip 压缩格式使用的 DEFLATE 压缩算法没办法做到随机任意读取,必须同步顺序读取。也就意味着没办法为每一个 block 创建一个分片(split),然后为该分片启一个 mapper 去读取数据。所以即使 gzip 文件有很多 block,MR 程序也只会启动一个 Mapper 去读取所有的 block。也即 gzip 这种压缩格式不支持分片。相反的,如果压缩格式使用的算法支持随机任意读取,那么就可以为每一个 block 创建一个分片,同时启动一个 mapper 去读取数据,这样有多少个 block 就有多少个分片,就有多少个 mapper ,这些 mapper 并行读取数据,效率大大提升。上述涉及到几个小概念,接下来分别进行详述。
一句话总结: zlib、gzip 在大数据语境中都是一种 压缩格式 ,他们使用相同的 压缩算法: DEFLATE,DefaultCodec 是 zlib 使用的 编解码器 ,Gzip 使用的编解码器是 GzipCodec
我们知道,Hadoop 在任务切分时,是按照文件的粒度进行的。即一个文件一个文件启谨进行切分。而每一个文件切分成几块,取决于 splitSize 的大小。比如两个文件,第一个文件 300M,第二个文件150M。分片大小是128M,那么对于第一个文件将会切分成3片(128M,128M,44M),第二个文件会切分成2片(128M,22M)。共计5片。所以分片数量除了由文件数决定,另一个决定因素就是 splitSize 即分片大小。
splitSize 如何计算?
几个前提:
影响参数:
接下来进行实际验证:
经过了 2.4.2 中的一系列实验,验证了一个结论:当一个输入格式支持分片时,mapper 数量是无限制的,反之 mapper 数量小于等于文件的数量。所以我们可以通过设置参数来试图调小分片大小来增加 mapper 数量看其上限是否等于文件数量即可。假如输入的文件个数只有一个,那么当 mapper 数量大于1的时候,说明该输入格式是支持分片的。
大家可以根据自己数据集和想测试的压缩和存储格式自行修改脚本。通过以上脚本跑出来的结果如下:
由 2.1 中评价压缩的三项指标可知,压缩率、压缩/解压速度、是否支持分片是衡量压缩最重要的三项指标。3.1.1小节中只对压缩率进行了测试。压缩/解压速度可以通过跑一些查询语句进一步测试。这里就不展开测试了。业界中常用的存储格式一般是 parquet, orc,所以上面测试除了纯文本只测试了这两种存储格式。
我们可以通过 hive> set io.compression.codecs; 来查看当前Hadoop集群支持的压缩,在公司的集群中查询得到的结果是:
可以看到 lzo 有两种编解码器: LzoCodec 和 LzopCodec。他们之间有什么区别呢?
如果你阅读过关于 Hadoop 压缩的文章,应该可以看到,绝大多数文章中对于 snappy 是否支持分片都是直接给出的否定的答案。 CDH 的文档中也指出来 snappy 是不支持分片的。
看文中加粗片段,虽然 snappy 本身是不支持分片的,但是如果 snappy 存储在一些特定的存储格式比如 SequenceFile 或者 Avro 中,那么是可以支持分片的。也就是说 snappy 是否支持分片是分情况讨论的。不能说使用了 snappy 压缩就一定不支持分片。前面提到了,业界中常用的存储格式一般是 parquet 或者 orc,而上面 CDH 的文章中恰恰没有提到 parquet 和 orc 是否支持,接下来以 parquet 为例,进行测试。测试内容即为 parquet + snappy 组合,是否支持分片。
首先准备数据,因为之前做压缩率测试,已经有了 parquet + snappy 文件了,这里直接拿来用。
一共3个输入文件,启了6个mapper,说明输入文件是可以分片的。即 parquet + snappy 的组合是支持分片的。在《Hadoop The Definitive Guide》中也对 parquet 是否支持分片有说明:
以 maprece.output.fileoutputformat.compress.codec 为例,这个参数可以在三个地方配置:
那么当三者都设置时,以哪个为准呢?按照经验来看,一定是粒度小的优先级大于粒度大的优先级。经过测试也验证了这种猜测。即:表级别 > hive > hadoop
初学者往往容易混淆存储格式和压缩格式之间的关系,其实二者是完全独立的。如果完整的阅读了该篇文章,应该已经消除了这一块理解对误区。这里总结一下:比如 parquet, orc,他们都是常见的 存储格式 。是否使用压缩,使用何种压缩都是可以设置的。而 zlib、gzip、lzo、lz4、snappy 等等这些都是常见的 压缩格式 ,他们既可以依附于某些 存储格式 ,比如之前提到的 parquet + snappy,orc + zlib 等等。也可以脱离特定的 存储格式 ,比如纯文本文件进行压缩,text + parquet, text + bzip2 等等。
❸ 衡量数据压缩方法的指标有哪些
衡量数据压缩方法的指标:压缩比、速度、效果。
数据压缩是指在不丢失信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率的一种技术方法。或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空间。数据压缩包括有损压缩和无损压缩。
数据压缩分为两类,有三种分法:
1、即时压缩和非即时压缩
即时压缩是将语音信号转化为数字信号,同时进行压缩,然后即时通过Internet传送出去。即时压缩一般应用在影像、声音数据的传送中。
非即时压缩是在需要的情况下才进行,没有即时性。非即时压缩一般不需要专门的设备,直接在计算机中安装并使用相应的压缩软件即可。
2、数字压缩和文件压缩
数字压缩是专指一些具有时间性的数据,这些数据常常是即时采集、即时处理或传输的。
文件压缩是专指对将要保存在磁盘等物理介质的数据进行压缩,如一篇文章数据、一段音乐数据、一段程序编码数据等的压缩。
3、无损压缩与有损压缩
无损压缩利用数据的统计冗余进行压缩,所以无损压缩的压缩比一般比较低。这类方法广泛应用于文本数据、程序和特殊应用场合的图像数据等需要精确存储数据的压缩。
有损压缩方法利用了人类视觉、听觉对图像、声音中的某些频率成分不敏感的特性,允许压缩的过程中损失一定的信息。有损压缩广泛应用于语音、图像和视频数据的压缩。
拓展资料:数据压缩的应用:
一种非常简单的压缩方法是行程长度编码,这种方法使用数据及数据长度这样简单的编码代替同样的连续数据,这是无损数据压缩的一个实例。这种方法经常用于办公计算机以更好地利用磁盘空间、或者更好地利用计算机网络中的带宽。对于电子表格、文本、可执行文件等这样的符号数据来说,无损是一个非常关键的要求,因为除了一些有限的情况,大多数情况下即使是一个数据位的变化都是无法接受的。
对于视频和音频数据,只要不损失数据的重要部分一定程度的质量下降是可以接受的。通过利用人类感知系统的局限,能够大幅度地节约存储空间并且得到的结果质量与原始数据质量相比并没有明显的差别。这些有损数据压缩方法通常需要在压缩速度、压缩数据大小以及质量损失这三者之间进行折中。
有损图像压缩用于数码相机中,大幅度地提高了存储能力,同时图像质量几乎没有降低。用于DVD的有损MPEG-2编解码视频压缩也实现了类似的功能。
在有损音频压缩中,心理声学的方法用来去除信号中听不见或者很难听见的成分。人类语音的压缩经常使用更加专业的技术,因此人们有时也将“语音压缩”或者“语音编码”作为一个独立的研究领域与“音频压缩”区分开来。不同的音频和语音压缩标准都属于音频编解码范畴。例如语音压缩用于因特网电话,而音频压缩被用于CD翻录并且使用MP3播放器解码。
理论压缩的理论基础是信息论(它与算法信息论密切相关)以及率失真理论,这个领域的研究工作主要是由Claude Shannon奠定的,他在二十世纪四十年代末期及五十年代早期发表了这方面的基础性的论文。Doyle和Carlson在2000年写道数据压缩“有所有的工程领域最简单、最优美的设计理论之一”。密码学与编码理论也是密切相关的学科,数据压缩的思想与统计推断也有很深的渊源。
许多无损数据压缩系统都可以看作是四步模型,有损数据压缩系统通常包含更多的步骤,例如它包括预测、频率变换以及量化。
❹ 衡量压缩技术好坏的标准有哪4个
4、衡量数据压缩技术好坏的指标是什么? 三、数据压缩方法 ? 1、按解码后数据...有损压缩广泛应用于语音、图像和视频数据的压 缩,如JPEG(静态图像压缩标准
❺ 衡量数据压缩技术性能的重要指标是
衡量数据压缩技术性能好坏的重要指标有三个:数据压缩比,是派陵简指数据被压缩的比例;实现压缩的算法要简单,就是数据压缩速度快;数据恢复效果要好,要尽可能地完全恢复原始数据。
数据压缩技术,就是用最少的数码来表示信号的技术。由于数字化的多媒体信息尤其是数字视频、音频信号的数据量特别庞大;如果不对其进行有效的压缩就难以得到实际的应用。因此,数据压尘裤缩技术已成为当今数字通信、广播、存储和多媒体娱乐中的一项关键的共性技术。
冗余度压缩是一个可逆过程,因此叫做无失真压缩,或称保持型编码。数据间尤其是相邻的数据之间,常存在着相关性。如图片中常常有色彩均匀的背景,电视信号的相邻两帧之间可能只有少量的变化景物是不同的,声音信号有时具有一定的规律性和周期性等等。
❻ 数据压缩
数据压缩技术主要研究数据的表示、传输和转换方法,目的是减少数据所占据的存储空间和缩短数据传输时所需要的时间。
衡量数据压缩的3个主要指标:一是压缩前后所需的信息存储量之比要大;二是实现压缩的算法要简单,压缩、解压缩速度快,要尽可能做到实时压缩和解压缩;三是恢复效果要好,要尽可能完全恢复原始数据。
数据压缩主要应用于两个方面。一是传输:通过压缩发送端的原始数据,并在接收端进行解压恢复,可以有效地减少传输时间和增加信道带宽。二是存储:在存储时压缩原始数据,在使用时进行解压,可大大提高存储介质的存储量。
数据压缩按照压缩的失真度分成两种类型:一种叫作无损压缩,另一种叫作有损压缩。
无损压缩是指使用压缩后的数据进行重构(或者叫作还原、解压缩),重构后的数据与原来的数据完全相同;无损压缩用于要求重构的信号与原始信号完全一致的场合。一个很常见的例子是磁盘文件的压缩。根据目前的技术水平,无损压缩算法一般可以把普通文件的数据压缩到原来的1/4~1/2。一些常用的无损压缩算法有霍夫曼(Huffman)算法、算术算法、游程算法和LZW(Lenpel-Ziv & Welch)压缩算法。
1)霍夫曼算法属于统计式压缩方法,其原理是根据原始数据符号发生的概率进行编码。在原始数据中出现概率越高的符合,相应的码长越短,出现概率越少的符合,其码长越长。从而达到用尽可能少的符号来表示原始数据,实现对数据的压缩。
2)算术算法是基于统计原理,无损压缩效率最高的算法。即将整段要压缩的数据映射到一段实数半封闭的范围[0,1)内的某一区段。该区段的范围或宽度等于该段信息概率。即是所有使用在该信息内的符号出现概率全部相乘后的概率值。当要被编码的信息越来越长时,用来代表该信息的区段就会越来越窄,用来表示这个区段的位就会增加。
3)游程算法是针对一些文本数据特点所设计的压缩方法。主要是去除文本中的冗余字符或字节中的冗余位,从而达到减少数据文件所占的存储空间。压缩处理流程类似于空白压缩,区别是在压缩指示字符之后加上一个字符,用于表明压缩对象,随后是该字符的重复次数。本算法具有局限性,很少单独使用,多与其他算法配合使用。
4)LZW算法的原理是用字典词条的编码代替在压缩数据中的字符串。因此字典中的词条越多,压缩率越高,加大字典的容量可以提高压缩率。字典的容量受计算机的内存限制。
有损压缩是指使用压缩后的数据进行重构,重构后的数据与原来的数据有所不同,但不影响人对原始资料表达的信息造成误解。有损压缩适用于重构信号不一定非要和原始信号完全相同的场合。例如,图像和声音的压缩就可以采用有损压缩,因为其中包含的数据往往多于我们的视觉系统和听觉系统所能接收的信息,丢掉一些数据而不至于对声音或者图像所表达的意思产生误解,但可大大提高压缩比。
❼ 衡量压缩技术好坏的标准不包括
衡量压缩技术好坏的标准不包括:去除噪声。
评价一种数据压缩技袜枣尺术的性能好坏主要有3个关键的指标:压缩比、图像质量、压缩和解压的速度。希望压缩比要大,即压缩前后所需的信息存储量之比要大;
恢复效果要好,尽可能地恢复原始数据;实现压缩的算法要简单,压缩、解压速度快,尽可能地做到实时压缩解压。除此之外还要考虑压缩算法所需要的软件和硬件。
一般而言,多媒体数据中存在的数据冗余类型主要有以下几种。
(1)空间冗余
在同一幅图像中告高,规则物体和规则背景的表面物理特性具有相关性,这些相关性的光成像结果在数字化图像中就表现为数据冗余。
(2)时间冗余
时间冗余反映在图像序列中就是相邻帧图像之间有较大的相关性,一帧图像中的某物体或场景可以由其他帧图像中的物体或场景重构出来。音频的前后样值之间也同样有时间冗余。
(3)信息熵冗余
信源编码时,当分配给第i个码元类的比特数b(yi)=.lgpi时,才能使编码后单位数据量等于其信源熵,即达到其压缩极限。但实岩败际中各码元类的先验概率很难预知,比特分配不能达到最佳。实际单位数据量d>H(S),即存在信息冗余熵。
(4)视觉冗余
人眼对于图像场的注意是非均匀的,人眼并不能察觉图像场的所有变化。事实上人类视觉的一般分辨能力为26灰度等级,而一般图像的量化采用的是28灰度等级,即存在着视觉冗余。
(5)听觉冗余
人耳对不同频率的声音的敏感性是不同的,并不能察觉所有频率的变化,对某些频率不必特别关注,因此存在听觉冗余。
(6)其他冗余
包括结构冗余、知识冗余等。
❽ 图像压缩技术的优劣的三个指标
压缩比:压缩比是指压缩过程中输入数据量和输出数据量之比
峰值信噪比:峰值信噪比用来衡量与原始图像相比较的重建图像的质量
时间复杂度:时间复杂度是指图像压缩算法编解码的速度
❾ 衡量数据压缩技术性能好坏的重要指标
衡量数据压缩技术性能好坏的重要指标是