栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

细节图解HDFS-读流程

细节图解HDFS-读流程

细节图解HDFS-读流程

说明
  • 在open的时候,客户端会去执行步骤2去获取起始位置的LocatedBlocks,getLocatedBlocks(src, start, dfsClientConf.prefetchSize),第三个参数是表示数据长度,默认是10 * defaultBlockSize,既1280M。在大多数情况下,无需请求步骤5,每一次定位block时只需要走第一次缓存的LocatedBlocks即可。当读取的offset大于缓存的LocatedBlocks的fileLength的时候,这个时候就需要向NN请求新一轮的LocatedBlocks,并将新的LocatedBlocks加入到缓存中。
步骤
  1. 客户端请求读取一个文件,路径为src.
  2. 调用DistributedFileSystem的open()方法,通过DFSClient获取0-1280M区间的block和dn的列表,在返回前NN的BlockManager会根据距离客户端的距离对此列表进行排序。
  3. 开始读取文件流了,根据LocatedBlocks找到合适的DataNode来读取数据
  4. 结束一次read后,下一次会seek到block上,如果block信息未缓存则调用步骤56.当所有的数据都读取完毕,关闭流。
相关类
  • DistributedFileSystem
  • DFSClient
  • DFSInputStream
  • NameNodeRpcServer
  • FSNamesystem
  • LocatedBlocks
hadoop 版本号
  • 2.7.0

持续更新,欢迎订阅,与君共赏

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422819.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号