Планирование сценариев Python с зависимостями с помощью Oozie

#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 /…