Hadoop的I/O操作
2015-07-21 11:37
106 查看
一、数据完整性
HDFS的数据完整性
1、hadoop自带一套原子操作用于IO操作;
2、HDFS数据完整性:会对写入的所有数据计算校验和,并在读取数据时验证校验和,针对每个io.bytes.per.checksum指定字节的数据计算校验和;
3、由于HDFS存储着每个数据块的复本,因为它可以通过数据复本来修复损坏的数据块;
LocalFileSystem:执行客户端的校验和验证
1、新建.filename.crc的隐藏文件,块大小于io.bytes.per.checksum控制,默认512字节;
CheckSumFileSystem类:继承自FileSystem,向其他文件系统加入校验和
1、FileSystem rawFS = ....;FileSystem checksummedFS = new CheckSumFileSystem(rawFS);
二、压缩
1、最快的压缩方法:gzip -1 filename (-1为最快压缩,但空间减少最少,-9为节省最大空间压缩)
2、CodeC压缩/解压缩算法类:org.apache.hadoop.io.compress.DefaultCodeC/GzipCodeC/BZip2CodeC/LzopCodeC/Lz4CodeC/SnappCodeC
3、CompressionCodeC压缩/解压缩:写入输入流压缩方法-->createOutPutStream在底层数据流中写入CompressionOUtPutStream对象;
相反则是createInputStream获取CompressionInputStream对象;
4、CompressionCodeFactory推断CompressionCodeC:例如文件名以.gz结尾使用GzipCodeC
5、InputStream in = codec.createInputStream(fs.open(new path(args[0])));
6、OutputStream out = fs.create(new Path(outputuri))
7、CodeCPool:支持反复压缩和解压缩,以分摊创建这些对象的开销;
8、Map端压缩: mapred.map.output.compression.codeC 设为org.apache.hadopio.cpmpress.DefaultCodeC
三、序列化
定义:是指将化对象转化节流以便在网络上传输或写到磁盘进行永久存储的过程;
常用之处:1、进行间通信;2、永久存储
RPC:(远程过程调用)系统间进行间的通信方式;RPC协议将消息转化为二进行制后发送到远程节点;
1、Writable:Hadoop自己的序列化格式
2、WritableComparable:对MapReduce来说,类型比较非常重要,因为中间有个基于键的排序阶段;
3、Writable对java基本类型提供封装;
HDFS的数据完整性
1、hadoop自带一套原子操作用于IO操作;
2、HDFS数据完整性:会对写入的所有数据计算校验和,并在读取数据时验证校验和,针对每个io.bytes.per.checksum指定字节的数据计算校验和;
3、由于HDFS存储着每个数据块的复本,因为它可以通过数据复本来修复损坏的数据块;
LocalFileSystem:执行客户端的校验和验证
1、新建.filename.crc的隐藏文件,块大小于io.bytes.per.checksum控制,默认512字节;
CheckSumFileSystem类:继承自FileSystem,向其他文件系统加入校验和
1、FileSystem rawFS = ....;FileSystem checksummedFS = new CheckSumFileSystem(rawFS);
二、压缩
1、最快的压缩方法:gzip -1 filename (-1为最快压缩,但空间减少最少,-9为节省最大空间压缩)
2、CodeC压缩/解压缩算法类:org.apache.hadoop.io.compress.DefaultCodeC/GzipCodeC/BZip2CodeC/LzopCodeC/Lz4CodeC/SnappCodeC
3、CompressionCodeC压缩/解压缩:写入输入流压缩方法-->createOutPutStream在底层数据流中写入CompressionOUtPutStream对象;
相反则是createInputStream获取CompressionInputStream对象;
4、CompressionCodeFactory推断CompressionCodeC:例如文件名以.gz结尾使用GzipCodeC
5、InputStream in = codec.createInputStream(fs.open(new path(args[0])));
6、OutputStream out = fs.create(new Path(outputuri))
7、CodeCPool:支持反复压缩和解压缩,以分摊创建这些对象的开销;
8、Map端压缩: mapred.map.output.compression.codeC 设为org.apache.hadopio.cpmpress.DefaultCodeC
三、序列化
定义:是指将化对象转化节流以便在网络上传输或写到磁盘进行永久存储的过程;
常用之处:1、进行间通信;2、永久存储
RPC:(远程过程调用)系统间进行间的通信方式;RPC协议将消息转化为二进行制后发送到远程节点;
1、Writable:Hadoop自己的序列化格式
2、WritableComparable:对MapReduce来说,类型比较非常重要,因为中间有个基于键的排序阶段;
3、Writable对java基本类型提供封装;
相关文章推荐
- 【破解向】Mac版Adobe Photoshop CS6 与破解补丁下载–注册机+序列号+修改HOSTS完美可升级激活法及详细图文安装教程(强烈推荐)
- MyEclipse集成Tomcat启动报错
- Linux设定IP地址
- Linux是如何解析文件路径名的????
- 学习笔记:linuxc第六章上
- angular实现select的ng-options
- Linux下简易线程池
- 用Tomcat和Eclipse开发Servlet程序(转)
- 一个完整的类用来读取OpenSSL生成的pem格式的x509证书
- 软件架构设计
- Nginx防盗链的3种方法
- Linux SVN 搭建(YUM)安装
- 超时统计shell
- Linux fcntl函数详解
- 网站变灰色
- Openstack零基础开发视频教程
- OpenXml操作Word的一些操作总结.无word组件生成word.
- ECLIPSE切换工作空间,使用插件启动TOMCAT仍启动上一个项目的解决方法
- OpenCV中图像处理函数
- Linux分配给该用户没有权限登陆