2016-02-09 2 views
3

Я пытаюсь запустить приложение в режиме кластеров пряжи. Вот настройка сценария оболочки:Получение HADOOP_HOME не обнаружено при запуске искрового приложения в режиме кластеров пряжи

spark-submit --class "com.Myclass" \ 
--num-executors 2 \ 
--executor-cores 2 \ 
--master yarn \ 
--supervise \ 
--deploy-mode cluster \ 
../target/ \ 

Дальше после получения ошибки. вот ОШИБОК ПОДРОБНОСТИ ИЗ ПРЯЖИ LOGS ApplicationID

INFO : org.apache.spark.deploy.yarn.ApplicationMaster - Registered signal handlers for [TERM, HUP, INT] 
DEBUG: org.apache.hadoop.util.Shell - Failed to detect a valid hadoop home directory 
java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set. 
    at org.apache.hadoop.util.Shell.checkHadoopHome(Shell.java:307) 
    at org.apache.hadoop.util.Shell.<clinit>(Shell.java:332) 
    at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:79) 
    at org.apache.hadoop.yarn.conf.YarnConfiguration.<clinit>(YarnConfiguration.java:590) 
    at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.newConfiguration(YarnSparkHadoopUtil.scala:62) 
    at org.apache.spark.deploy.SparkHadoopUtil.<init>(SparkHadoopUtil.scala:52) 
    at org.apache.spark.deploy.yarn.YarnSparkHadoopUtil.<init>(YarnSparkHadoopUtil.scala:47) 

Я попытался изменяющее spark-env.sh как следующий, и я вижу Hadoop_Home вошли, но все еще получаю выше ошибки. Модифицированные и добавлены следующие записи spark-env.sh

export HADOOP_HOME="/usr/lib/hadoop" 
echo "&&&&&&&&&&&&&&&&&&&&&& HADOOP HOME " 
echo "$HADOOP_HOME" 
export HADOOP_CONF_DIR="$HADOOP_HOME/etc/hadoop" 
echo "&&&&&&&&&&&&&&&&&&&&&& HADOOP_CONF_DIR " 
echo "$HADOOP_CONF_DIR" 

Я вижу Hadoop домой зашли, когда я бегу искру подать, но все же он жалуется на Hadoop на дому.

+0

Содержит ли пряжа и приложение приложение с одним и тем же пользователем? – Sumit

+0

Да, я попытался запустить систему с тем же пользователем, что и пряжа, а также попытался жестко кодировать конфигурационный файл hadoop в пути искра-отправки, но все еще получал ту же проблему. – Alchemist

+0

У меня тоже такая же проблема, и я не могу найти решение. Как и вы, я добавил 'HADOOP_HOME' в' spark-env.sh' и подтвердил, что он был получен во время запуска 'SparkLauncher', но контейнеры не видят этого значения и регистрируют ошибку. Я попытался установить hasoop.home.dir как системное свойство, используя параметр -D в SPAR_SUBMIT_OPTS, и это тоже не передается переданному заданию, поэтому контейнеры его не видят. – haridsv

ответ

2

В моем spark-env.sh это выглядит немного иначе:

# Make Hadoop installation visible 
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client} 
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-/etc/hadoop/conf} 

Может быть, это может помочь вам. Не забудьте настроить пути.

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