将一个jar提交到sequenceiq docker-spark容器
所以我从来没有使用过Spark或Docker,但是我必须将它用于一个项目。 我试图了解这是如何工作的。 所以我在Eclipse中构build了一个胖jar子,并希望将其提交给我使用此指南设置的docker容器: https : //github.com/sequenceiq/docker-spark
现在,我并不真正了解如何从我的本地系统中将我的jar包发送到docker容器,然后运行它。
我想我错过了这一切真的一起工作,但也许有人可以清除它。
我会非常感谢!
据我所知有两个可能性:
1,扩展sequenceiq图像,并创build您自己的docker图像*
我认为最好的方法是“扩展”sequenceiq spark docker镜像,并在图像的构build阶段COPY
你的spark应用程序。
所以你的Dockerfile应该看起来像这样:
FROM sequenceiq/spark:1.6.0 COPY sparkapplication.jar sparkapplication.jar COPY bootstrap.sh /etc/bootstrap.sh ENTRYPOINT ["/etc/bootstrap.sh"]
您需要使用spark-submit
命令创build/编辑bootstrap.sh(入口点):
你可以使用他们的bootstrap.sh并在这里添加你的spark提交命令(在这个文件的末尾的某处),如下所示:
$SPAKR_HOME/bin/spark-submit \ --class MainClass \ --master local[*] \ /sparkapplication.jar
只需将您的sparkapplication.jar
nad bootstrap.sh
放在sparkapplication.jar
旁边(在相同的文件夹中)。
2,手动将spark应用程序复制到运行容器
第二个select是使用他们的docker容器和复制应用程序到容器:
docker cp sparkapplication.jar container:/sparkapplication.jar
然后exec
(附加)到容器( docker exec -it container bash
)并手动执行spark-submit
。