HDFS体系结构、原理、运行机制

HDFS体系结构、原理、运行机制(一)-简介在这里插入图片描述在这里插入图片描述

Namenode:维护着整个文件系统的文件目录树,文件/目录的元信息和文件的数据块索引,即每个文件对应的数据块列表;接收数据节
点的注册、心跳、数据块提交等信息上报,发送数据块复制、删除、恢复等名字节点指令
DataNode:将HDFS数据块写到Linux本地文件系统的实际文件中,并不断将当前存储的数据块(block)报
告给namenode,并接收namenode的指令来创建、删除、移动本地磁盘的数据块。
Block(数据块):一个文件是被切分成多个Block,并且每个block有多个副本,这些副本被分布在多个
datanode上,它数据HDFS的最小存储单元
Metadata:是文件系统中文件和目录的信息以及文件和block的对应关系。

HDFS体系结构、原理、运行机制(二)-元数据

第一关系:HDFS文件系统的文件目录树,每个文件对应的数据块列表,定期持久化到磁盘中
第二关系:数据块和数据节点的对应关系,由datanode动态上报而来,不会持久化到磁盘中
**命名空间镜像(FSlmage):**保存了某一个时刻集群元数据的信息的快照,并持久化到做了RAID1的磁盘中
**镜像编辑日志(EditLog):**元数据编辑日志,将每次的改动都保存在日志中,如果namenode机器宕机或者namenode进程挂掉后可以使用FSlmage和EditLog联合恢复内存元数据。
在这里插入图片描述
NameNode 在执行 HDFS 客户端提交的创建文件或者移动文件这样的写操作的时候,会首先把这些操作记录在 EditLog 文件之中,然后再更新内存中的文件系统镜像。内存中的文件系统镜像用于 NameNode 向客户端提供读服务,而 EditLog 仅仅只是在数据恢复的时候起作用。记录在 EditLog 之中的每一个操作又称为一个事务,每个事务有一个整数形式的事务 id 作为编号。EditLog 会被切割为很多段,每一段称为一个 Segment。正在写入的 EditLog Segment 处于 in-progress 状态,其文件名形如 edits_inprogress_ s t a r t t x i d , 其 中 {start_txid},其中 starttxid{start_txid} 表示这个 segment 的起始事务 id,例如上图中的 edits_inprogress_0000000000000000020。而已经写入完成的 EditLog Segment 处于 finalized 状态,其文件名形如 edits_ s t a r t t x i d − {start_txid}- starttxid{end_txid},其中 s t a r t t x i d 表 示 这 个 s e g m e n t 的 起 始 事 务 i d , {start_txid} 表示这个 segment 的起始事务 id, starttxidsegmentid{end_txid} 表示这个 segment 的结束事务 id,例如上图中的 edits_0000000000000000001-0000000000000000019。

NameNode 会定期对内存中的文件系统镜像进行 checkpoint 操作,在磁盘上生成 FSImage 文件,FSImage 文件的文件名形如 fsimage_ e n d t x i d , 其 中 {end_txid},其中 endtxid{end_txid} 表示这个 fsimage 文件的结束事务 id,例如上图中的 fsimage_0000000000000000020。在 NameNode 启动的时候会进行数据恢复,首先把 FSImage 文件加载到内存中形成文件系统镜像,然后再把 EditLog 之中 FsImage 的结束事务 id 之后的 EditLog 回放到这个文件系统镜像上。

HDFS体系结构、原理、运行机制(3)- 高可用

在这里插入图片描述
在这里插入图片描述
1.在HA HDFS集群中会同时运行两个NameNode,一个作为活动的NameNode(Active),一个作为备份的NameNode(Standby),只有Active NameNode 才能对外提供读写服务

2.Active NameNode负责执行所有修改命名空间以及删除备份数据块的操作,Standby NameNode的命名空间与Active NameNode是实时同步的,所以当Active NameNode发生故障而停止服务时,Stan

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值