如何解决java.lang.NoSuchMethodError:org.apache.hadoop.conf.Configuration.getPassword?

时间:2019-05-09 11:28:24

标签: java spring apache-spark

我正在尝试从Spring Web应用程序运行一个Spark进程,但收到此错误:

java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.getPassword(Ljava/lang/String;)[C
    at org.apache.spark.SSLOptions$.$anonfun$parse$8(SSLOptions.scala:188) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at scala.Option.orElse(Option.scala:306) ~[scala-library-2.12.8.jar:na]
    at org.apache.spark.SSLOptions$.parse(SSLOptions.scala:188) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.SecurityManager.<init>(SecurityManager.scala:117) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:236) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:185) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:257) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:424) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.SparkContext$.getOrCreate(SparkContext.scala:2520) ~[spark-core_2.12-2.4.3.jar:2.4.3]
    at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$5(SparkSession.scala:935) ~[spark-sql_2.12-2.4.2.jar:2.4.2]
    at scala.Option.getOrElse(Option.scala:138) ~[scala-library-2.12.8.jar:na]
    at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:926) ~[spark-sql_2.12-2.4.2.jar:2.4.2]

3 个答案:

答案 0 :(得分:1)

问题明确表明hadoop库版本不匹配。

此外,我遇到了同样的问题,由于我使用的是Maven,因此我在下面发表了评论。由于我没有使用。它解决了这个问题

<!--<dependency>-->
      <!--<groupId>org.apache.hadoop</groupId>-->
      <!--<artifactId>hadoop-client</artifactId>-->
      <!--<version>${hadoop.version}</version>-->
      <!--<scope>provided</scope>-->
    <!--</dependency>-->

答案 1 :(得分:0)

hadoop的版本不同,请确保hadoop的依赖项相同。

答案 2 :(得分:0)

我在Hadoop-2.7.2和Spark-2.3.1上也遇到了相同的错误

我通过从C:\ work \ spark-2.3.1-bin-hadoop2.7 \ jars中删除旧的日期JAR文件解决了该问题。我将所有罐子的日期都修改为2018年和2019年。

我删除了所有2018年文件,仅保留了2019年文件。

干杯!问题已解决!!!!!!