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. linux常用指令_Linux系统常用指令总结
  2. centos7 系统备份
  3. Android安全开发之安全使用HTTPS
  4. JSR303数据校验-2021新版
  5. 前端学习(668):分支导读
  6. 前端填空题_一年前端面试总结|入职字节|2020.8
  7. SAP ABAP打印MM采购发票打印开发
  8. 使用集成SOA网关的PL / SQL中的REST
  9. 51单片机c语言开发工具keil安装
  10. 动态链接库劫持--libc
  11. 合并下载ts流媒体视频
  12. 渥太华计算机读研的好学校,加拿大硕士留学:渥太华最好的大学硕士项目
  13. 货拉拉NLP算法实习生面经
  14. S3C2440裸机实战 之一 创建初始工程
  15. 【Android-Kotlin】匿名内部类与Lambda 表达式(附RecycleView监听)
  16. 输入底面半径和高,求圆柱体的表面积
  17. 以程序员的视角带你看郑州
  18. 有哪些免费、好用的多人协同办公软件推荐?
  19. Java使用poi做加自定义注解实现对象与Excel相互转换
  20. 苹果a10处理器_苹果新的2020Pad升级了处理器仅此而已

热门文章

  1. 隐匿函数,二分法 冒泡排序
  2. 数字后端概念——cut metal
  3. 什么是数据运营?数据运营是做什么的?
  4. 单片机控制无线传输模块nRF905之模块化编程
  5. 计算程序中flag是什么意思,python中flag什么意思
  6. java实现录屏功能
  7. 计算机算样本标准偏差,计算器中的总体标准差和样本标准差有什么区别
  8. html设置为壁纸win10,Win10默认桌面背景怎么设置
  9. android手机无法root成功,安卓手机不能ROOT怎么办
  10. win7更新win10错误代码提示0x80072f8f-0x20000的解决方法