【赵渝强老师】基于RBF的HDFS联邦架构

2024-08-18 11:01:17 浏览数 (2)

在最新的Hadoop版本中又实现了基于Router的联盟架构,并且在这个架构之上还实现了许多增强集群管理能力的特性。Router将挂载表从客户端中抽离了出来,解决了ViewFS存在的问题。

  视频讲解如下:

视频内容

  为了对用户屏蔽联盟的实现细节,将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的状态等;挂载表保存了路径到子集群的映射关系。

0 人点赞