多个NameNode的HDFS集群切换HA后,Spark应用变得很慢的处理办法
作者:互联网
Spark客户端需要依次轮询到Active NameNode才能正确执行。
查看hdfs-site.xml配置,配置在hdfs-site.xml中的FailoverProxyProvider接口为ConfiguredFailoverProxyProvider。源码实现为:从hdfs-site.xml中查找所有的dfs.namenode.rpc-address键,依次遍历尝试,直到找到ActiveNameNode。
ConfiguredFailoverProxyProvider还有另外一个实现:org.apache.hadoop.hdfs.server.namenode.ha.RequestHedgingProxyProvider为升级版实现,同时并发发出请求,只要收到一个正确地响应,则认为是Active,并且马上取消掉其他请求。
我做了一个测试:
切换到第5个NameNode,执行hdfs dfs -ls /
ConfigBased: 10秒
RequestHedging: 1秒
可以发现,RequestHedging这种查找方式要比之前的方式更快。
标签:xml,hdfs,HDFS,site,RequestHedging,namenode,NameNode,Spark 来源: https://www.cnblogs.com/mr-bigdata/p/16272439.html