大数据学习笔记-hdfs的文件读写流程与nn和2nn的工作机制

HDFS文件读写流程

HDFS写流程

正常情况下的写流程

异常情况下的写流程

所谓异常情况,一般指在上述5、6步骤中出现网络问题或节点宕机导致传输失败的问题。

	1、在写的流程中,client先将packet存储到dataQueue队列中
	2、发送时,dataQueue队列中的每个packet依次发送到通道
        packet发送到通道后,会从dataQueue中移动到ackQueue中
	4、当该packet受到了所有DN节点回复的ack确认信息后,从ackQueue中删除该packet
	5、如果收到确认消息后超时,则中断传输,所有ackQueue中的packet立刻回滚到dataQueue中,重新建立通道
		此时会剔除坏的DN节点,继续传输,只要有传输完成,DN向NN汇报blk信息
	6、同正常传输流程,只要有一个DN节点上报blk信息,NN就认为blk已经传输完成,通道关闭

*关于HDFS中副本上传中的副本放置策略(三个副本时)

第一个副本:client所在节点or随机节点
第二个副本:同机架上的随机节点
第三个副本:不同机架的随机节点

HDFS读流程

	1、启动服务端的NN、DN进程,提供分布式文件系统客户端
	2、由客户端向NN发送请求,请求下载一个文件,NN对其请求进行合法性检查
	3、若合法,NN响应客户端允许下载,同时返回当前下载文件的所有的元数据信息(meta)
	4、客户端根据返回的元数据信息,去对应的每个DN系欸DNA按照顺序依次下载每个blk

NameNode与SecondaryNameNode

NN的作用

  • NN保存着HDFS上所有文件的元数据
  • 负责接受客户端的请求
  • 负责接收DN上报的信息,给DN分配任务

​ NN负责集群中所有客户端的请求和所有DN的请求,在一个集群中,通常NN需要一个高配置机器,保证NN可以及时处理客户端或DN的请求,一旦NN无法及时处理请求,HDFS就已经瘫痪。

元数据

NN的元数据存储在fsimage和edits中:
	- fsimage:元数据的快照文件
	- edits:记录所有写操作的文件
fsimage文件的产生
        1,第一次格式化NN时,此时会创建NN工作的目录 fsimage_0000000000文件
        2,当NN在启动时,NN会将所有的edits文件和fsimage文件加载到内存中合并得到最新的元数据,将元数据持久化到磁盘生成新的fsimage文件
        3,如果启动了SNN,SNN也会辅助NN合并元数据,会将合并后的元数据发送到NN(SNN一般不和NN放置在同一个节点上)	
edits文件
每次写操作,分解为若干步,每一步都有一个id,这个id称为txid。

NN和2NN的工作机制

在这里插入图片描述

第一阶段:nn启动

第一次nn格式化后,创建fsimage和edits文件,如果不是第一次启动,直接加载fsimage和edits到内存并将其合并为新的fsimage文件并滚动edits日志文件。

第二阶段 2nn的工作

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。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值