②Distrbuted File System会 通过RPC协议调用名称节点来确定请求文件块所在的位置。这里需要注意的是,名称节点只会返回调用文件中开始的几个块而不是全部返回,这些返回的数据节点会按照Hadoop定义的集群拓扑结构得出的客户端的距离,然后再进行排序。DFSInputStream对象是用来管理数据节点和名称节点之间的I/O。
③完成以上步骤,客户端利用FSDataInputStream的Read(方法开始读取数据。
④FSDataInputStream连接保存此文件第一个数据 块的最近的数据节点,并以数据流的形式读取数据;客户端多次调用Read(,直到到达数据块结束位置。
⑤当第一个块读取完毕时,DFSDataInputStream会关闭连接,并查找存储下一个数据库距离客户端最近的数据节点。
⑥客户端按照DFSDataInputStream打开和数据节点连接返回的数据流的顺序读取该块,它也会调用名称节点来检查下一组所在的数据节点的位置信息。当完成所有文件的读取后,客户端则会在DFSDataInputStream中调用Close( )函数关闭数据流
CSDN写数据流
最新推荐文章于 2022-12-15 21:04:23 发布