SecondaryNameNode与NameNode不得不说的故事

1.SecondaryNameNode详解

image.png

1.1.SecondaryNameNode工作机制

1)第一阶段:namenode启动

  • 1:第一次启动namenode,格式化之后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
  • 2:客户端对元数据进行增删改查请求。
  • 3:namenode记录操作日志,更新滚动日志。
  • 4:namenode在内存中对数据进行增删改查。

2)第二阶段:SecondaryNameNode工作

  • 1:SecondaryNameNode询问namenode是否需要进行checkpoint。直接带回namenode是否需要检查的结果。
  • 2:SecondaryNameNode请求执行Checkpoint。
  • 3:namenode滚动正在写的edits日志
  • 4:将滚动钱的编辑日志和镜像文件拷贝到SecondaryNameNode
  • 5:SecondaryNameNode加载编辑日志和镜像文件到内存,并合并。
  • 6:生成新的镜像文件fsimage.checkpoint
  • 7:拷贝fsimage.checkpoint到namenode。
  • 8:namenode将fsimage.checkpoint重新命名成fsimage

1.2.NameNode和SecondaryNameNode的区别和联系

1)区别

  • 1:NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。
  • 2:SecondaryNameNode主要用于定期合并命名空间镜像和命名空间的编辑日志。

2)联系

  • 1:SecondaryNameNode中保存了一份和NameNode一直的镜像文件(fsimage)和编辑日志(edits)。
  • 2:在主namenode发生故障时(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。

1.3.服役新数据节点和退役旧节点步骤

1)节点上线操作
当要新上线数据节点的时候,需要把数据节点追加在dfs.hosts文件中

  1,关闭新增节点的防火墙
  2,在NameNode节点的hosts文件中加入新增数据节点的hostname
  3,在每个新增数据节点的hosts文件中加入NameNode的hostname
  4,在NameNode节点增加新增节点的SSH免密码登录操作
  5,在NameNode的节点上的dfs.hosts中追加上新节点的hostname
  6,在其他节点上执行刷新操作:hdfs dfsadmin -refreshNodes
  7,在NameNode节点上,更改slaves文件,将要上线的数据节点hostname追加到slaves文件中。
  8,启动NameNode节点
  9,查看NameNode的监控页面看是否有新增加的节点
复制代码

2)节点下线操作

  1,修改/conf/hdfs-site.xml文件
  2,确定需要下线的机器,dfs.oste.execlude文件中配置好需要下架的机器,这个是组织下架机器去连接NameNode的
  3,配置完成之后进行配置的刷新操作./bin/hadoop dfsadmin -refreshNodes,这个操作的作用是在后台进行block块的移动
  。
  4,当执行三的命令完成之后,需要下架的机器就可以关闭了,可以查看现在集群上连接的节点,正在执行Decommission,
  会显示:Decommission Status:Decommission in progress执行完毕后,会显示:Decommission Status:Decommissioned
  5,机器下线完毕,将他们从excludes文件中移除。
  
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享