[英]Class path error using spark-submit
我使用scala的2.10.4版本构建了一个胖罐,但它将在亚马逊的EMR上运行,该EMR具有scala 2.11.1。
当我将jar(使用assembly
插件创建)复制到EMR集群并使用java -jar my.jar
运行时,我得到了预期的输出(scopt,命令行解析器,告诉我有缺少的参数)。
当我使用scala my.jar
运行它时,我得到同样的东西。 如果我在主节点或从节点上运行jar,这是相同的。
但是,当我使用spark-submit my.jar
运行它时,我收到一个错误:
Exception in thread "main" java.lang.NoSuchMethodError: scopt.Read$.seqRead(Lscopt/Read;)Lscopt/Read;
所以出于某种原因,使用spark-submit
,它找不到scopt,即使我通过--master local
。
我在这里错过了什么?
我建议你从行家下载scopt库在这里和外部与火花提交补充的罐子。
例如:
spark-submit \
[your other options here] \
--jars $(echo ./jars/*.jar | tr ' ' ',') \
--target yourapp.jar
当然, jars
目录是您实际放置依赖项(库)的地方。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.