常见的压缩格式.PPT

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
常见的压缩格式

Hadoop I/O By ShiChaojie index 1 2 3 4 数据完整性 压缩 序列化 基于文件的数据结构 Introduction 所谓I/O,通俗的讲就是:利用接口等处理不同输入输出信息。 Hadoop自带一套原子操作用于数据I/O。其中一些技术比较常用,如数据完整性保持与压缩。 另一些则是基于Hadoop工具或者API,它们所形成的构建模块可用于开发分布式系统,比如序列化操作和在盘(on-disk)数据结构。 对于多达几个TB的数据集,这些方法特别值得关注。 数据完整性 目的: 用户希望系统在存储和处理数据时,数据不会有任何损失 或丢失。 现实: Hadoop对硬件要求不高,硬件故障。 系统需要处理的数据达到Hadoop能够处理的极限时,数 据被破坏的概率还是很高的 方案: 引入校验和(checksum)的概念:在数据第一次引入系 统时计算效验和通过不可靠通道传输时再次计算校验和。 校验和无法修复数据,因此推荐使用ECC内存。 CRC-32(循环冗余校验) 数据完整性—HDFS HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和。它针对每个由io.bytes.per.checksum指定字节的数据计算校验和。(512Bytes CRC32) datanode负责在验证收到数据后存储数据及其校验和。 客户端从datanode读取数据时,也会验证校验和,将它们与datanode中存储的校验和进行比较。 此外,每个datanode也会在后台线程中运行一个DataBlockScanner,定期验证存储在这个datanode上所有的数据块。 HDFS文件系统存储着每个数据块的副本,通过复制完好的数据副本可以修复损坏的数据块。 数据完整性—LocalFileSystem Hadoop的LocalFileSystem执行客户端的校验和验证。当写入名为filename的文件时,文件系统客户端会明确地在包含每个文件块校验和同一个目录内新建一个名为.filename.crc 的隐藏文件。 就像HDFS一样,文件块的大小由属性io.bytes.per.checksum控制,控制,默认为512bytes。 在读取文件时需要验证校验和,检测到错误,LocalFileSystem将抛出一个ChecksumException异常。 校验和的计算代价是相当低的。 数据完整性—ChecksumFileSystem LocalFileSystem通过ChecksumFileSystem完成校验,有了该类,其他文件系统(无校验和系统)加入校验和就变的相当简单,ChecksumFileSystem类继承自FileSystem类。一般用法如下: Configuration conf = … FileSystem fs = new RawLocalFileSystem(); Fs.initialize(null , conf); 压缩 压缩的好处:可以减存储文件所需要的磁盘空间;可以加速数据在网络和磁盘上的传输。 常见的压缩格式: 压缩-codec Codec实现了一种压缩-解压缩算法。Hadoop中,一个对CompressionCodec接口的实现代表一个codec。所以GzipCodec包装了gzip的压缩和解压缩算法。 Hadpoop实现的codec: 压缩-CompressionCodec CompressionCodec接口包含两个函数,可以用于压缩和解压数据。 对写入输出数据流的数据进行压缩,可用createOutputStream(OutputStream out)方法在底层的数据流中对需要以压缩格式写入在此之前尚未压缩的数据新建一个CompressionOutputStream对象。 对输入数据流中读取的数据进行解压缩的时候,调用createInputStream(InputStream in)获取CmpressionInputStream,通过该方法从底层数据流读取解压缩后的数据。 压缩-CompressionCodec 该程序压缩从标准输入读取的数据,然后将其写到标准输出。 压缩-CompressionCodecFactory 在读取一个压缩文件时,通常可以通过文件拓展名推断需要使用哪个codec。 若文件以.gz结尾,则可以用GzipCodec来读取。 通过使用getCodeC()方法, CompressionCodecFactory提供了一种方法将文件名映射到一个CompressionCodec,改方法读取文件的Path对象作为参数。 压缩-原生类库 为了性能,最好使用“原生”

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档