
NameNode负责存储对应的元数据(有谁,块信息在哪)
DataNode存储实实在在的数据块,如图分成两块
左侧客户端向NameNode发起请求读取数据,NameNode是老大,所以要问它能不能读。问之前要创建一个(谈判代表)DistributedSystem分布式文件系统对象(进行交涉)下载me.avi。NameNode先判断你是谁,有没有权限下载文件,再判断集群上有没有me.avi文件。如果有文件且有权限,就把元数据信息(DataNode有哪些块信息)返回客户端。客户端创建FSDataInput流读数据。FSDataInput获取到的是整个集群的元数据,它会选择距离最近的节点进行读。它还会考虑当前节点的负载能力,如果负载达到量级就分配到另一个节点。第一块读完,读第二块进行追加(串行读)。
网友评论