HDFS上传文件

Posted dummyly

tags:

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

技术分享图片

1.client端向namenode请求上传文件,查看文件是否存在,是否有权限往hdfs写入

2.如果文件不存在,权限OK就根据副本数N(例如2个),根据网络拓扑选择N个离client端最近的datanode返回client。

(把文件切块,一个一个block块的请求namenode,返回最优的datanode,datanode要定期向namenode发送心跳,默认3秒,看是否存活,如果死掉,选择返回的主机时就会排除掉死掉的主机)

3.block1与返回的其中一台主机建立联系(dfs01),这台主机会与另外返回的主机建立联系(dfs02),形成管道流。

4.client把block数据线读到内存,然后切分成packet的形式沿着管道流发送,发送到每台建立联系的主机。

5.发送block1完成后,从最后一台主机返回ack响应,沿着管道流响应给client。

6.发送block1完成后,就发送下一个block,同上。

7.当所有block存完后,client会要求namenode关闭管道流。

 

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

hdfs文件上传,删除,修改权限命令

用java向hdfs上传文件时,如何实现断点续传

Hadoop之HDFS原理及文件上传下载源码分析(下)

hdfs文件上传机制与namenode元数据管理机制

Flume 需要时间将文件上传到 HDFS

HDFS上传文件