所以我从来没有使用Spark或Docker,但我必须将它用于项目。 我试图理解这是如何工作的。所以我在Eclipse中构建了一个胖罐子,并希望将它提交给我使用本指南设置的Docker容器:https://github.com/sequenceiq/docker-spark将jar提交到sequenceiq docker-spark容器
现在,我不太了解如何从本地系统获取我的jar到我的码头集装箱,然后运行它。
我想我很想念这一切真的可以一起工作,但也许有人可以清除它。
我会非常感谢!
所以我从来没有使用Spark或Docker,但我必须将它用于项目。 我试图理解这是如何工作的。所以我在Eclipse中构建了一个胖罐子,并希望将它提交给我使用本指南设置的Docker容器:https://github.com/sequenceiq/docker-spark将jar提交到sequenceiq docker-spark容器
现在,我不太了解如何从本地系统获取我的jar到我的码头集装箱,然后运行它。
我想我很想念这一切真的可以一起工作,但也许有人可以清除它。
我会非常感谢!
据我所知有两个posibilities:
1,延长sequenceiq形象,打造自己的码头工人形象*
我认为最好的办法就是在“扩展” sequenceiq火花泊坞窗图像和COPY
您的火花应用程序在图像的构建阶段。
所以你应该Dockerfile看起来像:
FROM sequenceiq/spark:1.6.0
COPY sparkapplication.jar sparkapplication.jar
COPY bootstrap.sh /etc/bootstrap.sh
ENTRYPOINT ["/etc/bootstrap.sh"]
,你需要用命令创建/编辑bootstrap.sh(入口点):
您可以使用Their bootstrap.sh,并添加您在这里提交的火花命令(某处在这个文件的结尾)是这样的:
$SPAKR_HOME/bin/spark-submit \
--class MainClass \
--master local[*] \
/sparkapplication.jar
只要把你的sparkapplication.jar
nad bootstrap.sh
旁边Dockerfile
(在同一文件夹中)。
2,火花应用手动复制到运行容器
第二个选择是使用他们的搬运工容器和复制应用到容器:
docker cp sparkapplication.jar container:/sparkapplication.jar
然后exec
(附加)到容器(docker exec -it container bash
)并手动执行。