第二章:分布式文件系统HDFS详解

1.HDFS系统架构图

角色介绍,根据上图介绍各个节点的作用:

NameNode

  • 主节点,存储文件的元数据信息,如文件名,文件目录结构,文件属性( 生成时间,副本数,文件权限),以及每个文件的块列表和块所在DataNode等。
  • 这些数据信息以 “fsimage”(HDFS 元数据镜像文件) 和 “editlog”(HDFS 文件改动日志) 两个文件形式存放在本地磁盘,当 HDFS 重启时重新构造出来的。
  • 单点,通过热备HA解决单点故障问题。
  • 存储位置:
    • 一部分在内存中
    • 另一部分存储在本地磁盘包括(fsimage镜像文件和edites编辑日志),以保证内存丢失,数据可以从磁盘找回

DataNode

  • 在本地文件系统 存储文件块数据,以及块数据的校验和 (长度、创建时间、CRC32校验和)。
  • 上图中的黄色圆圈表示在所有的slave节点上有7个副本,副本数保证了数据的安全

Secondary NameNode

  • 用来监控HDFS状态的辅助后台程序,每隔1小时同步NameNode的元数据备份(快照)。此备份用于NameNode元数据损害且无法恢复时,进行恢复。理论上最多丢失1小时数据。
  • 定时的将NameNode的镜像文件 (fsimage) 和编辑日志文件 (editlog) 合并为一个文件,叫做新镜像文件
  • 可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。

NameNode启动过程

1、Name启动的时候首先将fsimage(镜像)载入内存,并执行(replay)编辑日志editlog的的各项操作;

2、一旦在内存中建立文件系统元数据映射,则创建一个新的fsimage文件(这个过程不需SecondaryNameNode) 和一个空的editlog;

3、在安全模式下,各个datanode会向namenode发送块列表的最新情况;

4、此刻namenode运行在安全模式。即NameNode的文件系统对于客服端来说是只读的。(显示目录,显示文件内容等。写、删除、重命名都会失败);

5、NameNode开始监听RPC和HTTP请求解释RPC:RPC(Remote Procedure Call Protocol)——远程过程通过协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议;

6、系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中;

7、在系统的正常操作期间,namenode会在内存中保留所有块信息的映射信息。

总结

  • NameNode 元数据/命名空间持久化 fsimage与edits

  • NameNode 格式化,具体做什么事

创建fsimage文件,存储fsimage信息

创建edits文件

  • NameNode 启动过程

1.加载fsimage和edits文件

2.生成新的fsimage和edits文件

3.等待DataNode注册与发送Block Report

  • DataNode 启动过程

向NameNode注册、发送Block Report

  • NameNode SafeMode 安全模式

Block是HDFS最小存储最小单元

文件切分成块(默认大小64M)一般设置为128M,以Block(块)为单位,每个块默认共3个副本(含自身)存储在不同的机器上,副本数可以设置。

hdfs-site.xml中设置,dfs.block.size:134217728

猜你喜欢

转载自my.oschina.net/zupengliu/blog/1790531