HDFS Router based基本概念

本文介绍了HDFS Router based联邦架构的背景和整体设计,包括Router的角色、Quota管理、State Store的维护以及安全、部署和挂载表的相关操作。Router提供了高可用性和接口一致性,同时讨论了挂载表、Quota使用、多子集群场景下的数据分布策略。此外,还提到了Router的安全配置和部署注意事项。
摘要由CSDN通过智能技术生成

背景

近期项目考虑解决HDFS节点的上限问题,HDFS单个的NameNode对存储、计算资源的限制,主要原因在单个NameNode存在瓶颈,所有文件索引信息以及HDFS Client的请求都集中在单个节点的服务,因此需要对NameNode进行负载均衡,解决上限问题。Router based的联邦HDFS是一种多NameNode的结构,可以分摊NameNode的压力,通过官网的一些介绍,做了一些简单的流程梳理,同时对官网介绍的内容做了一下翻译。

整体架构

在这里插入图片描述
一些简称:
Router:R
NameNode:NN
NameService:NS
State Store:SS

关于Router

1、Router layer层具备高可用、容错能力,如图中所示,R层本身支持部署多个R服务,R服务具备HA的能力
2、在Router Based模式下,提供的接口和NS的接口相同,也就是说HDFS Client端的使用方式不变
3、R主要有两个职责:

a.R定时将NN(NameSerivce)的信息上报给SS
b.暴露和NN一样的接口给Client使用

4、R支持健康检查(health probe)
5、R有全量的挂载表缓存以及每个集群的状态信息,挂载表后面会提到
6、R和SS都有缓存机制,通过周期性的心跳进行更新
7、Router based模式下的HA有以下几种场景

  • 如果单个R出了问题,R对客户端提供的服务是HA ,这个是可以通过failoverPorvider或者proxyProvider来配置
  • 如果SS出了问题,那么R就会进入安全模式,此时是无法提供服务的,客户端访问的时候会认为当前的R是一个备节点,然后去访问另一个R,此时需要手动恢复才行,命令如下
/bin/hdfs dfsrouteradmin -safemode enter|leave|get
  • 如果NN的信息在一个Router上丢失了,此时会通过SS来确保NN信息的准确性,因为本身R存在多个,所有R均对所有的NS进行监控,然后报心跳给SS,因此在SS端是可以保证信息的一致性的
  • 如果一个NN确实不可用了,R就会尝试上报该NS的备节点给SS,如果两个NS都跪了,那么就会报异常
  • 如果一个NN的信息长时间没有报给SS(可配置的几个周期),那么R就会记录这个NN过期,并且不会路由到这个NN,一旦心跳恢复,这个NN就会恢复正常使用

8、关于Router暴露的接口:

  • RPC接口,基本覆盖了原有大部分的Client的操作,而且经过基本你的spark、hive上的查询和MapReduce验证
  • Admin操作权限,可以通过命令对不同集群的挂载表进行增加和删除操作
  • WebHDFS,和R提供的RPC接口功能相同,不过是rest方式的
  • JMX,webUI用来统计集群状态的
  • Web UI,查看当前的mount table、NS以及修改联邦集群信息的界面

9、关于Router无法实现的一些场景

  • 从不同的NS修改文件/目录的名字(连接的NS1,然后通过RPC操作在NS2对文件操作)
  • 从不同的NS拷贝文件
  • 当一个文件/目录在rebalancing的时候,是无法写入的(什么时候发生rebalancing

10、mount table,是一个映射关系,可以理解为</xxx/xxx/filexx, NS-X>,即文件以及文件对应的NS是哪个。原本单个NS是不需要这个的,直接通过Path可以找到对应的block,R的目的就是在这个上面封装了一层。

关于Quota

Quota管理需要注意,联邦模式支持在mount table层进行quota设置,quota usage会定期更新,当发生读写操作的时候,会使用到quota设置,但需要注意的是,如果global quota生效,那么对于子集群的quota单独设置或者清除都是不建议的,因为R的admin server会定期用全局的quota去覆盖各个子集群的quota,所以子集群的quota设置并不会真正生效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值