HDFS写流程

Posted 高登军

tags:

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

 

HDFS client首先会与NameNode交互元数据信息,然后NameNode制定策略,分配NameNode节点,客户端先会与离自己最近的DataNode进行socket连接,已经与DataNode建立连接的节点再与剩余节点之间进行连接构成pipeline,请注意,由于客户端只有一块网卡, HDFS客户端只与某一个DataNode连接,而非与所有的DataNode建立连接,当pipeline建立后,对于客户端来说,副本信息是透明的,并且不会因为副本数的数量多而影响传输速度,因为客户端只与其中一个DataNode传输。

Client会切分文件的Block块,按Block线性和NameNode获取DataNode列表(副本数),验证DataNode列表后以更小的单位流式传输数据,各个节点之间两两通信确定可用。

当前Block传输结束后,DataNode向NameNode汇报Block信息,DataNode向Client汇报完成,Client向NameNode汇报完成。然后获取下一个Block存放的DataNode列表,重复上述步骤,直到Client汇报完成。

最终,NameNode会在写流程更新文件状态。

 

 

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

Hadoop之HDFS读写流程

HDFS的写数据流程以及异常写数据流程

Hadoop--04---HDFS_02----读写流程

HDFS——写文件流程

HDFS的写流程

浅谈HDFS写数据流程的核心架构设计(上)