博学谷提供支持
HDFS包括两个层次,分别是命名空间管理和块/存储管理。
1.命名空间管理
HDFS的命名空间包含目录、文件和块。命名空间管理是指命名空间支持对HDFS中的目录、文件和块做类似文件系统的创建、修改、删除、列表文件和目录等基本操作。
2.块/存储管理
在块存储服务中包含两部分工作,即块管理和物理存储。这是一个更通用的存储服务。其他的应用可以直接建立在Block Storage上,如HBase、Foreign Namespaces等。
(1)块管理
处理Datanode向Namenode注册的请求,处理Datanode的成员关系,处理来自Datanode周期性的心跳。
处理来自块的报告信息,维护块的位置信息。
处理与块相关的操作,包括块的创建、删除、修改及获取块信息。
管理副本放置(Replica Placement)和块的复制及多余块的删除。
(2)物理存储
所谓物理存储就是Datanode把块存储到本地文件系统中,对本地文件系统的读、写操作。
HDFS架构
整个HDFS集群中只有一个Namenode,还有一个Backup Namenode。
Namenode会实时将变化的HDFS的信息同步给Backup Namenode。
Backup Namenode顾名思义是用来做Namenode的备份的。
Namenode中命名空间以层次结构组织存储着文件名和BlockID的对应关系、
BlockID和具体Block位置的对应关系。
这个单独的Namenode管理着数个Datanode,Block分布在各个Datanode中,每个Datanode会周期性地向此Namenode发送心跳消息,报告自己所在Datanode的使用状态。
Block是用来存储数据的最小单元,通常一个文件会存储在一个或者多个Block中,默认Block的大小为64MB。