hadoop3.X版本特性:路由器联邦

2020/11/15 shq000912@163.com

一、路由器联邦(Router-based Federation/RBF)

1.1背景

  • 在 HDFS 单集群的架构中,随着集群规模的扩大,Block Manager 和Namespace 会消耗掉 NameNode 越来越多的资源,最终导致NameNode 难以提供可靠的服务。于是就提出了 Federation 架构。

Federation 架构是指由多个子集群联合构成一个 Federation 集群,通常的做法是这 些子集群会共享Datanode.然后由挂载表来维护Federation Namespace 到子集群Namespace 间的映射关系,这个挂载表存在客户端本地的配置文件里,由客户端来解析从而访问到正确的子集群。在社区的实现中,用了一个新的协议viewfs:// 来 访问Federation Namespace.

  • Federation架构带来的问题:

​ (1)挂载表是由客户端实现,修改代码逻辑需要考虑新老客户端的兼容性并分发新的客户端

​ (2)在实现子集群 Namespace 的 Rebalance 时,难以保证所有客户端同步更新到新的挂载表

为了解决上述问题,hadoop提出了新的Federation架构:Router-based Federation

​ 相较于ViewFs通过在客户端维护挂载表信息,Router Federation是真正做到了对客户端的完全透明。因为这部分映射信息将会被额外的保存下来,还会持久化出去。这个模块我们姑且称之为状态维护(State Maintenance)的模块。另外还有一个重要的部分是请求转发模块,这里我们称之为Request forward。

​ 以上2个模块构成了HDFS新的Federation软件层的设计。在这层软件结构以下,就是各个子集群。每个子集群会与Federation软件层,进行信息交互。结构图如下:

在这里插入图片描述

1.2代理服务-Router层次设计

​ 为了对用户屏蔽Federation的实现细节,将挂在表的配置和实现从客户端中剥离出来,一个自然的想法是:引入新的代理服务。客户端直接请求代理服务,由其解析挂载表后将请求转发给正确的子集群。我们将这个代理服务叫做Router。

  • 系统中可以有多个处于软状态的Router,每个路由器都有两个角色:

​ (1)联合接口:提供Federation接口,这个接口是给客户端使用的,它会将客户端请求转发到正确的子集群上。

​ (2&#

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值