Hadoop权威指南学习(二)——HDFS & Hadoop IO

2019-03-28 14:20|来源: 网络

HDFS设计:

以流式数据访问模式来存储超大文件,“一次写入,多次读取”;

HDFS为高数据吞吐量应用优化的,低延迟的方位需求应选择HBase;

文件系统的元数据存储在namenode的内存中,所能存储的文件总数受限于内存容量;

HDFS的块(block)默认为64M(块大的目的为了最小化寻址开销,从磁盘传输时间可明显大于定位时间),以块存储而非文件可简化存储系统的设计

HDFS只是Hadoop文件系统的一个实现,在org.apache.hadoop包的fs以及hdfs子包中包含了多种其他文件系统

使用Java API操作Hadoop文件(见 http://www.linuxidc.com/Linux/2011-11/47051.htm包括文件与目录的操作,创建、删除、读取、写入等。

相关阅读:

Hadoop权威指南学习(七)——其他 http://www.linuxidc.com/Linux/2011-11/47050.htm

Hadoop权威指南学习(六)——MapReduce的特性 http://www.linuxidc.com/Linux/2011-11/47049.htm

Hadoop权威指南学习(五)——MapReduce的类型和格式 http://www.linuxidc.com/Linux/2011-11/47048.htm

Hadoop权威指南学习(四)——MapReduce工作机制 http://www.linuxidc.com/Linux/2011-11/47047.htm

Hadoop权威指南学习(三)——MapReduce应用开发 http://www.linuxidc.com/Linux/2011-11/47046.htm

Hadoop权威指南学习(二)——HDFS & Hadoop IO http://www.linuxidc.com/Linux/2011-11/47045.htm

Hadoop权威指南学习(一)——关于Mapreduce http://www.linuxidc.com/Linux/2011-11/47044.htm

数据流:

1. 文件读取剖析



2. 文件写入剖析


Hadoop IO:

1. 数据完整性:对写入的所有数据计算校验和并在读取数据是验证校验和。(LocalFileSystem,RawLocalFileSystem,ChecksumFileSystem)

2.压缩:减少存储文件磁盘空间+加速数据在网络和磁盘上的传输。

Hadoop中CompressionCodec接口的实现代表一个codec(压缩-解压缩算法),如DEFKATE,Gzip,bzip2(支持切分)以及LZO,需要在时间和空间取平衡。而压缩算法是否支持切分对于mapreduce处理非常重要,如1GB的压缩文件,分16个数据块存放,若压缩算法不支持切分,则map任务独立于其他任务进行数据读取是行不通的。[CompressionCodecFactory,,CodecPool]

  1. conf.setBoolean("mapred.output.compress"true);  
  2. conf.setCalss("mapred.output.compress.codec",GzipCodec.class, CompressionCodec.class);  
  3. // mapred.output.compress.type=BLOCK(默认为RECORD)  

3. 序列化:将结构化对象转化为字节流,以便在网络上传输或写道磁盘永久存储。

Hadoop中,系统结点上进行间的通信通过RPC实现的,其将消息序列化成二进制流后发送给远程结点,远程节点将二进制流反序列化成员是消息。

Writable接口定义了write(DataOutput)和readFields(DataInput)两个方法;WritableComparable接口继承至Writable和Comparable接口,MapReduce中的key均需要实现该接口;

Writable类:org.apache.hadoop.io中,包括Java基本类型的Writable封装器(如Text,NullWritable,ObjectWritable)以及集合类(ArrayWritable,TwoDArrayWritable,MapWritable,SortedMapWritable)

Apache Avro是独立于变成语言的数据序列化系统,旨在解决Writable类型的不足:缺乏语言的可以执行。

4. 基于文件的数据结构:SequenceFile + MapFile(排好序的SequenceFile,已加入用于搜索间的索引)

相关问答

更多