做有温度的教育!
全国统一咨询热线:400-803-9399
北京
校区
新闻资讯> 技术分享> hadoop的I/O操作

hadoop的I/O操作

时间:2018-10-31
浏览:5124
发布:甲骨文华育兴业
赞:547

今天我们来学习大数据开发中基于hadoop的I/O操做,在开始学习之前我们先来看看他的意义是什么!


  一、概述

  hadoop自带一套原子操作用于I/O操作,如数据完整性和压缩。


  二、数据完整性

  hadoo用户希望系统在存储和处理数据时不会丢失或损坏任何数据,这样数据的完整性就显得尤为重要。HDFS会对写入的所有数据计算校验和并在读取数据时验证校验和,其实HDFS存储着每个数据块的复本,一旦校验数据损坏,就将损坏的数据复制到另一个datanode,然后将这个数据的复本复制到当前需要读取的datanode上,一旦数据读取成功,就将已损坏的数据块删除。hadoop的LocalFileSystem执行客户端的校验和验证,它是通过ChecksumFileSystem来完成自己的任务。


  三、压缩

  文件压缩与两大好处,减少存储文件所所需要的磁盘空间,并加速数据在网络上的传输,多于大数据量时就就显得更加的重要。压缩的格式有很多种,各有千秋,gzip是一个通用的压缩工具,因为在空间和时间性能上都是比较均衡的。

  java中已经提供的API,实现codec接口来完成的一种压缩-解压缩的算法。

  前面也说到了,有的压缩格式是不支持输入分片的,也就是说是否可以搜索数据流的任意位置并进一步往下读取数据。很明显gzip是不行的,但是bzip2是可以的,对于MapReduce这种需要分片读取的时候选择什么样的压缩方式就显得尤为重要。


  四、序列化

  序列化指的是将结构化对象转化为字节流以便在网络上传输或写到磁盘进行永久存储的过程,反序列化是指将字节流转回结构化对象的逆过程。hadoop使用的是自己的序列化格式Writable,它绝对紧凑、速度快,但是不太容易用java以外的语言进行扩展或使用。基于“接口定义语言”(Interface Description Language IDL)的序列化框架有Apache Thrift和Google Protocol Buffers是两个比较流行的序列化框架。


  五、Apache Avro

  Apache Avro是一个独立于编程语言的数据序列化系统,是由Doug Cutting创建,旨在解决hadoop中Writable类型的不足:缺乏语言的可移植性。拥有一个可以被多种语言处理的数据格式与绑定到单一语言的数据格式相比,前者更易于与公众共享数据集,同时也更具有生命力,该语言将使得数据具有更长的生命周期,即时原先用于读/写该数据的语言已经不再使用。与上面的两种框架相比,Avro数据是与语言无关的模式定义的,但是与其他系统不同的是,代码生成是可选的,并且Avro的模式通常用JSON来写,当然还有一种高级语言称为Avro IDL,可以使用C语言编写。


  六、基于文件的数据结构

  对于基于MapReduce的数据处理,将每个二进制数据大对象单独放在各自的文件中不能实现可扩展性,所以hadoop提供了很多更高层次的容器:

  · SequenceFile:为二进制键/值对提供了一个持久化数据结构,同时也可以作为小文件的容器。

  · MapFile:是已经排过序的SequenceFile的写操作。


人生从业之路的第一步,从甲骨文华育兴业开始,

背后付出的辛苦与努力只有自己知道,而这也只是职业生涯的开始。

勤恳努力的人终会得到最好的回报,有些努力需要时间来回答

你吃的苦终会铺成你想要的路!

甲骨文华育兴业,为你的IT之路开启梦想之门!



【版权与免责声明】如发现内容存在版权问题,烦请提供相关信息联系我们,我们将及时沟通与处理。本站内容除非来源注明甲骨文华育兴业,否则均为网友转载,涉及言论、版权与本站无关


大数据中hadoop是什么? ps使用 大数据 冲刺Java架构师年薪50W

友情链接: 甲骨文华育兴业太原校区 甲骨文华育兴业济南校区 甲骨文华育兴业哈尔滨校区 甲骨文华育兴业长春校区 魔据教育 音乐培训 青海律师

Copyright ©2016-2019. All Rights Reserved. 京ICP备17018991号-4

网站地图