>我在具有高可用性的Hadoop集群上运行Spark-submit命令时面临异常。
以下命令在未启用 HA 的其他群集上工作正常。
spark-submit --master yarn-client --executor-memory 4g --executor-cores 2 --class com.domain.app.module.mainclass target/SNAPSHOT-jar-with-dependencies.jar
相同的命令在启用了 HA 的群集上不起作用,并引发以下异常。
Exception in thread "main" java.lang.AbstractMethodError: org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.getProxy()Lorg/apache/hadoop/io/retry/FailoverProxyProvider$ProxyInfo
请建议我是否需要在火花会议中设置任何祝贺。
来自 http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html#Configuration_details 的说明
请检查您的 hdfs 网站.xml:
<property>
<name>dfs.nameservices</name>
<value>mycluster</value> <-- Choose a name for your cluster
</property>
...
<property>
<name>dfs.client.failover.proxy.provider.mycluster</name> <-- Put cluster name here
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
您还应该检查该页面上提到的其他设置是否已正确配置:
- dfs.ha.namenodes.[名称服务 ID]
- dfs.namenode.rpc-address.[名称服务 ID]。[名称节点 ID]
- dfs.namenode.http-address.[名称服务 ID]。[名称节点 ID]
- dfs.namenode.shared.edits.dir
- dfs.client.failover.proxy.provider.[名称服务 ID]
- dfs.ha.fencing.methods fs.defaultFS dfs.journalnode.edits.dir