繁体   English   中英

Spark不通过spark-submit查找客户端程序

[英]Spark not locating client program via spark-submit

我正在尝试将spark作业部署到spark集群中,并且面临着我相信的类加载问题。

错误详情如下:

java.lang.ClassNotFoundException: org.examples.datasets.FlightDataProcessor
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.apache.spark.util.Utils$.classForName(Utils.scala:238)
        at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:810)
        at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:167)
        at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:195)
        at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
        at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:924)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:933)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
19/06/02 06:26:11 INFO ShutdownHookManager: Shutdown hook called

目前,我必须将应用程序jar复制到spark jars文件夹,作为部署脚本的一部分来解决此问题。

但是我相信spark-submit驱动程序应该智能地完成这个事情,因为每次我想要部署一些火花工作我需要将所有客户端程序复制到jars它根本不方便

环境信息:

Spark版本: 2.11-2.4.3

Scala版本: 2.11.8

这是我的源代码的链接:

部署脚本

https://github.com/anhtv08/spark-cassandra-example/blob/master/scripts/submit_spark_flight_job.sh

Spark职位代码

https://github.com/anhtv08/spark-cassandra-example/blob/master/src/main/scala/org/examples/datasets/FlightDataProcessor.scala

感谢任何帮助。

由于代码可用是jar的一部分,我们可以将jar上传到hdfs或maven repo并使用以下任一选项。
* --jars / spark.jars - 我们可以指定上传到HDFS的jar的路径。
* --packages / spark.jars.packages - 我们可以指定maven坐标,如果我们能够将jar上传到maven repo(我们还需要指定Spark关于maven repo的凭据)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM