成都hadoop培训教程之HDFS上传数据的流程

[复制链接]

211

主题

211

帖子

346

积分

中级会员

Rank: 3Rank: 3

积分
346
分享到:
发表于 2019-4-25 14:07:40 | 显示全部楼层 |阅读模式
  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的上传流程,欢迎大家指正,我会根据大家的反馈认真改进完善!

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表