Spark, как обращаться с HADOOP_CONF_DIR? - PullRequest
0 голосов
/ 03 августа 2020

Когда мы хотим подключить HDFS из Spark, мы просто устанавливаем HADOOP_CONF_DIR вместо того, чтобы передавать различные аргументы в Spark Conf

export HADOOP_CONF_DIR=/etc/hadoop/conf
/usr/hdp/current/spark-client/bin/spark-submit   --class org.apache.spark.examples.SparkPi   --master yarn   --deploy-mode cluster   --executor-memory 1G   --num-executors 3   /usr/hdp/current/spark-client/lib/spark-examples*.jar   100

Как искра обрабатывает HADOOP_CONF_DIR? Как эти файлы конфигурации передаются в Hadoop?

1 Ответ

0 голосов
/ 03 августа 2020

1. HADOOP_CONF_DIR & spark-env. sh

При запуске искры с помощью Yarn вам необходимо добавить следующую строку в spark-env.sh

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

Примечание: проверьте, что $ HADOOP_HOME / etc / has oop является правильным в вашей среде. И spark-env.sh также содержит экспорт HADOOP_HOME.

Убедитесь, что HADOOP_CONF_DIR или YARN_CONF_DIR указывает на каталог, содержащий файлы конфигурации (на стороне клиента) для кластера Had oop. Эти конфигурации используются для записи в HDFS и подключения к YARN ResourceManager. Конфигурация, содержащаяся в этом каталоге, будет распространена в кластер YARN, чтобы все контейнеры, используемые приложением, использовали одну и ту же конфигурацию.

2. spark-defaults.conf

Все ваши конфигурации, связанные с памятью, будут в файле spark-defaults.conf. При запуске Spark на YARN в кластерном режиме переменные среды необходимо установить с помощью свойства spark.yarn.appMasterEnv. [EnvironmentVariableName] в файле conf / spark-defaults.conf. Переменные среды, заданные в spark-env. sh, не будут отражены в процессе мастера приложений YARN в кластерном режиме. Для получения дополнительной информации см. Свойства искры, связанные с пряжей.

3. перезаписать конфигурации с помощью конфигураций диспетчера приложений

Согласно документации Spark, ясно сказано, что если вы настроили диспетчер кластеров пряжи, тогда он будет перезаписывать настройку spark-env. sh. Можете ли вы просто проверить в файле Yarn-env или yarn-site настройку папки локального каталога.

"это будет переопределено переменными среды SPARK_LOCAL_DIRS (автономный, Mesos) или LOCAL_DIRS (YARN), установленными диспетчером кластера . " источник - https://spark.apache.org/docs/2.3.1/configuration.html

...