2020/11/2 sunhaiqi@bonc.com.cn
文章目录
一、Federation(联邦)
1.1背景(HDFS的两个层面)
命名空间:
- 命名空间:由目录,文件和块组成。
- 它支持所有与名称空间相关的文件系统操作,例如创建,删除,修改和列出文件和目录
块存储服务:
-
Block管理:
- 提供datanode集群的注册和定期的心跳检查,处理block的报告并掌握block的位置;
- 支持block的相关操作,如增删改查和得到block的位置管理副本位置,管理副本的复制和删除
-
存储:本地系统的datanodes提供,允许读写。
↑before:整个集群使用单个NameNode,共用一个nameSpace
↓then:向HDFS添加多个NameNode,nameSpace
1.2联邦的概念
多nameNode&nameSpace:
-
多个NameNode相互独立,使得HDFS的命名服务能够水平扩展,这些NN分别进行各自命名空间和块的管理,不需要彼此协调
-
多个NameSpace管理属于自己的一组块,这些属于同一个命名空间的块组成一个块池
-
DataNode
-
被所有NameNode使用,作为通用的数据块存储设备
-
向联邦中每一个NameNode注册
-
向NameNode发送心跳机制以及block报告
-
处理NameNode的命令
-
每个datanode为多个块池提供存储
-
Block池:
-
每个块池存储同一个nameSpace里的所有文件的块集合
-
被独立管理,互不影响
-
块存储在不同的DataNode中的
→允许为新的block产生Block ID并不会需要其他的namespace。一个NameNode出问题也不会影响datanode为集群中的其他NameNode服务。
- NameSpace与块池绑定一起称为NameSpaceVolume,作为一个独立的单位进行管理
- 当nameNode/nameSpace被删除时,对应的block池也被删除
→当集群升级时,一个NameSpaceVolume是一个升级单元
集群ID:
- ClusterID用来标识以及识别集群中的所有节点,格式化NameNode时,Cluster自动生成。
- 该ClusterID 用于将其他NameNode格式化为集群。