在 Hadoop 上部署 Python pip 包?

Posted

技术标签:

【中文标题】在 Hadoop 上部署 Python pip 包?【英文标题】:deploy Python pip package on Hadoop? 【发布时间】:2015-08-27 18:36:00 【问题描述】:

为 Hadoop/Pig 编写一个 Python UDF,在进行本地框 UDF 测试时,需要使用一些 Python 库,例如我通过 pip 在本地安装的“请求”。想知道如何在 Hadoop 集群上部署 pip 包,以便无论我的 Python UDF 在哪个节点上运行,它都会自动消费?

【问题讨论】:

这个问题与***.com/questions/6811549/… 很接近,***.com/questions/6811549/… 提供了通过作业分发包的方法,但是常识要求首先在所有节点上统一安装 Python,包括常用的包。 @TrisNefzger,感谢您的分享,并想尝试 zipimport 选项。想澄清一下我的用法是正确的,比如我要导入包请求,pypi.python.org/pypi/requests#downloads,我要不要下载requests-2.7.0.tar.gz源码包并zipimport zip文件“requests-2.7.0.tar” .gz”?谢谢。 通过查看docs.python.org/2/library/zipimport.html 和我的 sys.path,其中包括 'C:\\Anaconda3\\envs\\python2\\python27.zip' 我认为您需要一个 zip 文件而不是 tar。 gz 文件。建议先试用 zipimport 以确定它的工作原理。 @TrisNefzger,感谢您提供的信息。想知道 zip 文件是什么?例如,在我的请求包的情况下,请求的官方网站不提供 zip 的下载选项。 :) 【参考方案1】:

有关 zip 文件格式的信息可以在 Zip (file format) 找到。实际上,它是一种压缩存档格式,类似于 tar(一种存档格式)加上 gzip(一种文件压缩格式)。 Java jar (Java ARchive) 格式与 zip 兼容。

在 Linux 和 Unix 平台上,可以使用 'zip -r dir dir' 压缩目录 dir 以创建 dir.zip 文件。在 Windows 上,7-Zip 对于创建和解绑 zip 文件最有用,此外它还可用于解绑和浏览具有其他压缩和存档格式(包括 tar 和 gzip)的文件。

给定一个文件 dir.tar.gz,它可以在 Windows 上使用 7-Zip GUI 以交互方式解包和压缩,而在 Linux 和 Unix 系统上,以下命令可以做同样的事情:

tar zxf dir.tar.gz # creates directory dir by extraction and decompression
zip -r dir dir # creates dir.zip by bundling without removing dir

【讨论】:

感谢您提供详细信息。我的意思是,在我的请求 pip 包中要提取的 tar.gz 是什么?是源代码部分吗?哪个是 requests-2.7.0.tar.gz (pypi.python.org/pypi/requests#downloads)? 如果您正在下载它们,它们可能需要构建,并且它们不是可用的包。可用的包应该在 Python 安装目录的某个地方,通常在 Lib/site-packages 中,用于在主要 Python 安装后使用 pip 等工具安装的包。例如,我的可导入请求包位于 C:\Anaconda3\Lib\site-packages\requests。 谢谢 Tris,构建是什么意思?请求应该由python实现并且不需要编译/构建?谢谢。

以上是关于在 Hadoop 上部署 Python pip 包?的主要内容,如果未能解决你的问题,请参考以下文章

怎么把python部署到服务器

django之部署到ubuntu服务器上

Python如何pip批量安装指定包 - 最简单方法

Python如何pip批量安装指定包 - 最简单方法

AWS Elastic Beanstalk 无法使用 requirements.txt Git Pip 安装 Python 包

02-01 Python 安装与pip