Hadoophadoop大数据生态圈Hadoop系

hdfs读之总结<四>

2019-08-23  本文已影响5人  古语1

一、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。
上一篇下一篇

猜你喜欢

热点阅读