我正在尝试从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]
答案 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年文件。
干杯!问题已解决!!!!!!