我有一个hadoop集群,我正在使用numpy、scipy和pandas进行数据分析。我希望能够使用“-file”参数将hadoop作业作为zip/tar文件提交给命令。这个zip文件应该包含我的python程序需要执行的所有内容,这样无论我的脚本在集群中的哪个节点上执行,我都不会在运行时遇到importerror。
由于公司的政策,在每个节点上安装这些库并不完全可行,特别是对于探索性/敏捷开发。我确实安装了pip和virtualenv来根据需要创建沙盒。
我已经看过zipimport和python的打包,但是这些似乎都不能满足我的需要/我在使用这些工具时遇到了困难。
有人运气好吗?我似乎在网上找不到任何成功的故事。
谢谢!
1条答案
按热度按时间xuo3flqw1#
我在apachespark和python上下文中解决了类似的问题,创建了一个docker映像,需要安装python库和spark从属脚本。映像被分发到其他机器,当容器启动时,它会自动加入集群,我们只有一个这样的映像/主机。
我们不断变化的python项目作为zip文件随作业一起提交,并从那里透明地导入工作。幸运的是,我们很少需要重新创建这些从属映像,而且我们运行的作业没有冲突的需求。
我不确定这在您的场景中有多适用,特别是因为(在我的理解中)必须编译一些python库。