参考:https://blog.csdn.net/litianxiang_kaola/article/details/70984777

https://blog.csdn.net/zhanglh046/article/details/78547490

一、客户端读流程简述

1.跟namenode通信查询元数据,找到文件块所在的datanode服务器,HDFS客户端首先调用DistributedFileSystem

.open方法打开HDFS文件,底层会调用ClientProtocal.open方法,返回一个用于读取的HdfsDataInputStream对象。

2.从NameNode获取DataNode地址:在构造DFSInputStream的时候,对调用ClientPortocal.getBlockLocations方法向NameNode获取该文件起始位置数据块信息。NameNode返回的数据块的存储位置是按照与客户端距离远近排序的。所以DFSInputStream可以选择一个最优的DataNode节点,然后与这个节点建立数据连接读取数据块。

3.连接到DataNode读取数据块: HDFS客户端通过调用DFSInputSttream从最优的DataNode读取数据块,数据会以数据包packet形式从DataNode以流式接口传送到客户端,当达到一个数据块末尾的时候,DFSInputStream就会再次调用ClientProtocal.getBlockLoctions获取下一个数据块的位置信息,并建立和这个新的数据块的最优节点之间的连接,然后HDFS继续读取数据块。

(客户端读取数据块的时候,很有可能这个数据块的DataNode出现异常,也就是无法读取数据。这时候DFSInputStream会切换到另一个保存了这个数据块副本的DataNode,然后读取数据。另外,数据块的应答不仅包含了数据块还包含了校验值,HDFS客户端收到数据应答包的时候,会对数据进行校验,如果校验错误,也就是DataNode这个数据块副本出现了损坏,HDFS 客户端会通过ClientProtocal.reportBadBlocks向NameNode汇报这个损坏的数据块副本,同时DFSInputStream会尝试从其他DataNode读取这个数据块)

4.客户端关闭输入流

二、客户端写流程简述

1.和namenode通信请求上传文件,namenode检查目标文件是否已存在,父目录是否存在

2.namenode返回是否可以上传

3.client请求第一个 block该传输到哪些datanode服务器上

4.namenode返回3个datanode服务器ABC

5.client请求3台dn中的一台A上传数据(本质上是一个RPC调用,建立pipeline),A收到请求会继续调用B,然后B调用C,将真个pipeline建立完成,逐级返回客户端

6.client开始往A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,A收到一个packet就会传给B,B传给C;A每传一个packet会放入一个应答队列等待应答

7.当一个block传输完成之后,client再次请求namenode上传第二个block的服务器。

HDFS 读写流程简述相关推荐

  1. 大数据系列文章-Hadoop的HDFS读写流程(二)

    在介绍HDFS读写流程时,先介绍下Block副本放置策略. Block副本放置策略 第一个副本:放置在上传文件的DataNode:如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点. 第二 ...

  2. java基础巩固-宇宙第一AiYWM:为了维持生计,大数据Hadoop之HDFS分布式文件系统(HDFS读写流程、主从集群两种问题“单点故障”及“压力过大内存受限”、HDFS的架构设计)~整起

    Hadoop之HDFS 目录 一.大数据 二.HADOOP 三.HDFS 1.HDFS基本概念 2.HDFS的架构设计 3.HDFS自己对于上面两种数据持久化技术的实现: 4.HDFS读写流程 5.H ...

  3. hdfs读写流程_深度探索Hadoop分布式文件系统(HDFS)数据读取流程

    一.开篇 Hadoop分布式文件系统(HDFS)是Hadoop大数据生态最底层的数据存储设施.因其具备了海量数据分布式存储能力,针对不同批处理业务的大吞吐数据计算承载力,使其综合复杂度要远远高于其他数 ...

  4. hdfs读写流程_必须掌握的分布式文件存储系统—HDFS

    必须掌握的分布式文件存储系统-HDFS​mp.weixin.qq.com HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spar ...

  5. hdfs读写流程_一篇文章搞清楚 HDFS 基本原理

    随着互联网的发展,数据日益增多,增长超过了单机能够处理的上线,数据如何存储和处理成为了科技公司的难题,随着google的三篇论文的发布,大家终于找到了一个方案-分布式文件系统+MapReduce.Ha ...

  6. hdfs读写流程_一文读懂HDFS分布式存储框架分析

    一文读懂HDFS分布式存储框架分析 HDFS是一套基于区块链技术的个人的数据存储系统,利用无处不在的私人PC存储空间及便捷的网络为个人提供数据加密存储服务,将闲置的存储空间利用起来,服务于正处于爆发期 ...

  7. HDFS读写流程以及多节点、单节点磁盘负载均衡

    副本放置策略 生产上建议3个副本. 第一个副本: 假如上传节点为DN节点,优先放置本节点:否则就随机挑选一台磁盘不太慢,CPU不太繁忙的节点. 第二个副本: 放置在于第一个副本的不同的机架的节点上 第 ...

  8. Hadoop:HDFS读写流程

    文章目录 一.HDFS写数据流程 1.1 剖析文件写入 1.2 副本存储节点选择 二.HDFS读数据流程 一.HDFS写数据流程 1.1 剖析文件写入 HDFS写数据流程,如图所示: 客户端通过DIs ...

  9. HDFS读写流程(重点,有些面试官总喜欢问到,记录一下)

    写数据流程 ①服务端启动HDFS中的NN和DN进程 ②客户端创建一个分布式文件系统客户端,由客户端向NN发送请求,请求上传文件 ③NN处理请求,检查客户端是否有权限上传,路径是否合法等 ④检查通过,N ...

最新文章

  1. 软件开发环境-按应用范围分类
  2. 福布斯2019全球最佳创投人榜单发布,沈南鹏蝉联全球第一
  3. Elasticsearch学习笔记-04修改数据
  4. vuex刷新页面数据丢失怎么解决_vuex状态机浅谈
  5. 这周开发工作时间及内容、思考和阅读的内容
  6. kubernetes-Service
  7. 推荐一个一分钟就可以搭建好的静态文件服务器,基于nodejs
  8. pcb板子开窗_PCB 层定义
  9. Coursera自动驾驶课程第18讲:The Planning Problem
  10. Swift快速入门(一)第一个Swift程序
  11. 甲骨文中国疯狂裁员 招聘网站上线“甲骨文人才专场”
  12. 【html、CSS、javascript-9】jquery-选择器及过滤器
  13. 202206-2 寻宝大冒险
  14. 筛数方法相关系数_EXCEL中如何求一组数据的相关系数
  15. sap 双计量单位_采购订单单位与基本计量单位不一致问题案例
  16. 【立贴为证】二十年后2027,百度眼必然成人眼一个
  17. 人工智能的发展方向与机遇
  18. 原版win7 install.wim在哪?
  19. Python+OpenCV实现实时视频3D换脸
  20. 大话设计模式(php版)第五章——依赖倒装原则

热门文章

  1. golang linux清屏命令,如何清除Go中的终端屏幕?
  2. 以数字孪生技术赋能智慧校园建设,迎接智能未来
  3. 知识图谱 图神经网络 图数据库
  4. 电脑磁盘分区D盘划分给C盘,(无需格式化)DiskGenius使用<亲测有效>
  5. [code] PTA 胡凡算法笔记 DAY028
  6. 开学后的狂欢-----C++中的sort函数
  7. 若尔当型(The Jordan form)
  8. POJ2456(最大化最小值)解题报告
  9. QQ群消息的屏蔽与重要消息自动提取
  10. android 连接打印机sdk,GitHub - 13671447200/Printer-Android-SDK