我已经在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)
答案 0 :(得分:1)
这是扫描通过它的源代码和IDE副本有帮助的事情之一...快速grep显示它只支持file:/和local:/ URL。
AFAIK应用程序JAR必须始终是本地的,但--jars
列出的任何内容(如果在spark集群内部可见)将被拾取并添加到工作本身的CP中。