hadoop--HDFS之基本框架

原创
2016/12/20 02:47
阅读数 131

 前言

    HDFS分布式文件系统即Hadoop Distributed Filesystem,采用master/slave架构,具有可靠性、可用性和扩展性,这也是分布式系统的三个关键指标。

一、HDFS架构

    HDFS的架构主要:基本框架、读写流程、高可用、压缩系列化5个方面介绍,本篇介绍:基本框架。

    1.  下面HDFS的基本框架

       

       1.1 NameNode

        用来存储文件系统的元数据(文件/目录的元信息和每个文件对应的数据块列表)和接受客户端的RPC请求。文件包括:fsimage、editlog,也就是说NameNode在内存中的数据有两部分组成:fsimage+不断增加的editlog。

        fsimage:是文件系统的元数据镜像文件。

        editlog:文件系统的操作日志文件(增加、删除文件记录)

       1.2 DataNode

        实际存储数据的地方,是文件系统的工作节点(受客户端或者namenode的调度),并且定期向namenode发送块的列表。文件块block(逻辑概念,便于快速查找和存储,Replication block的存储实例, Replication是多复本。默认是三个。)是存储的基本单元,HDFS默认Block大小是128MB,假如一个文件大小为1G,那么共有8个block(1024/128=8),每个bock有多个复本分布存储在不同的节点上。DataNode会一直保持复本数,如果一个复本损坏,系统会从其他节点读取一个复本复制到一台正常运行的机器上,确保复本数回到正常数值。通过向NameNode发送心跳保持与其联系(3秒一次),如果NameNode10分钟没有收到DataNode的心跳,则认为其已经lost,并copy其上的block到其它DataNode。

    2.  下面介绍NameNode和SecondaryNameNode的关系

          2.1SecondaryNameNode

            SecondaryNameNode不是NameNode的备份,而是一个辅助的NameNode,这个辅助NameNode的重要作用是定期(默认是一个小时)通过合并编辑日志和空间镜像,以防止编辑日志过大。这个辅助的NameNode一般在另一台单独的物理计算机上运行,因为它占用的CPU时间和内存与NameNode相同容量的内存来执行合并操作。                

         2.2CheckPoint Node

        可能是由于Secondary NameNode容易对人产生误导,因此Hadoop 1.0.4 之后建议不要使用Secondary NameNode,而使用CheckPoint Node。Checkpoint Node和Secondary NameNode的作用以及配置完全相同,只是启动命令不同 bin/hdfs namenode -checkpoint。

        2.3联邦HDFS

            NameNode在内存中保存文件系统中每个文件和每个数据块的引用关系,这个意味着在一个拥有大量文件的集群中,内存将成为限制系统横向扩展的瓶颈。在2.x版本中引入联邦HDFS,允许通过添加NameNode实现扩展 ,其中每个NameNode管理文件系统的中的一部分。例如一个NameNode管理/user目录下的所有文件,另一个NameNod可能管理/share目录下的所有文件。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部