当jar在s3上时,spark-submit失败

时间:2016-12-02 01:58:16

标签: apache-spark amazon-s3

我已经在EC2服务器上安装了以下设置的docker:

docker run --name master  -d -p 7077:7077 -e AWS_ACCESS_KEY_ID='MY_ID' -e AWS_SECRET_ACCESS_KEY='MY_SECRET_KEY' gettyimages/spark

我使用以下命令运行spark-submit进程。

docker exec -it master bin/spark-submit --master spark://0.0.0.0:7077 --verbose --class my/class s3://myBucket/path

这是来自跑步的打印输出:

Warning: Skip remote jar s3://myBucket/MyBin.
java.lang.ClassNotFoundException: my/class
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:348)
    at org.apache.spark.util.Utils$.classForName(Utils.scala:228)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:693)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

1 个答案:

答案 0 :(得分:1)

这是扫描通过它的源代码和IDE副本有帮助的事情之一...快速grep显示它只支持file:/和local:/ URL。

AFAIK应用程序JAR必须始终是本地的,但--jars列出的任何内容(如果在spark集群内部可见)将被拾取并添加到工作本身的CP中。