赞
踩
上图描述了HDFS客户端程序在读取文件时的各个主要事件的流程。
第一步:客户端程序(client)通过调用FileSystem对象的open()方法来打开需要读取的文件,在HDFS中FileSystem是DistributedFileSystem类的一个实例。
第二步:DistributedFileSystem 使用RPC调用namenode的相关接口,来获取要读取的文件所包含的数据块(block)信息。(如果要读取的文件很大,它就包含许多数据块(block),这时DistributedFileSystem一次只会加载一部分块信息。)
对于每个block,namenode都会返回存储该数据块副本的所有datanode地址。需要留意的是,这些地址是按照一定的规则排序好的。如果客户端所在的节点本身就是一个datanode,比如MapReduce任务,且存储有需要读取的block副本的话,那么客户端就会从本机读取数据。 Distribut |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。