1. HDFS读数据流程

  1、与NameNode通信查询元数据,找到文件块所在的DataNode服务器

  2、挑选一台DataNode(网络拓扑上的就近原则,如果都一样,则随机挑选一台DataNode)服务器,请求建立socket流

  3、DataNode开始发送数据(从磁盘里面读取数据放入流,以packet(一个packet为64kb)为单位来做校验)

  4、客户端以packet为单位接收,先在本地缓存,然后写入目标文件

流程如下:

  

2. HDFS写数据流程

  1、跟NameNode通信请求上传文件,NameNode检查目标文件是否已经存在,父目录是否已经存在

  2、NameNode返回是否可以上传

  3、Client先对文件进行切分,请求第一个block该传输到哪些DataNode服务器上

  4、NameNode返回3个DataNode服务器DataNode 1,DataNode 2,DataNode 3

  5、Client请求3台中的一台DataNode 1(网络拓扑上的就近原则,如果都一样,则随机挑选一台DataNode)上传数据(本质上是一个RPC调用,建立pipeline),DataNode 1收到请求会继续调用DataNode 2,然后DataNode 2调用DataNode 3,将整个pipeline建立完成,然后逐级返回客户端

  6、Client开始往DataNode 1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以pocket为单位。写入的时候DataNode会进行数据校验,它并不是通过一个packet进行一次校验而是以chunk为单位进行校验(512byte)。DataNode 1收到一个packet就会传给DataNode 2,DataNode 2传给DataNode 3,DataNode 1每传一个pocket会放入一个应答队列等待应答

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

流程如下:

  

HDFS读写数据流程相关推荐

  1. Hadoop之HDFS读写数据流程

    Hadoop之HDFS读写数据流程 目录 HDFS写数据流程 HDFS读数据流程 网络拓扑概念 机架感知 1. HDFS写数据流程 HDFS写数据流程,如下图 客户端通过Distributed Fil ...

  2. HDFS读写数据的原理

    目录 1 概述 2 HDFS写数据流程 3 HDFS读数据流程 目录 最近由于要准备面试,就把之前学过的东西好好整理下,权当是复习. 下面说下HDFS读写数据的原理. 1 概述 HDFS集群分为两大角 ...

  3. hadoop--HDFS的读写数据流程

    目录 HDFS中block.packet.chunk的概念 1. 数据块block 2. packet 3. chunk HDFS读数据流程 HDFS写数据流程 HDFS中block.packet.c ...

  4. HDFS的工作机制,HDFS写数据流程,HDFS读数据流程(来自学习资料)

    4.hdfs的工作机制 (工作机制的学习主要是为加深对分布式系统的理解,以及增强遇到各种问题时的分析解决能力,形成一定的集群运维能力)   注:很多不是真正理解hadoop技术体系的人会常常觉得HDF ...

  5. 服务端设置忽略更新_深入理解Kafka服务端之日志对象的读写数据流程

    一.场景分析 在前面几篇分析过,Log类用于管理服务端日志相关的各种操作,如: 日志段管理:滚动生成新日志段.组织并管理分区下的所有日志段等 关键偏移量管理:如LogStartOffset.LEO等 ...

  6. hbase读写数据流程

    1.hbase写数据速度极高,吞吐量极大,主要归因于写入数据是先写入memstore内存的操作(当然这里还有wal顺序写日志防止机器崩溃),只有等到内存满了.才会批量顺序flush数据到磁盘,这样就避 ...

  7. hdfs写数据流程分析

  8. 图解Hadoop hdfs写数据流程

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

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

最新文章

  1. Maven官宣:干掉Maven和Gradle!推出更强更快更牛逼的新一代构建工具,炸裂!
  2. Vue计算属性、方法、侦听器
  3. MySQL根据员工姓名所在部门_用一条SQL语句显示所有人员的姓名及所在部门
  4. PinSAGE有伴了! 快速了解PinnerSAGE模型
  5. mac 更换默认蓝牙适配器_聊一聊蓝牙名字和地址的来龙去脉
  6. 软件设计师历年真题(链接在文末)
  7. pyTecplot 学习使用
  8. 鼠标键盘录制工具 脚本录制器 游戏脚本录制工具
  9. 微波射频学习笔记2--------传输线理论
  10. java双重循环去重_java 中 list集合去重
  11. Linux网络操作系统及应用教程(项目式)项目三
  12. mac 如何安装 wget
  13. 简单管理Android手机程序的小程序
  14. 卡西欧计算机十进制换二进制,卡西欧计算机怎么把十进制转换二进制
  15. 机器学习分析租房价格的影响因素
  16. 【2021-11】4 个 Anaconda 国内开源镜像站
  17. 技术大佬:我去,你写的 switch 语句也太老土了吧
  18. 电商收付通系列⑤,商户进件之二级商户进件申请
  19. JAVA中native方法(实现例子)
  20. 服务器项目报备什么意思,报备项目是什么意思

热门文章

  1. 滴滴出行2017秋招笔试真题-编程题汇总_Java实现
  2. impdp导入数据及创建表空间,删除表空间
  3. 网易创始人丁磊在广州互联网聚会上发表的观点
  4. TestLink汉化
  5. HTTP 302错误和HTTP 404错误浅析
  6. 【selenium3+JAVA】界面自动化测试教程(一)——浏览器的启动之IE浏览器的启动
  7. dscp值_TOS-DSCP对照表
  8. 【C语言】卍字通晓→函数+递归
  9. jQuery禁用、开启鼠标滚轮事件
  10. PTA 乙级 1026 程序运行时间 (15point(s))