目录
1、NameNode的功能
-
负责客户端请求的响应
-
元数据的管理(查询,修改)
2、 NameNode 启动过程
-
NameNode启动的时候首先将fsimage(镜像)载入内存,并执行(replay)编辑日志editlog的的各项操作
-
一旦在内存中建立文件系统元数据映射,则创建一个新的fsimage文件(这个过程不需SecondaryNameNode) 和一个空的editlog
-
在安全模式下,各个datanode会向namenode发送块列表的最新情况
-
此刻namenode运行在安全模式。即NameNode的文件系统对于客户端来说是只读的。(显示目录,显示文件内容等。写、删除、重命名都会失败)
-
NameNode开始监听RPC和HTTP请求
解释RPC:RPC(Remote Procedure Call Protocol)——远程过程通过协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议
-
系统中数据块的位置并不是由namenode维护的,而是以块列表形式存储在datanode中
-
在系统的正常操作期间,namenode会在内存中保留所有块信息的映射信息
3、 NameNode元数据管理
-
NameNode两个重要文件
-
fsimage:元数据镜像文件(保存文件系统的目录树)
-
edits:元数据操作日志(针对目录树的修改操作)
-
-
元数据镜像
-
内存中保存一份最新的
-
内存中镜像=fsimage+edis
-
-
定期合并fsimage与edits
-
Edits文件过大将导致NameNode重启速度慢
-
Secondary Namenode负责定期合并他们
-
-
Secondary NN通知NameNode切换editlog。
-
Secondary NN从NameNode 获得fsimage和editlog(通过http方式)。
-
Secondary NN将fsimage载入内存,然后开始合并editlog。
-
Secondary NN 将新的fsimage发回给NameNode NameNode 用新的fsimage替换旧的fsimage
4、 安全模式
安全模式下,集群属于只读状态。但是严格来说,只是保证HDFS元数据信息的访问,而不保证文件的访问,因为文件的组成Block信息此时NameNode还不一定已经知道了。所以只有NameNode已了解了Block信息的文件才能独到。而安全模式下任何对HDFS有更新的操作都会失败。
对于全新创建的HDFS集群,NameNode启动后不会进入安全模式,因为没有Block信息。
安全模式相关命令
-
查询当前是否安全模式
hadoop dfsadmin -safemode get
Safe mode is ON
等待safemode关闭,以便后续操作
hadoop dfsadmin -safemode wait
退出安全模式
hadoop dfsadmin -safemode leave
设置启用safemode
hadoop dfsadmin -safemode enter