当前位置: 移动技术网 > IT编程>数据库>其他数据库 > HDFS上传数据的流程

HDFS上传数据的流程

2019年03月30日  | 移动技术网IT编程  | 我要评论

1.当客户端输入一条指令:hdfs dfs -put text.txt /text时,这条命令会给到distributefilesystem。

2.通过distributefilesystem简称dfs会创建dfsclient。

3.dfsclient会与hdfs服务器建立rpc通讯,此时客户端就可以访问namenode,并向其发送请求,并且namenode接到请求命令

后会返回一个namenode代理对象(namenodeproxies)。

4.客户端通过代理对象namenodeproxies请求创建文件元信息。

5.namenode接受请求后就开始创建文件元信息,这些元信息包括:文件名:text.txt、存储路径:/text、文件大小:1kb、冗余度:3、数据块:

根据文件大小会切分成多个数据块,如果文件更大,会缓存文件元信息(缓存大小默认为1000m,可更改),数据块可以分别存到3个副本中:

datanode1、datanode2、datanode3

6.namenode向客户端返回可以存数据的datanode,这里遵循机架感应原则。

7.客户端根据返回的信息先将文件分块(hadoop2.x版本每一个block为128m,而之前的版本为64m)。

8.客户端根据namenode返回的datanoded的地址信息直接发送给datanode,并通过创建输出流outputstream写入到hdfs中,同时datanode

会复制到其他两台机器,完成循环上传。

9.上传完成后,datanode向客户端通信表示已经传完数据块,同时向namenode报告,数据上传完成。

以上是我通过学习,自己总结的hdfs的上传流程,欢迎大家指正,我会根据大家的反馈认真改进完善!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网