NameNode启动过程

来源:互联网 发布:sql删除数据库命令 编辑:程序博客网 时间:2024/06/08 10:40

NameNode启动过程

NameNode数据存储在内存和本地磁盘,本地磁盘数据存储在fsimage镜像文件和edits编辑日志文件
第一次启动
1、格式化文件系统,为了生成fsimage镜像文件
2、启动NameNode
(1)读取fsimage文件,将文件内容加载进内存
(2)等待DataNade注册与发送Block Report
3、启动DataNode
(1)向NameNode注册
(2)发送Block Report
(3)检查fsimage中记录的块的数量和Block Report中的块的总数是否相同
4、对文件系统进行操作(创建目录,上传文件,删除文件等)
(1)此时内存中已经有文件系统改变的信息,但是磁盘中没有文件系统改变的信息,此时会将这些改变信息写入edits文件中,edits文件中存储的是文件系统元数据改变的信息。
第二次启动NameNode
1、读取fsimage和edits文件。
2、将fsimage和edits文件合并成新的fsimage文件。
3、创建新的edits文件,内容为空。
4、启动DataNode
这里写图片描述

SecondaryNameNode(辅助NameNode)

  • 由于启动NameNode时候读取fsimage的速度比edits的速度快,所以如果长时间不重启NameNode会导致edits文件变得很大,下次启动的速度就会很慢。
  • SecondaryNameNode的作用就是每隔一段时间(默认是1小时,触发条件很多)就会将fsimage和edits文件进行合并生成新的fsimage,创建一个新的空的edits文件用于存放文件系统改变的日志文件。

NameNode启动中SafeMode安全模式

  • 开始于读取fsimage文件并生成新的fsimage镜像文件和edits编辑日志文件,并将新的镜像文件加载进内存以后。
  • 作用:等待dataNode向他发送block report
  • 当datanode blocks / fsimages block = 99.99% 此时安全模式退出(不会立即退出,会有一个缓冲时间30s,缓冲时间用于使得文件系统趋于稳定)。

安全模式中能够进行的操作:

  • 能够进行查看文件系统文件的操作
  • 不能够进行创建文件夹,上传文件,删除文件的操作,因为这些操作会改变元数据信息,并且此时不知道将要操作的块是否丢失还是被删除。

安全模式操作命令:

  • 进入安全模式
    bin/hdfs dfsadmin -safemode enter
  • 查看模式
    bin/hdfs dfsadmin -safemode get
  • 退出安全模式
    bin/hdfs dfsadmin -safemode leave
原创粉丝点击