NameNode工作机制
1)第一阶段:namenode 启动
(1)第一次启动 namenode 格式化后,创建 fsimage 和 edits 文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求。
(3)namenode 记录操作日志,更新滚动日志。
(4)namenode 在内存中对数据进行增删改查
2)第二阶段:Secondary NameNode 工作
(1)Secondary NameNode 询问 namenode 是否需要 checkpoint。直接带回 namenode 是否检查结果。
(2)Secondary NameNode 请求执行 checkpoint。
(3)namenode 滚动正在写的 edits 日志
(4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode
(5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件 fsimage.chkpoint
(7)拷贝 fsimage.chkpoint 到 namenode
(8)namenode 将 fsimage.chkpoint 重新命名成 fsimage
3)web 端访问 SecondaryNameNode
(1)启动集群
(2)浏览器中输入:http://master:9001/status.html
(3)查看 SecondaryNameNode 信息
4)chkpoint 检查时间参数设置
(1)通常情况下,SecondaryNameNode 每隔一小时执行一次。
[hdfs-default.xml]
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
</property>
(2)一分钟检查一次操作次数,当操作次数达到 1 百万时,SecondaryNameNode 执行
一次。
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>操作动作次数</description>
</property>
<property>
<name>dfs.namenode.checkpoint.check.period</name>
<value>60</value>
<description> 1 分钟检查一次操作次数</description>
</property>
其它)Namenode 多目录配置
1)namenode 的本地目录可以配置成多个,且每个目录存放内容相同,增加了可靠性。
2)具体配置如下:
[hdfs-site.xml]
<property>
<name>dfs.namenode.name.dir</name
<value>file:///${hadoop.tmp.dir}/dfs/name1,file:///${hadoop.tmp.dir}/dfs/name2</value>
</property>