HDFS学习

 

http://baike.baidu.com/view/3061630.html?fromTaglist

1 HDFS  采用写一次-读多次的方式简化了数据一致模型

2 HDFS 使用了一个NameNode,多个DataNode方式;NameNode负责管理元数据,DataNode负责实际的数据存储和IO。NameNode有单点故障风险,挂掉需要人工干预重启。

3 HDFS 数据复制具有机架感知功能,如果复制因子为3,那么第一个接收数据的DataNode会把数据复制到另外一个机架上的DataNode,另一个机架上的DataNode会并行把数据复制给同一个机架的DataNode,保证高可用性。

4 使用客户端写缓存功能,写数据先往客户端本地写,知道数据大小达到阀值HDFS block size(64M),才会flush到DataNode。

5 HDFS适合用于大文件读写,小文件会耗尽namenode资源,同时寻址时间/数据传输时间会变大,整个吞吐量会降低。HDFS不适用于前台业务,因为它的读数据相应时间较长,不是100毫秒级以内的。

6 HDFS的大文件块设计,是为大吞吐量而设计的,把寻址时间/数据传输时间控制在很小的范围。

7 HDSF基于自身的场景,不使用java内置的序列化协议,采用自己开发的序列化机制writable。(这一块还需要深入了解)

8 HDFS用check sum来检验数据完整性。

9 HDFS采用多种压缩技术,来降低存储成本,和提高传输速度。

 

源码分析

http://blog.jeoygin.org/tag/hdfs/page/2

下一步攻克源码

 

你可能感兴趣的:(hadoop,hdfs,分布式计算)