HDFS读写流程

Posted huangguoming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS读写流程相关的知识,希望对你有一定的参考价值。

写流程

技术图片

 

1.HDFS Client调用DistributedFileSystem.create(filePath)方法,去和NN进行【RPC】通信!
2.NN 会去check这个路径的文件是否已经存在,是否有权限能够创建这个文件!
假如都ok,就去创建一个新的文件,但是这时还没写数据,是不关联任何的block。
返回输出流 FSDataOutputStream,,封装了输出流 DFSOutputDtream。
3.客户端写入数据:输出流 DFSOutputDtream 将数据分成一个个的数据包,并写入内部队列。
DataStreamer 根据 DataNode 列表来要求 NameNode 分配适合的新块来存储数据备份。
一组 DataNode 构成管线(管线的 DataNode 之间使用 Socket 流式通信); 4.使用管线传输数据:DataStreamer 将数据包流式传输到管线第一个DataNode,
第一个 DataNode 再传到第二个DataNode,直到完成;DataNode 收到数据后发送确认,
管线的 DataNode 所有的确认组成一个确认队列。所有 DataNode 都确认,管线数据包删除; 5.
client写完数据后,调用 close( ) 方法,将剩余所有数据写入Pipline,等待确认ack
后联系 NameNode并且发送文件写入完成信息
6.故障处理:若过程中发生故障,则先关闭管线,把队列中所有数据包添加回去队列,确保数
据包不漏。为另一个正常 DataNode 的当前数据块指定一个新的标识,
并将该标识传送给 NameNode,一遍故障 DataNode 在恢复后删除上面的不完整数据块。
从管线中删除故障 DataNode 并把余下的数据块写入余下正常的 DataNode。NameNode
发现复本两不足时,会在另一个节点创建一个新的复本;

 

以上是关于HDFS读写流程的主要内容,如果未能解决你的问题,请参考以下文章

HDFS入门—— HDFS的读写流程(图文详解步骤2021)

大数据系列2:Hdfs的读写操作

Hadoop之HDFS读写流程

2021年大数据Hadoop:HDFS的数据读写流程

Hadoop面试重点HDFS 的读写流程

HDFS架构及文件读写流程