1 简介
Hdfs federation实际是把多个hdfs集群统一到一个命名空间下。
Hdfs federation 作用扩大NN容量,共享DN数据,且方便客户端访问。
如何实现federation哪?使用client side mount table。
使用场景:
a) 集群一部分对内使用,一部分对外开放 可以做成两个ha下的federation,第一个对内访问 第二个对外使用
b) 一般发部分应用下 namenode内存在64G已经算是很不错了 可以不使用federation,仅扩大内存即可
c) 使用federation的好处是 增强namenode的吞吐量,在namenode吞吐量收到瓶颈下可以考虑使用federation
2 结构图:
不同namenode管理不同集群的datanode 但是这些datanode针对不同nn共享磁盘,防止某集群dn使用率不高问题。
看上图,可以看到不同颜色的dn data block 会存储在dn中,同时根据颜色他们(幼儿园的孩子)会自动找到他们的妈妈(nn)
多个NN共用一个集群里DN上的存储资源,每个NN都可以单独对外提供服务
每个NN都会定义一个存储池,有单独的id,每个DN都为所有存储池提供存储
DN会按照存储池id向其对应的NN汇报块信息,同时,DN会向所有NN汇报本地存储可用资源情况
如果需要在客户端方便的访问若干个NN上的资源,可以使用客户端挂载表,把不同的目录映射到不同的NN,但NN上必须存在相应的目录
这样设计的好处大致有:
改动最小,向前兼容
现有的NN无需任何配置改动.
如果现有的客户端只连某台NN的话,代码和配置也无需改动。
分离命名空间管理和块存储管理
提供良好扩展性的同时允许其他文件系统或应用直接使用块存储池
统一的块存储管理保证了资源利用率
可以只通过防火墙配置达到一定的文件访问隔离,而无需使用复杂的Kerberos认证
客户端挂载表
通过路径自动对应NN
使Federation的配置改动对应用透明
3 安装待补充