在这里插入图片描述

  在最新的Hadoop版本中又实现了基于Router的联盟架构,并且在这个架构之上还实现了许多增强集群管理能力的特性。Router将挂载表从客户端中抽离了出来,解决了ViewFS存在的问题。
  视频讲解如下:
https://www.bilibili.com/video/BV1Ws421u73P/?aid=1855637661&c...

  为了对用户屏蔽联盟的实现细节,将ViewFS的配置和实现从客户端中剥离出来,一个自然的想法引入新的代理服务,客户端直接请求代理服务,再由其解析ViewFS后将请求转发给正确的子集群。这个代理服务叫做Router。RBF主要包括两个模块:Router和State Store,基于RBF(Router-Based Federation)的联盟架构如下图示。
在这里插入图片描述

一、Router

  在HDFS中Router可以有多个且Router之间相互独立。如果一个Router不可用不会影响其他Router提供服务。Router主要提供以下的功能特性:

  • 联盟的接口
      向客户端提供了一个全局的NameNode接口,负责接收客户端请求。根据挂载表中的信息查找正确的子集群,并转发请求到对应子集群Active NameNode。在收到Active NameNode的响应结果之后,将结果返回给客户端。为了提升性能,Router可以缓存远程挂载表条目和子集群的状态。
  • NameNode信息的维护
      Router定期检查一个NameNode的状态和向StateStore报告其高可用性状态和负载空间状态。为了提高NameNode的性能,Router使用State Store中的高可用性状态信息,以将请求转发到最有可能处于活动状态的NameNode。一个Router可以检测多个NameNode。
    Router还实现可用性和容错性。Router可以独立于HDFS集群部署并且是无状态的,可以放在负载均衡器后面使用。Router还实现了其他的接口,比如:RPC、routerAdmin、WebUI、WebHDFS、JMX。

    二、State Store

      State Store有两种存储方式:本地存储和Zookeeper。它主要维护两种信息:Membership和挂载表(Mount Table)。Membership用于记录子集群的状态,比如总容量、DataNode数量、NameNode的HA状态,Router的状态等;挂载表保存了路径到子集群的映射关系。


赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...