2015-06-14 100 views
4

我有一個hadoop集羣,我正在使用Numpy,SciPy和Pandas進行數據分析。我希望能夠使用'--file'參數將命令作爲zip/tar文件提交給我的hadoop作業。這個zip文件應該有一切,我的python程序需要執行,無論我的腳本在集羣上執行什麼節點,我都不會在運行時遇到ImportError。如何將依賴的python腳本打包到zip/tar?

由於公司政策,在每個節點上安裝這些庫不是完全可行的,尤其是對於探索性/敏捷開發。雖然我已經安裝了pip和virtualenv來創建沙箱。

我已經看過zipimportpython packaging但這些都不符合我的需求/我在使用這些工具時遇到困難。

有沒有人有這樣做的運氣?我似乎無法在網上找到任何成功案例。

謝謝!

+0

不確定這些特定的依賴關係,但pex在創建一個文件方面效果很好:https://pex.readthedocs.org/en/latest/ –

回答

0

我已經通過創建需要安裝Python庫和Spark從腳本的Docker鏡像解決了Apache Spark和Python上下文中的類似問題。圖像被分發給其他機器,當容器啓動時它會自動加入到集羣,我們只有一臺這樣的圖像/主機。

我們不斷變化的python項目與作業一起以zip文件的形式提交,並在那裏透明地導入工作。幸運的是,我們很少需要重新創建這些從屬映像,並且我們不會運行具有衝突要求的作業。

我不知道你的情況如何適用,特別是因爲(在我的理解)一些python庫必須編譯。

+0

如果你看到「Spark slave script」,我會非常感興趣可以自由分享。 – Stuart

+0

該腳本引用了類似https://github.com/nikonyrh/docker-scripts/blob/master/startSparkSlave.sh的文件,該文件是「碼頭運行」命令的包裝。最重要的是它設置SPARK_PUBLIC_DNS並使用「--net主機」,如http://stackoverflow.com/a/32737662/3731823中所述 – NikoNyrh

相關問題