一.namenode->可以看作是分布式文件系统中的管理者,主要负责管理文件系统的命名空间、集群配置信息和存储块的复制等
1.管理文件系统文件的元数据信息(包括文件名称、大小、位置、属性、创建时间、修改时间等等)
2.维护文件到块的对应关系和块到节点的对应关系
3.维护用户对文件的操作信息(文件的增删改查)
4.利用fsimage和edits对元数据进行管理
二.datanode->是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode
1.K-V存储
2.和namenode 通信
3.完成和客户端还有其它节点的大规模通信
三.读写策略
1.写策略:采用“机架感知”,同一个块有三个放置位置,有两个块是放在同一机架的不同位置,第三个块是放在不同机架的不同位置。
2.读策略:client通过接口调用,先访问namenode,在namenode处得到需要文件的块的放置位置等信息,然后在相应的datanode读取数据信息。