HDFS运行流程图(图是盗的)

首先用户即客户端想要上传文件,就先要给namenode发个请求,告诉它说我要上传文件了(即写数据),然后namenode会返回一个响应,这个响应是namenode根据自身情况,比如会先查一下namenode里面还能存数据吗?能存多少?有几个datanode能存?(心跳信息)然后返回一个可以存储的节点列表,意思是这些里面能存,但不是能存的datanode全部返回,它会根据上传文件的大小来适当的返回,客户端收到这个列表后,就向根据返回的列表里面的datanode中写数据,文件会分为多个块(block),写的过程是以流的方式写入的,一个块存入一个DataNode,存完后DataNode就会备份,我们默认的备份数是3,存完后,会告诉namenode说我存完了。这样就结束了hdfs文件上传的流程。

详细文字解释:

1.   客户端拿到一个文件,跟namenode说,我要上传这个文件,上传到哪个目录下。我们假设这个文件名为 cjk.avi,目录为 /hadoop/hdfs/

2.   namenode拿到这个文件后,获取文件名,然后去元数据中查找/hadoop/hdfs/中是否已经存在相同文件名的文件,如果没有,那么告诉客户端说你可以上传这个文件

3.   客户端接到可以上传文件的命令后,会将文件进行切分(hadoop2.X是128M),切分成N(N>=1)块,如果切成n块,那么除去最后一个,其它块的大小都是一样的。

4.   客户端拿到第一个块block01后,跟namenode说,我要上传block01,然后namenode去自身的datanode信息池中查找应该上传到哪几个datanode(备份数)中,然后将查询到的datanode的信息告诉客户端

5.   客户端拿到datanode的信息后,开辟一个socket流将block01上传到namenode返回的datanode中最近的一个datanode节点,然后这个datanode节点会对block01进行水平备份,也就是将数据从datanode本地复制到其他指定的机器上。

6.   datanode将数据水平备份完成之后,会通知客户端,说block01上传成功

7.   然后客户端会通知namenode说block01上传成功,此时namenode会将元数据(可以简单地理解为记录了block块存放到哪个datanode中)同步到内存中

8.   其他的block块循环上面的过程

9.   至此一个大文件就上传到hdfs中了

HDFS文件上传流程相关推荐

  1. 文件上传流程和协议规范,简,全

    文件上传流程与规范协议 文件上传流程 1.客户端选择需要上传的文件,点击上传,开始建立连接准备上传 2. 服务端接收连接请求,完成连接的建立,接收上传的文件(遵守协议). 3. 服务端把接收到的文件数 ...

  2. 6.HDFS文件上传和下载API

    HDFS文件上传和下载API package hdfsAPI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop ...

  3. HDFS文件上传、下载和删除案例

    (前提已经配置好HADOOP_HOME的环境变量,用的是hadoop2.7.2) 1.创建Maven工程HdfsClient 2.导入相应的依赖坐标+日志添加 在上面箭头指的文件夹里添加下面的代码 & ...

  4. Crontab中shell每分钟执行一次HDFS文件上传不执行的解决方案

    一.Crontab -e 加入输出Log */1 * * * * /qiwen_list/upload_to_hdfs.sh > /qiwen_list/mapred.log 2>& ...

  5. 分布式文件系统研究-fastDSF文件上传和下载流程

    文件上传流程 客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息.文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名. 组名:文件上传后所在的storag ...

  6. HDFS中JAVA API的使用(hadoop的文件上传和下载)

    HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件.删除文件.读取文件内容等操作.下面记录一下使用JAVA API对HDFS中的文件进行操作的过程. 对分HDFS中的 ...

  7. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...

  8. 文件上传利器SWFUpload使用指南

    2019独角兽企业重金招聘Python工程师标准>>> 文件上传利器SWFUpload使用指南 SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前 ...

  9. AJAX实现图片文件上传

    1.文件上传流程 1)客户端将文件数据发送给服务器 2)服务器保存上传的文件数据到服务器端 3)服务器响应给客户端一个文件访问地址 2.与服务器端的约定 1)键的名称(表单域名称):imagefile ...

  10. CTF-web文件上传漏洞

    文件上传漏洞 文件上传功能 文件上传流程和上传攻击 WebShell--网页木马文件 以php语言创建一句木马: 之间的gok为连接的木马 将其放入phpstudy工具的网站根目录里,即网址为http ...

最新文章

  1. 使用Python中的OpenCV降噪功能增强图像的3个步骤
  2. 在nginx下配置PATH_INFO的方法,包含新老版本的设置方法,以及$_SERVER[PATH_INFO]和phpinfo()函数的使用方法...
  3. Monte Carlo仿真方法的基本思想及其特点
  4. ACM中Java输入输出
  5. 产品经理是种病,我竟已晚期
  6. 2020-07-14 CVPR2020 i3DV论文讨论(4) 笔记
  7. SMTP 队列邮件对照表
  8. SVM和感知机的区别(转载+自己笔记)
  9. C# list删除 另外list里面的元素_C#并发实战Parallel.ForEach使用
  10. 求计算两个时间的差(DateTime类和TimeSpan类)
  11. 图片复印如何去除黑底_如何用AE制作可爱漂亮闪烁霓虹灯效果?只需简单几步任何人都可以...
  12. C#中winform使用相对路径读取文件的方法
  13. 我的Delphi开发经验谈
  14. (休息几天)读曼昆之微观经济学——税收归宿
  15. 法国奢侈品牌VILEBREQUIN限时精品店登陆北京老佛爷百货
  16. 2018美团实习笔试
  17. 告诉你WHT中文站是什么?
  18. 【多尺度密集递归融合网络:超分】
  19. Caj文件怎么转换成pdf?Caj转pdf在线转换器推荐
  20. 用python打开ccd相机_用python测量CCD图像

热门文章

  1. python mro文件_Python面向对象之MRO
  2. python列表替换_Python 列表元素替换
  3. word页码任意设置,如显示在页脚外侧、横版页面要求显示在左侧或右侧
  4. 服装网站建设策划书-服装网站建设目的需求分析策划书
  5. 球球大作战JAVA小游戏
  6. qq机器人智能聊天插件源码
  7. win的反义词_133个英语单词反义词,小学生必须要掌握!为孩子收藏吧
  8. tas5424_TAS5424
  9. axure 倒计时_Axure 8.0实例 |自定义倒计时制作流程
  10. 如何将虚拟机中的内网IP设置成固定的