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

如何解决java.lang.NoSuchMethodError:org.apache.hadoop.conf.Configuration.getPassword?,java,spring,apache-spark,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]

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

问题清楚地表明hadoop库版本不匹配

此外,我面临同样的问题,因为我使用maven,所以我在下面评论。因为我没有使用。它解决了这个问题

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


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

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

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

我删除了所有2018个文件,只保留了2019个文件

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

可比较检查类路径中不同库的版本:hadoop,spark