【问题标题】:How to package python script with dependencies into zip/tar?如何将具有依赖项的 python 脚本打包到 zip/tar 中?
【发布时间】:2015-08-30 06:07:45
【问题描述】:

我有一个 hadoop 集群,我正在使用 Numpy、SciPy 和 Pandas 进行数据分析。我希望能够使用命令的“--file”参数以 zip/tar 文件的形式提交我的 hadoop 作业。该 zip 文件应该包含我的 python 程序需要执行的所有内容,这样无论我的脚本在集群中的哪个节点上执行,我都不会在运行时遇到 ImportError。

由于公司政策,在每个节点上安装这些库并不完全可行,尤其是对于探索性/敏捷开发。我确实安装了 pip 和 virtualenv 来根据需要创建沙箱。

我查看了zipimportpython packaging,但这些似乎都不能满足我的需求/我在使用这些工具时遇到了困难。

有没有人幸运地做到了这一点?我似乎无法在网上找到任何成功案例。

谢谢!

【问题讨论】:

标签: python hadoop numpy pandas hadoop-streaming


【解决方案1】:

我通过创建需要安装 python 库和 Spark 从脚本的 Docker 映像解决了 Apache Spark 和 Python 上下文中的类似问题。镜像分发到其他机器,当容器启动时它会自动加入集群,我们只有一个这样的镜像/主机。

我们不断变化的 python 项目与作业一起作为 zip 文件提交,并且从那里透明地导入工作。幸运的是,我们很少需要重新创建那些从属图像,而且我们不会运行具有冲突要求的作业。

我不确定这在您的场景中是否适用,尤其是因为(在我的理解中)必须编译一些 python 库。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-04-21
  • 2019-02-27
  • 2019-10-12
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
相关资源
最近更新 更多