Scala 执行SBT程序集时出错
我的问题是我试图执行一个用sbt生成的fatjar程序集,但我无法使它工作。 当我从IDE(intelliJ)运行代码时,它工作得非常好。但是,使用sbt生成程序集后,根据执行jar时使用的命令,会出现两种不同的错误: 从java jvm执行jar:Scala 执行SBT程序集时出错,scala,apache-spark,jdbc,sbt,Scala,Apache Spark,Jdbc,Sbt,我的问题是我试图执行一个用sbt生成的fatjar程序集,但我无法使它工作。 当我从IDE(intelliJ)运行代码时,它工作得非常好。但是,使用sbt生成程序集后,根据执行jar时使用的命令,会出现两种不同的错误: 从java jvm执行jar: java -jar data-self-service-assembly-0.1.jar spark2-submit --master yarn --name self-service data-self-service-assembly-0.1
java -jar data-self-service-assembly-0.1.jar
spark2-submit --master yarn --name self-service data-self-service-assembly-0.1.jar
在做了一些事情之后,我在日志中发现了以下错误:
[Ljava.lang.StackTraceElement;@7435a578.
No FileSystem for scheme: hdfs
[Ljava.lang.StackTraceElement;@290c266c.
No suitable driver
从spark submit执行jar:
java -jar data-self-service-assembly-0.1.jar
spark2-submit --master yarn --name self-service data-self-service-assembly-0.1.jar
在做了一些事情之后,我在日志中发现了以下错误:
[Ljava.lang.StackTraceElement;@7435a578.
No FileSystem for scheme: hdfs
[Ljava.lang.StackTraceElement;@290c266c.
No suitable driver
我的想法快用完了,所以任何能帮助我解决问题的人都会非常感激
谢谢。试试看
一,。检查代码中是否有以下代码段
.setMaster("local[2]")
你可以把它去掉
二,。检查spark配置的路径
spark-submit --verbose --master yarn-cluster --files --properties-file {spark_conf_file_location} --class {main_class} {jar_location}
最后,我能够通过以下方式解决问题:
- 我使用以下url访问了spark历史服务器:
- 我获取了执行日志以获取更多信息
- 我看到spark使用的类路径是这样的:
classpath“,”/opt/cloudera/parcels/SPARK2-2.2.0.cloudera2-1.cdh5.12.0.p0.232957/lib/SPARK2/jars/
- 因此,我在该路径中复制了jdbc的jar文件
- 然后我用以下命令提交了作业:
spark2 submit--master warn--name-self-service-data-self-service-assembly-0.1.jar
希望有帮助。这可能会有所帮助。谢谢@Sandeep Das的评论。我已经尝试了你的两个建议,但都没有效果:u(没有效果。一个胖优步应该拥有你所说的一切,我的意思是胖优步罐)