HDFS文件上传流程
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.客户端选择需要上传的文件,点击上传,开始建立连接准备上传 2. 服务端接收连接请求,完成连接的建立,接收上传的文件(遵守协议). 3. 服务端把接收到的文件数 ...
- 6.HDFS文件上传和下载API
HDFS文件上传和下载API package hdfsAPI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop ...
- HDFS文件上传、下载和删除案例
(前提已经配置好HADOOP_HOME的环境变量,用的是hadoop2.7.2) 1.创建Maven工程HdfsClient 2.导入相应的依赖坐标+日志添加 在上面箭头指的文件夹里添加下面的代码 & ...
- Crontab中shell每分钟执行一次HDFS文件上传不执行的解决方案
一.Crontab -e 加入输出Log */1 * * * * /qiwen_list/upload_to_hdfs.sh > /qiwen_list/mapred.log 2>& ...
- 分布式文件系统研究-fastDSF文件上传和下载流程
文件上传流程 客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息.文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名. 组名:文件上传后所在的storag ...
- HDFS中JAVA API的使用(hadoop的文件上传和下载)
HDFS是一个分布式文件系统,既然是文件系统,就可以对其文件进行操作,比如说新建文件.删除文件.读取文件内容等操作.下面记录一下使用JAVA API对HDFS中的文件进行操作的过程. 对分HDFS中的 ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]...
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器 ...
- 文件上传利器SWFUpload使用指南
2019独角兽企业重金招聘Python工程师标准>>> 文件上传利器SWFUpload使用指南 SWFUpload是一个flash和js相结合而成的文件上传插件,其功能非常强大.以前 ...
- AJAX实现图片文件上传
1.文件上传流程 1)客户端将文件数据发送给服务器 2)服务器保存上传的文件数据到服务器端 3)服务器响应给客户端一个文件访问地址 2.与服务器端的约定 1)键的名称(表单域名称):imagefile ...
- CTF-web文件上传漏洞
文件上传漏洞 文件上传功能 文件上传流程和上传攻击 WebShell--网页木马文件 以php语言创建一句木马: 之间的gok为连接的木马 将其放入phpstudy工具的网站根目录里,即网址为http ...
最新文章
- 使用Python中的OpenCV降噪功能增强图像的3个步骤
- 在nginx下配置PATH_INFO的方法,包含新老版本的设置方法,以及$_SERVER[PATH_INFO]和phpinfo()函数的使用方法...
- Monte Carlo仿真方法的基本思想及其特点
- ACM中Java输入输出
- 产品经理是种病,我竟已晚期
- 2020-07-14 CVPR2020 i3DV论文讨论(4) 笔记
- SMTP 队列邮件对照表
- SVM和感知机的区别(转载+自己笔记)
- C# list删除 另外list里面的元素_C#并发实战Parallel.ForEach使用
- 求计算两个时间的差(DateTime类和TimeSpan类)
- 图片复印如何去除黑底_如何用AE制作可爱漂亮闪烁霓虹灯效果?只需简单几步任何人都可以...
- C#中winform使用相对路径读取文件的方法
- 我的Delphi开发经验谈
- (休息几天)读曼昆之微观经济学——税收归宿
- 法国奢侈品牌VILEBREQUIN限时精品店登陆北京老佛爷百货
- 2018美团实习笔试
- 告诉你WHT中文站是什么?
- 【多尺度密集递归融合网络:超分】
- Caj文件怎么转换成pdf?Caj转pdf在线转换器推荐
- 用python打开ccd相机_用python测量CCD图像