在具有HighAvailability的Hadoop集群上运行Spark-submit时出现异常

时间:2016-07-08 08:21:52

标签: hadoop apache-spark

我在使用HighAvailability的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

请建议我是否需要在spark conf中设置任何配置。

1 个答案:

答案 0 :(得分:0)

根据http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html#Configuration_details

上的说明

请检查你的hdfs-site.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。[nameservice ID]
  • dfs.namenode.rpc-address。[nameservice ID]。[name node ID]
  • dfs.namenode.http-address。[nameservice ID]。[name node ID]
  • dfs.namenode.shared.edits.dir
  • dfs.client.failover.proxy.provider。[nameservice ID]
  • dfs.ha.fencing.methods fs.defaultFS dfs.journalnode.edits.dir