HDFS HA yarn 在 spark-submit 上的这个错误是啥

Posted

技术标签:

【中文标题】HDFS HA yarn 在 spark-submit 上的这个错误是啥【英文标题】:What is this error on spark-submit by HDFS HA yarnHDFS HA yarn 在 spark-submit 上的这个错误是什么 【发布时间】:2022-01-24 03:37:45 【问题描述】:

这是我的错误日志:

$ /spark-submit --master yarn --deploy-mode cluster pi.py
...
2021-12-23 01:31:04,330 INFO retry.RetryInvocationHandler: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.ipc.StandbyException): Operation category WRITE is not supported in state standby. Visit https://s.apache.org/sbnn-error
    at org.apache.hadoop.hdfs.server.namenode.ha.StandbyState.checkOperation(StandbyState.java:88)
    at org.apache.hadoop.hdfs.server.namenode.NameNode$NameNodeHAContext.checkOperation(NameNode.java:1954)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkOperation(FSNamesystem.java:1442)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setPermission(FSNamesystem.java:1895)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setPermission(NameNodeRpcServer.java:860)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setPermission(ClientNamenodeProtocolServerSideTranslatorPB.java:526)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:524)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1025)
    at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:876)
    at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:822)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:422)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2682)
, while invoking ClientNamenodeProtocolTranslatorPB.setPermission over master/172.17.0.2:8020. Trying to failover immediately.
...

为什么会出现这个错误??

注意。 Spark master 运行“master”,所以 spark-submit 命令运行在“master”中

注意。 Spark worker 正在运行 'worker1' 和 'worker2' 和 'worker3'

注意。 ResourceManager 在 'master' 和 'master2' 中运行

添加。打印上面的错误日志时,master2的DFSZKFailoverController消失到jps命令结果中。

添加。打印上面的错误日志时,master的Namenode消失到jps命令结果中。

【问题讨论】:

【参考方案1】:

当 Spark 无法访问 HDFS 时会发生这种情况。

如果配置正确,HDFS 客户端将通过尝试将自身故障转移到 HA 中的另一个 NameNode 来处理 StandbyException,然后它会重新尝试该操作。

手动替换活动 Namenode URI 并检查您是否仍然遇到相同的错误,如果没有,则 HA 未正确配置。

【讨论】:

嘿,谢谢你的回答。我检查了关于 namenode(active, standby) 和 resourcemanager(activ, standby) 的状态变化,但这很好。接下来我应该检查什么? 我误解了你的回答。当我在另一台服务器上运行 Namenode 时,它​​运行良好!你能说出为什么会这样吗? @Feroz

以上是关于HDFS HA yarn 在 spark-submit 上的这个错误是啥的主要内容,如果未能解决你的问题,请参考以下文章

HDFS 和 YARN 的 HA 故障切换

Hadoop hdfs yarn HA

HadoopHDFS HA高可用

Hadoop 2.5.2 HDFS HA+YARN HA 应用配置

搭建hadoop2.6.0 HDFS HA及YARN HA

HDFS&Yarn HA架构设计