ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HDFS数据存储流程

2021-07-25 21:32:11  阅读:180  来源: 互联网

标签:HDFS 存储 流程 确认 列表 client DataNode NameNode 数据


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,存储,流程,确认,列表,client,DataNode,NameNode,数据
来源: https://www.cnblogs.com/Edward-Tam/p/15059063.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有