我有一个hadoop集群,我正在使用Numpy,SciPy和Pandas进行数据分析。我希望能够使用命令的'--file'参数将我的hadoop作业作为zip / tar文件提交。那个zip文件应该包含我的python程序需要执行的所有内容,这样无论我的脚本在集群中执行什么节点,我都不会在运行时遇到ImportError。
由于公司政策,在每个节点上安装这些库并不完全可行,特别是对于探索性/敏捷开发。我确实安装了pip和virtualenv以根据需要创建沙箱。
我看过zipimport和python packaging,但似乎没有一个能满足我的需求/我在使用这些工具时遇到了困难。
有人有运气吗?我似乎无法在网上找到任何成功案例。
谢谢!
答案 0 :(得分:0)
我通过创建一个需要安装python库和Spark slave脚本的Docker镜像,解决了Apache Spark和Python上下文中的类似问题。图像被分发到其他机器,当容器启动时,它自动连接到集群,我们只有一个这样的图像/主机。
我们不断变化的python项目以zip文件的形式提交,并且工作和导入工作在那里透明地进行。幸运的是,我们很少需要重新创建这些从属图像,并且我们不会运行具有相互冲突要求的作业。
我不确定在你的场景中这有多适用,特别是因为(在我的理解中)必须编译一些python库。