#python #hadoop #workflow #cloudera #oozie
#python #hadoop #рабочий процесс #cloudera #oozie
Вопрос:
Я работаю над средой Cloudera, используя Oozie для планирования заданий. Учитывая, что Oozie позволяет пользователям планировать сценарии оболочки в рабочих процессах, я создал следующий файл .sh в моем каталоге Hadoop:
#! /usr/bin/env python
import sys
print(sys.version)
Когда this .sh запланирован в рабочем процессе Oozie, все работает правильно, потому что:
- Python находится по пути, указанному в Shebang
sys
доступен ли модуль
Однако файл .sh, подобный этому, не будет работать:
#! /usr/bin/env python
import pandas
Это потому pandas
, что недоступно.
Возможно ли создать файл .sh, который объединяет требуемые зависимости Python (возможно, ссылаясь на файлы, содержащиеся в каталоге Hadoop), без необходимости установки библиотек Python в среде Python?
Комментарии:
1. Вы можете отправить «архив» в любое задание YARN, и это тоже работает с Oozie. На практике «архив» представляет собой ZIP-файл в HDFS, и YARN автоматически разархивирует его в подкаталоге CWD каждого контейнера заданий; например, вы можете вызывать включенные файлы с относительным ПУТЕМ, например
./MyArchiveName/bin/python
2. Если вам не нравятся решения, созданные вручную, вы также можете использовать инструменты … например towardsdatascience.com /… >> это видно из того, что нужно использовать «в масштабе», см. medium.com/criteo-labs /…