您的位置:首页 > 运维架构

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.WritableComparablewrite方法,[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]


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: