美文网首页
hdfs 读写过程

hdfs 读写过程

作者: 吾为天帝乎 | 来源:发表于2020-03-01 13:04 被阅读0次

hdfs 文件写入过程

  1. Client 发起文件上传请求, 通过 RPC 与 NameNode 建立通讯, NameNode 检查目标文件是否已存在, 父目录是否存在, 返回是否可以上传

  2. Client 请求第一个 block 该传输到哪些 DataNode 服务器上

  3. NameNode 根据配置文件中指定的备份数量及机架感知原理进行文件分配, 返回可用的 DataNode 的地址如: A, B, C

    • Hadoop 在设计时考虑到数据的安全与高效, 数据文件默认在 HDFS 上存放三份, 存储策略为本地一份, 同机架内其它某一节点上一份, 不同机架的某一节点上一份。
  4. Client 请求 3 台 DataNode 中的一台 A 上传数据(本质上是一个 RPC 调用,建立 pipeline ), A 收到请求会继续调用 B, 然后 B 调用 C, 将整个 pipeline 建立完成, 后逐级返回 client

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

  6. 数据被分割成一个个 packet 数据包在 pipeline 上依次传输, 在 pipeline 反方向上, 逐个发送 ack(命令正确应答), 最终由 pipeline 中第一个 DataNode 节点 A 将 pipelineack 发送给 Client

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

hafs 文件写入过程

  1. Client向NameNode发起RPC请求,来确定请求文件block所在的位置;
  2. NameNode会视情况返回文件的部分或者全部block列表,对于每个block,NameNode 都会返回含有该 block 副本的 DataNode 地址; 这些返回的 DN 地址,会按照集群拓扑结构得出 DataNode 与客户端的距离,然后进行排序,排序两个规则:网络拓扑结构中距离 Client 近的排靠前;心跳机制中超时汇报的 DN 状态为 STALE,这样的排靠后;
  3. Client 选取排序靠前的 DataNode 来读取 block,如果客户端本身就是DataNode,那么将从本地直接获取数据(短路读取特性);
  4. 底层上本质是建立 Socket Stream(FSDataInputStream),重复的调用父类 DataInputStream 的 read 方法,直到这个块上的数据读取完毕;
  5. 当读完列表的 block 后,若文件读取还没有结束,客户端会继续向NameNode 获取下一批的 block 列表;
  6. 读取完一个 block 都会进行 checksum 验证,如果读取 DataNode 时出现错误,客户端会通知 NameNode,然后再从下一个拥有该 block 副本的DataNode 继续读。
  7. read 方法是并行的读取 block 信息,不是一块一块的读取;NameNode 只是返回Client请求包含块的DataNode地址,并不是返回请求块的数据;
  8. 最终读取来所有的 block 会合并成一个完整的最终文件。

相关文章

  • hdfs读写文件过程

    以写入100M文件为例: Client将FileA按64M分块。分成两块,block1和Block2; Clien...

  • hdfs 读写过程

    hdfs 文件写入过程 Client 发起文件上传请求, 通过 RPC 与 NameNode 建立通讯, Name...

  • Hadoop

    1.HDFS的特点? 2.客户端从HDFS中读写数据过程? 3.HDFS的文件目录结构? 4.NameNode的内...

  • Hadoop - yarn notes2

    HDFS相关 1. HDFS读写文件过程 这里描述的 是一个256M的文件上传过程 ① 由客户端 向 NameNo...

  • HDFS的读写过程

    一、HDFS读写过程中的三个角色1.client客户端:负责发起请求2.NameNode:负责协调client请求...

  • HDFS 文件读写过程

    一、HDFS 文件读取剖析 客户端通过调用FileSystem对象的open()来读取希望打开的文件。对于HDFS...

  • HDFS架构

    HDFS架构常规状态: 读写状态:

  • 读写hdfs

    写的replication数量与client端的设置(或xml)文件有关,与服务端无关。当服务端的datanode...

  • Hadoop HDFS 数据读写流程分析

    本文转载自《Hadoop HDFS 数据读写流程分析》,该文对Hdfs的读写流程分析之简洁明了,令人叹服。 HDF...

  • 好程序员大数据培训分享修行宝典-HDFS读写两步教程

    好程序员大数据培训分享修行宝典-HDFS读写两步教程 一、HDFS读写之前提 NameNode(元数据节点):存放...

网友评论

      本文标题:hdfs 读写过程

      本文链接:https://www.haomeiwen.com/subject/fdgfkhtx.html