所以我從來沒有使用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
)並手動執行。