hdfs工作流程

hdfs工作流程,第1张

1 hdfs基本工作流程

1 hdfs初始化目录结构

hdfs namenode -format 只是初始化了namenode的工作目录

而datanode的工作目录是在datanode启动后自己初始化的

namenode在format初始化的时候会形成两个标识:

blockPoolId:

clusterId:

新的datanode加入时,会获取这两个标识作为自己工作目录中的标识

一旦namenode重新format后,namenode的身份标识已变,而datanode如果依然

持有原来的id,就不会被namenode识别

2 hdfs的工作机制

hdfs集群分为两大角色:NameNode,DataNode (Secondary NameNode)

NameNode负责管理整个文件的元数据(命名空间信息,块信息) 相当于Master

DataNode负责管理用户的文件数据块 相当于Salve

文件会按照固定的大小(block=128M)切成若干块后分布式存储在若干个datanode节点上

每一个文件块有多个副本(默认是三个),存在不同的datanode上

DataNode会定期向NameNode汇报自身所保存的文件block信息,而namenode则会负责保持文件副本数量

hdfs的内部工作机制会对客户的保持透明,客户端请求方法hdfs都是通过向namenode申请来进行访问

SecondaryNameNode有两个作用,一是镜像备份,二是日志与镜像的定期合并

3 hdfs写入数据流程

1客户端要向hdfs写入数据,首先要跟namenode通信以确认可以写文件并获得接收文件block的datanode,然后,客户端按照顺序将文件block逐个传给相应datanode,并由接收到block的datanode负责向其他datanode复制block副本

4 写入数据步骤详细解析

客户端向namenode通信,请求上传文件,namenode检查目标文件是否已经存在,父目录是否存在

namenode返回给客户端,告知是否可以上传

客户端请求第一个block该传输到那些datanode服务器上

namenode返回3个datanode服务器abc

客户端请求3台datanode的一台a上传数据(本质上是一个rpc调用,建立pipeline),A收到请求后会继续调用b,然后b调用c,将整个pipeline建立完成,逐级返回客户端。

客户端开始忘a上传第一个block(先从磁盘读取数据放入本地内存缓存),以packet为单位,a收到一个packet将会传给b,b传给c,a每传一个packet会放入一个应答队列等待应答

宕一个block传输完之后,客户端再次请求namenode上传第二个block的服务器

安全模式是hadoop的一种保护机制,用于保护集群中数据块的安全性当集群启动的时候,会首先进入安全模式当系统处于安全模式时会检查数据块的完整性

假设我们设置的副本数(即参数dfsreplication)是3,那么在DataNode上就应该有三个副本,假设只有两个复本,那么副本率=2/3=067,hdfs默认副本率是099不符合,所以会自动复制副本到其他的DataNode,使得副本率不小于099,如果系统中有5个副本,超过我们设定的3个副本,系统也会删除多于两个

在安全模式状态下,文件系统只接受读数据请求,而不接受删除数据,修改等变更请求,在当整个系统达到安全标准,HDFS自动离开安全模式

1,设置副本率

2,离开安全模式的最小存活的DataNode数,默认0

3,上面两个都满足情况下维持时间,单位毫秒

总结一下,要离开安全模式,需要满足以下条件:

1)达到副本数量要求的block比例满足要求;

2)可用的datanode节点数满足配置的数量要求;

3) 1、2 两个条件满足后维持的时间达到配置的要求。

以上就是关于hdfs工作流程全部的内容,包括:hdfs工作流程、HDFS的安全模式、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9779891.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存