hadoop 中NameNode和SecondaryNameNode的工作原理

  1. 什么是NameNode?
        NameNode是整个文件系统的管理节点。它维护着整个文件系统的文件目录树,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。文件包括:
    fsimage:元数据镜像文件。存储某一时段NameNode内存元数据信息。
    edits:操作日志文件。
    fstime:保存最近一次checkpoint的时间
  1. SecondaryNameNode的主要作用?
        SecondaryNameNode定期合并fsimage和edits日志,将edits日志文件大小控制在一个限度下。
  2. NameNode 和SecondaryNameNode的工作原理
    这里写图片描述

  1. 在NameNode端的工作流程如下:

  2.     1.Namenode始终在内存中保存metedata,用于处理“读请求” 到有“写请求”到来时,namenode会首先写editlog到磁盘,即向edits文件中写日志,成功返回后,才会修改内存,并且向客户端返回.
        2.Hadoop会维护一个fsimage文件,也就是namenode中metedata的镜像,但是fsimage不会随时与namenode内存中的metedata保持一致,而是每隔一段时间通过合并edits文件来更新内容。
  3. secondary namenode的工作流程:
  4.     1.secondary通知namenode切换edits文件
        2.secondary从namenode获得fsimage和edits(通过http)
        3.secondary将fsimage载入内存,然后开始合并edits
        4.secondary将新的fsimage发回给namenode
        5.namenode用新的fsimage替换旧的fsimage

你可能感兴趣的:(Hadoop)