Как передать пользовательский SPARK_CONF_DIR на подчиненные в автономном режиме - PullRequest
0 голосов
/ 17 апреля 2019

Я нахожусь в процессе установки Spark в среде общего кластера.Мы решили перейти в автономный режим Spark и используем команду «start-all.sh», включенную в sbin, для запуска рабочих Spark.Из-за общей архитектуры кластера SPARK_HOME находится в общем каталоге, недоступном для записи пользователям.Поэтому мы создаем «рабочие» каталоги с нуля пользователя, в которые можно указать SPARK_CONF_DIR, каталог журналов и рабочие каталоги.

Проблема в том, что SPARK_CONF_DIR никогда не устанавливается на рабочих узлах, поэтому онипо умолчанию используется $ SPARK_HOME / conf, в котором есть только шаблоны.То, что я хочу сделать, это пройти через SPARK_CONF_DIR от главного узла к подчиненным узлам.Я определил решение, но для него требуется патч для sbin / start-slaves.sh:

sbin / start_slaves.sh

46c46
< "${SPARK_HOME}/sbin/slaves.sh" cd "${SPARK_HOME}" \; export SPARK_CONF_DIR=${SPARK_CONF_DIR} \; "$SPARK_HOME/sbin/start-slave.sh" "spark://$SPARK_MASTER_HOST:$SPARK_MASTER_PORT"
---
> "${SPARK_HOME}/sbin/slaves.sh" cd "${SPARK_HOME}" \; "${SPARK_HOME}/sbin/start-slave.sh" "spark://$SPARK_MASTER_HOST:$SPARK_MASTER_PORT"

Есть лиЕсть ли лучшие решения, которые не требуют исправления для исходного кода Spark?

Конечно, одним из решений было бы скопировать и переименовать start-all.sh и start-slaves.sh и использовать их вместоSBIN / start-all.sh.Но есть ли что-нибудь более изящное?

Спасибо за потраченное время.

1 Ответ

0 голосов
/ 17 апреля 2019

Если вы хотите запустить автономный режим, вы можете попробовать настроить SPARK_CONF_DIR в своей программе.Возьмите pyspark, например:

import os
from pyspark.sql import SparkSession

os.environ["SPARK_CONF_DIR"] = "/path/to/configs/conf1"
spark  = SparkSession.builder.getOrCreate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...