HDFS Master/Slave 模式中的组件介绍

Master/Slave

NameNode(NN)

  • 活动Master管理节点(全局唯一)
  • 管理命名空间
  • 管理元数据
  • 管理Block副本策略:默认3个
  • 处理客户端读写请求,为DataNode分配任务

Secondary NameNode(SNN)

不是热备。
定期帮助NN合并fsimage与edits文件,减少NN启动时间。

NameNode元数据文件

  • edits(编辑日志文件):保存了自最新检查点(CheckPoint)之后的所有文件更新操作
  • fsimage(元数据检查点镜像文件,相当于内存的快照):保存了文件系统中所有的目录和文件信息,如:某个目录下有哪些子目录和文件,以及文件名、文件副本数、文件由哪些Block组成等
  • NameNode内存中有一份最新的元数据(元数据信息持久化≈fsimage+edits,block块位置信息由DataNode上报)
  • Secondary NameNode帮助NN定期合并fsimage与edits文件

为什么有了fsimage内存快照、还需要有edits文件呢?因为如果每次对于文件系统有操作,元数据信息就有可能发生变化,那么每次变化都去更新一下fsimage文件,显然成本非常之高而且性能也不好,所以fsimage并不会实时去发生变化,那么后边这些操作则通过edits文件做一个记录。
这边是HDFS元数据合并的机制,在运行过程中HDFS会定期触发整个合并流程,从而会保证fsimage文件越来越大、但edits文件会在比较的一个范围内,这样一个效果。

DataNode

  • Slave工作节点(可大规模扩展)
  • 存储Block和数据校验和
  • 执行客户端发送的读写操作
  • 通过心跳机制定期向NameNode汇报运行状态和Block列表信息
  • 集群启动时,DataNode向NameNode提供Block列表信息

Client

  • 将文件切分为Block
  • 与NameNode交互,获取文件元数据
  • 与DataNode交互,读取或写入数据
  • 管理HDFS

Block文件
Block文件是DataNode本地磁盘中名为“blk_blockId"的Linux文件

  • DataNode在启动时自动创建存储目录,无需格式化
  • DataNode的current目录下的文件名都以"blk_"为前缀
  • Block元数据文件(*.mate)由一个包含版本、类型信息的头文件和一系列校验值组成

Block副本放置策略
负载均衡

第一个副本存放距离Client最近的或者最空闲的,然后负载均衡

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值