Я пытаюсь запустить приложение в режиме кластеров пряжи. Вот настройка сценария оболочки:Получение 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 на дому.
Содержит ли пряжа и приложение приложение с одним и тем же пользователем? – Sumit
Да, я попытался запустить систему с тем же пользователем, что и пряжа, а также попытался жестко кодировать конфигурационный файл hadoop в пути искра-отправки, но все еще получал ту же проблему. – Alchemist
У меня тоже такая же проблема, и я не могу найти решение. Как и вы, я добавил 'HADOOP_HOME' в' spark-env.sh' и подтвердил, что он был получен во время запуска 'SparkLauncher', но контейнеры не видят этого значения и регистрируют ошибку. Я попытался установить hasoop.home.dir как системное свойство, используя параметр -D в SPAR_SUBMIT_OPTS, и это тоже не передается переданному заданию, поэтому контейнеры его не видят. – haridsv