MAPREDUCE服务 MRS-配置NameNode blacklist:配置场景

时间:2024-04-22 14:51:51

配置场景

在现有的缺省DFSclient failover proxy provider中,一旦某进程中的一个NameNode发生故障,在同一进程中的所有HDFS client实例都会尝试再次连接NameNode,导致应用长时间等待超时。

当位于同一JVM进程中的客户端对无法访问的NameNode进行连接时,会对系统造成负担。为了避免这种负担,MRS集群搭载了NameNode blacklist功能。

在新的Blacklisting DFSClient failover provider中,故障的NameNode将被记录至一个列表中。DFSClient会利用这些信息,防止客户端再次连接这些NameNode。该功能被称为NameNode blacklisting。

例如,如下集群配置:

  • NameNode:NameNode1、NameNode2
  • dfs.client.failover.connection.retries:20
  • 单JVM中的进程:10个客户端

在上述集群中,如果当前处于active状态的NameNode1无法访问,client1将会对NameNode1进行20次重新连接,之后发生故障转移,client1将会连接至NameNode2。与此相同,client2至client10也会在对NameNode1进行20次重新连接后连接至NameNode2。这样会延长NameNode的整体故障恢复时间。

针对该情况,当client1试图连接当前处于active状态的NameNode1,但其已经发生故障时,NameNode1将会被添加至blacklist。这样其余client就不会连接已被添加至blacklist的NameNode1,而是会选择连接NameNode2。

如果在任一时刻,所有NameNode都被添加至blacklist,则其内容会被清空,client会按照初始的NameNode list重新尝试连接。如果再次出现任何故障,NameNode仍会被添加至blacklist。

图1 NameNode blacklisting状态图
support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1670.html