java.lang.ClassCastException:org.apache.hadoop.conf.Configuration无法强制转换为org.apache.hadoop.yarn.conf.YarnConfiguration

时间:2018-04-14 19:37:34

标签: apache-spark yarn cloudera apache-spark-2.0 scala-2.11

我在cloudera中使用纱线运行火花应用程序。 Spark版本:2.1

我收到以下错误:

  

SLF4J:类路径包含多个SLF4J绑定。 SLF4J:找到了   绑定   [JAR:文件:/data/yarn/nm/filecache/13/jars/slf4j-log4j12-1.7.16.jar /org/slf4j/impl/StaticLoggerBinder.class]   SLF4J:发现绑定   [JAR:文件:/opt/cloudera/parcels/CDH-5.10.2-1.cdh5.10.2.p0.5/jars/slf4j-log4j12-1.7.5.jar /org/slf4j/impl/StaticLoggerBinder.class ]   SLF4J:请参阅http://www.slf4j.org/codes.html#multiple_bindings   说明。 SLF4J:实际绑定是类型   [org.slf4j.impl.Log4jLoggerFactory] ​​18/04/14 22:20:57 INFO   util.SignalUtils:TERM 18/04/14 22:20:57的注册信号处理程序   INFO util.SignalUtils:HUP 18/04/14的注册信号处理程序   22:20:57 INFO util.SignalUtils:INT的已注册信号处理程序   线程“main”java.lang.ClassCastException中的异常:   org.apache.hadoop.conf.Configuration无法转换为   org.apache.hadoop.yarn.conf.YarnConfiguration at   。org.apache.spark.deploy.yarn.ApplicationMaster(ApplicationMaster.scala:60)     在   org.apache.spark.deploy.yarn.ApplicationMaster $$ anonfun $主$ 1.适用$ MCV $ SP(ApplicationMaster.scala:764)     在   org.apache.spark.deploy.SparkHadoopUtil $$匿名$ 1.run(SparkHadoopUtil.scala:67)     在   org.apache.spark.deploy.SparkHadoopUtil $$匿名$ 1.run(SparkHadoopUtil.scala:66)     在java.security.AccessController.doPrivileged(Native Method)at   javax.security.auth.Subject.doAs(Subject.java:415)at   org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656)     在   org.apache.spark.deploy.SparkHadoopUtil.runAsSparkUser(SparkHadoopUtil.scala:66)     在   org.apache.spark.deploy.yarn.ApplicationMaster $。主要(ApplicationMaster.scala:763)     在   org.apache.spark.deploy.yarn.ApplicationMaster.main(ApplicationMaster.scala)

1 个答案:

答案 0 :(得分:1)

我设法通过验证SPARK_HOME变量中配置的spark版本与cloudera中安装的hadoop版本匹配来解决它。 从以下链接https://spark.apache.org/downloads.html,您可以下载适合您所需的hadoop的版本。 cloudera中的haddop版本可以通过以下方式找到:

$ hadoop version