美文网首页
HDFS读写数据流程

HDFS读写数据流程

作者: 鄙人王道长 | 来源:发表于2020-03-05 15:05 被阅读0次

    HDFS中的block、packet、chunk

    1. Block
      这个大家应该知道,文件上传前需要分块,这个块就是block,一般为128MB。
    2. packet
      packet是第二大的单位,它是client端向DataNode,或DataNode的PipLine之间传数据的基本单位,默认64KB。
    3. chunk
      chunk是最小的单位,它是client向DataNode,或DataNode的PipLine之间进行数据校验的基本单位,默认512Byte,因为用作校验,故每个chunk需要带有4Byte的校验位。所以实际每个chunk写入packet的大小为516Byte。

    HDFS读数据流程

    在这里插入图片描述

    注意:

    1. datanode根据它们与客户端的距离(集群的网络拓扑)来进行排序。
    2. FSdataInputStream根据datanode的距离顺序读取数据块,每读完一个块,即关闭与该datanode的链接。
    3. FSdataInputStream与datanode的数据以packet为基本单位。

    HDFS写流程

    在这里插入图片描述

    注意:

    1. 文件在客户端完成逻辑分片
    2. DistributedFileSystem向namenode请求上传文件时,namenode会检查是否已存在文件及文件读写权限。若通过检查,直接先将操作写入EditLog。
    3. 数据packet在datanode中会先写入ByteBuffer中,在由ByteBuffer写入block中
    4. 当第一个datanode完成数据写入后即返回应答,不必等所有的datanode都完成数据写入。

    相关文章

      网友评论

          本文标题:HDFS读写数据流程

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