развернуть пакет Python pip на Hadoop?

Напишите UDF Python для Hadoop/Pig, и вам нужно использовать некоторые библиотеки Python, такие как «запрос», который я установил локально с помощью pip при тестировании UDF локального ящика. Хотите знать, как развернуть пакет pip в кластере Hadoop, чтобы независимо от того, на каком узле выполняется UDF Python, он автоматически потреблял?


person Lin Ma    schedule 27.08.2015    source источник
comment
Этот вопрос близок к stackoverflow.com/questions/6811549/, который предоставляет методы для распространения пакетов с заданиями, однако здравый смысл подсказывает, что нужно начинать с единообразной установки Python на всех узлах, включая часто требуемые пакеты.   -  person    schedule 27.08.2015
comment
@TrisNefzger, спасибо, что поделились, и хотел бы попробовать опцию zipimport. Хочу уточнить, что мое использование правильное, например, если я хочу импортировать запросы пакетов, pypi.python .org/pypi/requests#downloads, нужно ли мне загрузить исходный пакет запросов-2.7.0.tar.gz и импортировать zip-файл с запросами-2.7.0.tar.gz? Спасибо.   -  person Lin Ma    schedule 28.08.2015
comment
Из docs.python.org/2/library/zipimport.html и мой sys.path, который включает «C:\\Anaconda3\\envs\\python2\\python27.zip». Я думаю, вам нужен zip-файл, а не файл tar.gz. Предложите сначала поэкспериментировать с zipimport, чтобы определить, как он работает.   -  person    schedule 28.08.2015
comment
@TrisNefzger, спасибо за информацию. Интересно, что такое zip-файл? Например, в моем случае с пакетом запросов официальный веб-сайт запросов не предлагает возможность загрузки в формате zip. :)   -  person Lin Ma    schedule 28.08.2015


Ответы (1)


Информацию о формате файла zip можно найти на странице Zip (формат файла). На практике это формат сжатого архива, вроде tar (формат архива) плюс gzip (формат сжатия файлов). Формат Java jar (Java ARchive) совместим с zip.

На платформах Linux и Unix каталог dir можно заархивировать с помощью «zip -r dir dir», чтобы создать файл dir.zip. В Windows 7-Zip лучше всего подходит для создания и разделения zip-файлов, а также для разделения и просматривать файлы с другими форматами сжатия и архивирования, включая tar и gzip.

Имея файл dir.tar.gz, его можно распаковать и заархивировать в интерактивном режиме с помощью графического интерфейса 7-Zip в Windows, в то время как в системах 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
person Community    schedule 27.08.2015
comment
спасибо за подробности. Я имею в виду, какой tar.gz нужно извлечь в моем случае для запросов pip package? Это часть исходного кода? который является request-2.7.0.tar.gz (pypi.python.org/pypi/requests# загрузки)? - person Lin Ma; 28.08.2015
comment
Если вы загружаете их, они, вероятно, должны быть собраны и не являются пригодными для использования пакетами как есть. Используемые пакеты должны находиться в вашем установленном каталоге Python, как правило, в Lib/site-packages для пакетов, установленных с такими инструментами, как pip, после основной установки Python. Например, мой импортируемый пакет запросов находится в папке C:\Anaconda3\Lib\site-packages\requests. - person ; 28.08.2015
comment
Спасибо, Трис, что ты имеешь в виду под сборкой? запросы должны быть реализованы с помощью python и не требуют компиляции/сборки? Спасибо. - person Lin Ma; 29.08.2015