开发者社区> 问答> 正文

HDFS读文件的流程是什么呢?

HDFS读文件的流程是什么呢?

展开
收起
游客mm5dulkpivqdo 2021-12-13 00:11:24 496 0
1 条回答
写回答
取消 提交回答
  • 1)客户端传递一个文件Path给FileSystem的open方法

    2)DFS采用RPC远程获取文件最开始的几个block的datanode地址。Namenode会根据网络拓扑结构决定返回哪些节点(前提是节点有block副本),如果客户端本身是Datanode并且节点上刚好有block副本,直接从本地读取。

    3)客户端使用open方法返回的FSDataInputStream对象读取数据(调用read方法)

    4)DFSInputStream(FSDataInputStream实现了改类)连接持有第一个block的、最近的节点,反复调用read方法读取数据

    5)第一个block读取完毕之后,寻找下一个block的最佳datanode,读取数据。如果有必要,DFSInputStream会联系Namenode获取下一批Block 的节点信息(存放于内存,不持久化),这些寻址过程对客户端都是不可见的。

    6)数据读取完毕,客户端调用close方法关闭流对象

    2021-12-13 07:34:26
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
海量数据分布式存储——Apache HDFS之最新进展 立即下载
大批量处理excel文件到ODPS中方案 立即下载
低代码开发师(初级)实战教程 立即下载