经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 大数据/云/AI » Hadoop » 查看文章
HDFS上传数据的流程
来源:cnblogs  作者:龙龙泉泉  时间:2019/3/29 11:31:27  对本文有异议

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

2.通过DistributeFileSystem简称DFS会创建DFSClient。

3.DFSClient会与hdfs服务器建立RPC通讯,此时Client(客户端)就可以访问NameNode,并向其发送请求,并且NameNode接到请求命令

后会返回一个NameNode代理对象(NameNodeProxies)。

4.Client通过代理对象NameNodeProxies请求创建文件元信息。

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

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

DataNode1、DataNode2、DataNode3

6.NameNode向Client返回可以存数据的DataNode,这里遵循机架感应原则。

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

8.Client根据NameNode返回的DataNoded的地址信息直接发送给DataNode,并通过创建输出流OutputStream写入到hdfs中,同时DataNode

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

9.上传完成后,DataNode向Client通信表示已经传完数据块,同时向NameNode报告,数据上传完成。

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

原文链接:http://www.cnblogs.com/wang9911-00/p/10619349.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号