NameNode的作用:
NameNode在内存中保存着整个文件系统的名称空间和文件数据块的地址映射
整个HDFS可存储的文件数受限于NameNode的内存大小。
NameNode元数据信息:
文件名,文件目录结构,文件属性(生成时间,副本数,权限)每个文件的快列表。
以及列表中的块与块所在的DataNode之间的地址映射关系,在内存中加载文件系统中
每个文件和每个数据块的引用关系数据会定期保存到本地磁盘(fsimage文件和edits文件)
NameNode文件操作:
NameNode负责文件 元数据的操作DataNode负责处理文件内容的读写请求,
数据流不经过NameNode,会询问它跟那个DataNode联系。
NameNode副本:
文件数据块到底存放到哪些DataNode上,是由NameNode决定的,NameNode根据全局情况
做出放置副本的决定。
NameNode心跳机制:
全权管理数据块的复制,周期性的接受心跳和块的状态报告信息
(包含该DataNode上所有数据块的列表)若接受到心跳信息,
NameNode认为DataNode工作正常,如果在10分钟后还接受不到DataNode的心跳,那么
NameNode认为DataNode已经宕机,这个时候NameNode准备把DataNode上的数据块进行
重新的复制。块的状态报告包含了一个DataNode所有数据块的列表,blocks report每个1个
小时发送一次。
DataNode作用:
提供真实文件数据的存储服务。
- DataNode以数据块的形式存储HDFS文件
- DataNode响应HDFS客户端读写请求
- DataNode周期性向NameNode汇报心跳信息
- DataNode周期性向NameNode汇报数据块信息
- DataNode周期性向NameNode汇报缓存数据块信息