hdfs读之总结<四>

作者: 古语1 | 来源:发表于2019-08-23 10:17 被阅读5次

    一、hdfs读取流程图

    假设block副本个数3个

    image.png

    客户端发起请求到namenode节点,要求namenode告诉客户端读取的block位置在哪些datanode上,第一次读取的datanode一般是网络路径最近的一个,如果读取失败,客户端会通过ClientProtocol协议上报给namenode,该datanode节点的block数据损坏了,然后继续读取datanode2一直到读取成功或者读完所有datanode。

    一、hdfs读取流总结

    1. hdfs读过程涉及到很多rpc通讯,其中DFSClient与NameNode通信协议是ClientProtocol,NameNode和DataNode通信协议是DatanodeProtocol
      ,NameNode与secondaryNameNode通信协议是NamenodeProtocol。
    2. hdfs通讯有自带的RPC和Socket通讯,其中client和namenode,datanode和namenode是通过rpc通信而client和datanode之间是通过socket通信。
    3. hdfs有远程scoket读取和本地读取两种方式,如果设dfs.client.read.shortcircuit = true,如果client和block在一个节点上,就会直接读取,无需通过TCP远程读取,提高读取效率。
    4. hdfs存储的单位是block,一个条大数据可以跨多个block存储,但是读取时候是一packet包读取的,每个packet能够传输多个chunk,一个block会被切分多个chunk。

    相关文章

      网友评论

        本文标题:hdfs读之总结<四>

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