HDFS读文件流程
在这里插入图片描述

读取文件过程简述:
1、客户端向NameNode发起读数据请求;
2、NameNode响应请求并告诉客户端要读的文件的数据块位置(存在哪个DataNode上);
3、客户端到对应DataNode读取数据,当数据读取到达末端,关闭与这个DataNode的连接,并查找下一个数据块,直到文件数据全部读完;
4、最后关闭输出流。
读取文件过程详细解读:
1、客户端调用FileSystem 实例的open 方法,获得这个文件对应的输入流InputStream。
2、通过RPC 远程调用NameNode ,获得NameNode 中此文件对应的数据块保存位置,包括这个文件的副本的保存位置( 主要是各DataNode的地址) 。
3、获得输入流之后,客户端调用read 方法读取数据。选择最近的DataNode 建立连接并读取数据。
4、如果客户端和其中一个DataNode 位于同一机器(比如MapReduce 过程中的mapper 和reducer),那么就会直接从本地读取数据。
5、到达数据块末端,关闭与这个DataNode 的连接,然后重新查找下一个数据块。直到文件数据全部读完;
6、客户端调用close ,关闭输入流DFS InputStream
HDFS写文件流程
在这里插入图片

本文详细介绍了HDFS的读文件和写文件流程。在读取时,客户端首先向NameNode请求文件位置,然后从DataNode读取数据块。在写入时,客户端切割文件并发送数据块到NameNode,确保在多个DataNode上创建副本。整个过程涉及NameNode、DataNode和客户端之间的交互。
最低0.47元/天 解锁文章
348

被折叠的 条评论
为什么被折叠?



