Hadoop的IO操作
2016-04-11 23:31
316 查看
Hadoop的API官网:http://hadoop.apache.org/common/docs/current/api/index.html
相关的包
org.apache.hadoop.io
org.apache.hadoop.io.compress
org.apache.hadoop.io.file.tfile
org.apache.hadoop.io.serializer.arvo
Apache官网的sort900实验用了900台主机
淘宝用了1500台主机来存储数据。
Hadoop采用CRC-32来校验数据。
数据完整性:
1:本地文件的IO检查
校验和机制的相关的类:org.apache.hadoop.fs.ChecksumFileSystem来读取相关的类
禁用校验和机制:修改src/core/core-default.xml中的fs.file.impl的值为org.apache.hadoop.fs.RawLocalFileSystem
2:HDFS的文件IO检查
(1)datanode接收数据后存储数据前
(2)客户端读取datanode上的数据时
(3)datanode后台守护进程的定期检测
3:数据恢复策略
(1)检查已恢复标签
(2)统计各个备份数据的恢复状态
(3)副本同步
hadoop fs -get [ignoreCrc] [-crc] <src> <localdst>
数据压缩:
1:减少存储空间
2:加快传送速度
org.apache.hadoop.io.compress包中
代码如下:
conf.setBoolen("mapred.compress.map.output",true)
conf.setBoolen("mapred.output.compress",true)
conf.setBoolen("mapred.output.compression.type","Block")
conf.setClass("mapred.output.compression.codec",GzipCodec.class,CompressionCodec.class)
数据序列化
(1)进程间通信
(2)数据持久化存储
org.apache.hadoop.io.Writable类和java.lang.Comparable类
1.Writable类定义了两个方法:
序列化输出数据流: void write(Dataoutput out) throw IOException
反序列化输入数据流:void readFields(Datainput in)throw IOException
2.Comparable类定义了三个方法:
[b]comparreTo方法,hashCode方法,equals方法
[/b]
3.WritableComparable的write方法,[b]readFields方法,[/b]comparreTo方法,hashCode方法,equals方法
java.util.Comparator
Comparator类的compare方法
RawComparator类
WritableComparator
NullWritable
ByteWritable和BytesWritable
ObjectWritable
ArraryWritable和TwoDArraryWritable
Text
[b]MapWritable和sorted[b][b]MapWritable[/b][/b][/b]
[b]Compressed[b][b]Writable[/b][/b][/b]
[b][b][b]Generic[b][b]Writable[/b][/b][/b][/b][/b]
[b]Vesiond[b][b]Writable[/b][/b][/b]
[b]针对Hadoop的文件类[/b]
[b]SequenceFile类和MapFile类[/b]
[b][b][b]SequenceFile类记录的是key-value对,是序列化后的二进制文件[/b][/b][/b]
[b]有三种类型结构:[/b]
[b]1:未压缩的[b][b][b][b]key-value对[/b][/b][/b][/b][/b]
[b][b][b][b][b]2:记录压缩的[b][b][b][b][b][b]key-value对,只有value被压缩[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]
[b][b][b][b][b][b][b][b][b][b][b]3:block 压缩的[b][b][b][b][b][b]key-value对,key和value分别被压缩[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]
相关的包
org.apache.hadoop.io
org.apache.hadoop.io.compress
org.apache.hadoop.io.file.tfile
org.apache.hadoop.io.serializer.arvo
Apache官网的sort900实验用了900台主机
淘宝用了1500台主机来存储数据。
Hadoop采用CRC-32来校验数据。
数据完整性:
1:本地文件的IO检查
校验和机制的相关的类:org.apache.hadoop.fs.ChecksumFileSystem来读取相关的类
禁用校验和机制:修改src/core/core-default.xml中的fs.file.impl的值为org.apache.hadoop.fs.RawLocalFileSystem
2:HDFS的文件IO检查
(1)datanode接收数据后存储数据前
(2)客户端读取datanode上的数据时
(3)datanode后台守护进程的定期检测
3:数据恢复策略
(1)检查已恢复标签
(2)统计各个备份数据的恢复状态
(3)副本同步
hadoop fs -get [ignoreCrc] [-crc] <src> <localdst>
数据压缩:
1:减少存储空间
2:加快传送速度
org.apache.hadoop.io.compress包中
代码如下:
conf.setBoolen("mapred.compress.map.output",true)
conf.setBoolen("mapred.output.compress",true)
conf.setBoolen("mapred.output.compression.type","Block")
conf.setClass("mapred.output.compression.codec",GzipCodec.class,CompressionCodec.class)
数据序列化
(1)进程间通信
(2)数据持久化存储
org.apache.hadoop.io.Writable类和java.lang.Comparable类
1.Writable类定义了两个方法:
序列化输出数据流: void write(Dataoutput out) throw IOException
反序列化输入数据流:void readFields(Datainput in)throw IOException
2.Comparable类定义了三个方法:
[b]comparreTo方法,hashCode方法,equals方法
[/b]
3.WritableComparable的write方法,[b]readFields方法,[/b]comparreTo方法,hashCode方法,equals方法
java.util.Comparator
Comparator类的compare方法
RawComparator类
WritableComparator
NullWritable
ByteWritable和BytesWritable
ObjectWritable
ArraryWritable和TwoDArraryWritable
Text
[b]MapWritable和sorted[b][b]MapWritable[/b][/b][/b]
[b]Compressed[b][b]Writable[/b][/b][/b]
[b][b][b]Generic[b][b]Writable[/b][/b][/b][/b][/b]
[b]Vesiond[b][b]Writable[/b][/b][/b]
[b]针对Hadoop的文件类[/b]
[b]SequenceFile类和MapFile类[/b]
[b][b][b]SequenceFile类记录的是key-value对,是序列化后的二进制文件[/b][/b][/b]
[b]有三种类型结构:[/b]
[b]1:未压缩的[b][b][b][b]key-value对[/b][/b][/b][/b][/b]
[b][b][b][b][b]2:记录压缩的[b][b][b][b][b][b]key-value对,只有value被压缩[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]
[b][b][b][b][b][b][b][b][b][b][b]3:block 压缩的[b][b][b][b][b][b]key-value对,key和value分别被压缩[/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b][/b]
相关文章推荐
- ListView中pointToPosition()方法使用示例.
- Hadoop MapReduce InputFormat基础
- block为什么用copy
- Nginx服务器
- 大型网站架构不得不考虑的10个问题
- Hadoop学习六:YARN的RM做HA
- Linux Shell 文本处理工具集锦
- OpenCV统计时间
- 把a.txt从Windows拷贝到linux引起的错误------浪费15分钟
- linux文件系统---10
- lena,知识从未如此性感
- linux脚本编程技术---8
- Kafka组件监控
- Linux内核分析8
- 每天一个linux命令(3):ls命令
- 网站速度优化的一般方法
- linux中socket的理解---4
- 嵌入式Linux下Camera编程--V4L2 ---fwqlzz love is for ever
- 给初学者的建议——服务器管理和维护建议
- Centos7 修改主机名