首页 > 其他 > 详细

HDFS数据存储流程

时间:2021-07-25 23:20:26      阅读:16      评论:0      收藏:0      [点我收藏+]

HDFS即Hadoop Distributed File System, HDFS存储数据的流程如下:

1、client跟NameNode交互
1.1、client 发消息给NameNode,NameNode检查client是否有写的权限。如果有权限,NameNode检查是否有同名文件,如果没同名文件,NameNode生成一条新文件的记录(不包含存放地址信息)
1.2、NameNode向client发送相应的DataNode列表和一个token,地址用来存放数据,token是client向DataNode写数据前要发送过去的密钥
2、client跟DataNode交互
2.1、client收到DataNode列表和token后,其DFSOutputStream将数据拆分成一个个块(一般64MB或128MB),并集群中生成管道,通过管道向DataNode列表中的第一个DataNode写入数据。 同时,DFSOutputStream生成一个确认列表(ack queue)。
2.2、第一个DataNode写完后,将根据复制参数将数据块通过管道复制到第二个DataNode。第二个写完,将数据块通过管道复制到第三个DataNode...... 如果复制参数为 3,那么在不同的 DataNode 中至少会创建 3 个块副本。每个DataNode写完后,会向NameNode发送块的信息,NameNode会记录下来。
2.3、最后一个DataNode创建所需的副本后,向前一个DataNode发送确认信息,前一个往再前一个DataNode发确认信息...... 第一个DataNode向client发送确认信息,client的DFSOutputStream收到确认信息后,将该块从确认列表(ack queue)中移除
2.4、重复2.1——2.3的过程,直到所有数据块传输完成
2.5、当数据传送完成,且收到确认信息时,client调用close()方法关闭进程

图片是简单的流程,可以参考:

技术分享图片

 

HDFS数据存储流程

原文:https://www.cnblogs.com/Edward-Tam/p/15059063.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!