【问题标题】:Exception in thread "main" java.lang.NoClassDefFoundError: com/typesafe/config/ConfigFactory线程“主”java.lang.NoClassDefFoundError 中的异常:com/typesafe/config/ConfigFactory
【发布时间】:2017-06-22 20:33:11
【问题描述】:

我在尝试运行 spark 提交评论时收到上述错误消息:

spark-submit --class "retail.DataValidator" --master local --executor-memory 2g --total-executor-cores 2 sample-spark-180417_2.11-1.0.jar /home/hduser/Downloads/inputfiles/  /home/hduser/output/

错误信息:

Exception in thread "main" java.lang.NoClassDefFoundError: com/typesafe/config/ConfigFactory
at retail.DataValidator$.main(DataValidator.scala:12)
at retail.DataValidator.main(DataValidator.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:738)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: com.typesafe.config.ConfigFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 11 more

build.sbt 文件:

name := "sample-spark-180417"
version := "1.0"
scalaVersion := "2.11.8"

libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "2.1.0"
libraryDependencies += "com.typesafe" % "config" % "1.3.1"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.1.0"
libraryDependencies += "org.apache.spark" % "spark-hive_2.11" % "2.1.0"
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.42"
libraryDependencies += "org.scala-lang" % "scala-swing" % "2.10+"

我没有任何 maven 依赖项或 pom.xml 文件。

谢谢

【问题讨论】:

  • 根据 sbt 文件,您已添加:libraryDependencies += "com.typesafe" % "config" % "1.3.1"。 ------------------- 那个jar主要负责ClassDefNotFound异常。 -->>> 在构建 jar 时检查该 jar 是否被丢弃。
  • 我使用“sbt package”命令从程序路径构建jar,如何查看是否添加到jar中,请指教
  • 如果是fat-jar,解压你的jar sample-spark-***.jar,看看它是否有com/typesafe/config/******这样的文件夹。
  • 否则,在 spark-submit 命令中添加:--jars /fullpath/first.jar 以包含 jar "com.typesafe" % "config" % "1.3.1"
  • 我用这个命令查看了 jar 文件“jar tf jar-file”的内容,但是类型安全它不存在

标签: apache-spark


【解决方案1】:

由于它不是一个胖 jar,所以 spark 集群的类路径中没有类型安全的 jar。

将 spark 作业提交为::

spark-submit --jars ./typesafe-***.jar --class "retail.DataValidator" --master local --executor-memory 2g --total-executor-cores 2 sample-spark-180417_2.11-1.0.jar /home/hduser/Downloads/inputfiles/  /home/hduser/output/

它会将该 jar 保存在类路径中,并提交作业。

【讨论】:

  • 谢谢它现在工作正常,你能告诉我这个我用过“--executor-memory 2g --total-executor-cores 2”但是在 localhost:4040 UI 中它显示我没有核心 1 和存储内存为 383.9 MB 如何解决此问题
猜你喜欢
  • 1970-01-01
  • 2021-12-31
  • 2018-10-10
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-04
相关资源
最近更新 更多