2016-11-04 30 views
1

所以我从来没有使用Spark或Docker,但我必须将它用于项目。 我试图理解这是如何工作的。所以我在Eclipse中构建了一个胖罐子,并希望将它提交给我使用本指南设置的Docker容器:https://github.com/sequenceiq/docker-spark将jar提交到sequenceiq docker-spark容器

现在,我不太了解如何从本地系统获取我的jar到我的码头集装箱,然后运行它。

我想我很想念这一切真的可以一起工作,但也许有人可以清除它。

我会非常感谢!

回答

2

据我所知有两个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)并手动执行​​。