HDFS原理

HDFS原理

HDFS全称Hadoop Distributed File System,是hadoop中的一个分布式文件系统,与传统的文件系统不同,HDFS主针对的是大数据情景下的文件存储。

1 区别:

普通文件系统:数据块/磁盘块*n = 文件系统块的大小  
                             (512KB)          (若n<1,则n=1)

HDFS:block(64MB)独立的存储单元,文件可以大于磁盘大小,也可以存在不同的磁盘上。定位较快。

2 优劣

1、高容错性    2、适合批处理    3、适合大数据处理    4、流式文件访问    5、可构建在廉价机器上

1、低延时数据访问    2、小文件存储    3、并发写入、文件随机修改

3 框架

         

client:文件切分->block;与NN交互;与DN交互;

NameNode:master,在内存中。管理block,处理client请求

DataNode:slave,在磁盘中。存储实际数据块,读写。

SecondaryNameNode:冷备份。分担NN工作量,合并fsiamge和fsedits,恢复NN

4 读取和写入

                 

                  

5 容错处理

1、NameNode Federation

不同的NameNode管理不同的目录,共用DN,这样一部分NN挂掉以后不影响其他部分

2、NNHA

NameNode是唯一一个对文件元数据和file-block映射负责的地方, 当它挂了之后,包括MapReduce在内的作业都无法进行读写。当NameNode故障时,常规的做法是使用元数据备份重新启动一个NameNode。采用HA的HDFS集群配置两个NameNode,分别处于ActiveStandby状态。当Active NameNode故障之后,Standby接过责任继续提供服务,用户没有明显的中断感觉。一般耗时在几十秒到数分钟。

1、基于NFS方案:Active NN与Standby NN通过NFS实现共享数据,但如果Active NN与NFS之间或Standby NN与NFS之间,其中一处有网络故障的话,那就会造成数据同步问题。

             

2、基于QJM方案:

                       

ActiveNameNode会把日志文件写入JournalNode,StandbyNameNode从JN中读取日志文件和fsimage合并。而DN需要向主从节点都进行汇报。用zookeeper决定主从关系。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章