2016-09-14 2 views
4

Я запускаю сценарий boo.py на AWS EMR, используя spark-submit (Spark 2.0).Почему spark-submit в режиме кластера YARN не находит пакеты python для исполнителей?

Файл успешно завершен, когда я использую

python boo.py 

Однако это не удалось, когда я бегу

spark-submit --verbose --deploy-mode cluster --master yarn boo.py 

вход в систему yarn logs -applicationId ID_number показывает:

Traceback (most recent call last): 
File "boo.py", line 17, in <module> 
import boto3 
ImportError: No module named boto3 

Модуль python и boto3 Я использую

$ which python 
/usr/bin/python 
$ pip install boto3 
Requirement already satisfied (use --upgrade to upgrade): boto3 in /usr/local/lib/python2.7/site-packages 

Как добавить этот путь к библиотеке, так что spark-submit мог читать boto3 модуль?

ответ

3

Когда вы используете искру, часть кода работает на драйвере, а часть выполняется на исполнителях.

Вы установили boto3 только в драйвер или на драйвер + все исполнители (узлы), которые могут запускать ваш код?

Одним из решений может быть - установить boto3 на всех исполнителей (узлов)

как установить питон модули на Amazon EMR узлов:

How to bootstrap installation of Python modules on Amazon EMR?

Смежные вопросы