2015-04-04 2 views
1

Я хочу запустить программу PySpark, которая отлично работает на моей (локальной) машине.Как запустить работу PySpark (с пользовательскими модулями) на Amazon EMR?

У меня есть эластичная карта Amazon. Уменьшите работу кластера, со всеми установленными зависимостями (Spark, модули Python от PyPI).

Теперь, как мне выполнить задание PySpark, которое использует некоторые пользовательские модули? Я пробовал много вещей, может быть, полдня, теперь безрезультатно. Лучшая команда, которую я нашел до сих пор:

/home/hadoop/spark/bin/spark-submit --master yarn-cluster \ 
    --py-files s3://bucket/custom_module.py s3://bucket/pyspark_program.py 

Однако, Python терпит неудачу, потому что он не находит custom_module.py. Кажется, чтобы попытаться скопировать его, хотя:

INFO yarn.Client: Загрузка ресурсов s3: //bucket/custom_module.py -> HDFS: // ...: 9000/пользователь/Hadoop/.sparkStaging/application_ ... _0001/custom_module.py

INFO s3n.S3NativeFileSystem: Открытие 's3: //bucket/custom_module.py' для чтения

Это выглядит как очень основной вопрос, но веб-весьма отключить звук, включая официальную документацию (документация Spark, по-видимому, подразумевает приведенную выше команду).

ответ

0

Это bug of Spark 1.3.0.

Обходной состоит в определении SPARK_HOME для ПРЯЖИ, несмотря на то, что это должно быть ненужным:

spark-submit … --conf spark.yarn.appMasterEnv.SPARK_HOME=/home/hadoop/spark \ 
       --conf spark.executorEnv.SPARK_HOME=/home/hadoop/spark … 
Смежные вопросы