博客
关于我
HDFS 的数据流
阅读量:621 次
发布时间:2019-03-13

本文共 1212 字,大约阅读时间需要 4 分钟。

HDFS 数据流与节点距离计算

HDFS(Hadoop 分散存储)是一种高效的存储系统,支持大规模数据的分布式存储与处理。在文件写入过程中,特定的数据流与节点选择机制需要�雾解析。以下从流程和节点计算两个方面详细阐述。

HDFS 写数据流程

HDFS 的写入流程包含多个关键环节,从客户端到数据节点的通信与数据传输均遵循特定的规则。

  • 客户端通过 Distributed FileSystem 模块向 NameNode (NN) 请求上传文件。在此过程中,NN 检查目标文件是否已存在,且确认目标目录是否有效。

  • NN 返回上传结果。若文件不存在或目录无效,客户端可进行上传;若已存在则需其他处理。

  • 客户端请求第一个 B lock 分布到多个 DataNode (DN) 服务器。NN 返回三个 DN 节点,分别记为 dn1、dn2、dn3。

  • 客户端使用 FSDataOutputStream 模块向 dn1 传输数据。数据按照 Packet 单位传输,dn1会将每个 Packet 转发给 dn2,dn2再转发至 dn3,确保数据流通。

  • 数据传输过程中,每个 DN 级别均建立通信管道。dn1 会将收到的 Packet 存入应答队列,等待回复处理。

  • 在完成一个 B lock 的传输后,客户端重新请求 NN上传下一个 B lock,重复上述步骤。

  • 节点距离计算

    在数据传输过程中,NameNode (NN) 通过特定机制选择距离最近的 DataNode (DN) 接收数据。这种距离计算基于文件架构,确保数据分布均衡。

    节点距离定义为:两个节点的路径在树状架构中最近的共同祖先距离总和。例如,若节点位于 /d1/r1/n1,则其与其他节点的距离可如图所示计算。

    例:

    • 如果数据中心d1的机架r1拥有节点n1,文件架构为/d1/r1/n1。
    • 节点距离需通过找出两个节点的最低公共祖先,再计算两者路径之和。

    机架感知(副本存储节点选择)

    HDFS 模式下,文件副本的分布遵循特定机制:

  • 第一个副本通常位于客户端所在的节点,或在集群内部随机选择。
  • 第二个副本需与第一个副本位于同一机架的节点,随机指定。
  • 第三个副本则选择不同机架的节点,以增强数据冗余和抗风险能力。
  • HDFS 读数据流程

    读取流程遵循类似步骤,依赖数据分布和节点选择机制:

  • 客户端通过 Distributed FileSystem 向 NN 请求文件。NN 根据元数据,确定文件块所在 DN 地址。
  • NN 随机选择一个符合靠近原则且被允许访问的 DN ,请求读取文件。
  • 选中 DN 开始数据传输。数据以 Packet 为单位流出,包含校验机制。
  • 客户端接收每个 Packet 并存入本地缓存,最后写入目标文件。
  • 整个流程确保数据高效传输和准确读取,符合HDFS 的优化目标。

    通过优化后的描述,内容既科技性强,又易于搜索引擎理解和抓取,体现了现代存储系统的关键原理。

    转载地址:http://ekjaz.baihongyu.com/

    你可能感兴趣的文章
    Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>
    nacos配置自动刷新源码解析
    查看>>
    Nacos集群搭建
    查看>>
    nacos集群搭建
    查看>>
    Navicat for MySQL 查看BLOB字段内容
    查看>>
    Neo4j电影关系图Cypher
    查看>>
    Neo4j的安装与使用
    查看>>
    Neo4j(2):环境搭建
    查看>>
    Neo私链
    查看>>
    nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>
    NetApp凭借领先的混合云数据与服务把握数字化转型机遇
    查看>>
    NetBeans IDE8.0需要JDK1.7及以上版本
    查看>>
    netcat的端口转发功能的实现
    查看>>
    netfilter应用场景
    查看>>
    netlink2.6.32内核实现源码
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    NetScaler的常用配置
    查看>>