2016-11-04 32 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)並手動執行​​。