Исход Apache: настройка spark.eventLog.enabled и spark.eventLog.dir при отправке или запуск Spark
Я хотел бы установить spark.eventLog.enabled
и spark.eventLog.dir
на уровне spark-submit
или start-all
- не требует, чтобы он включался в коде scala/java/python.
Я пробовал разные вещи без успеха:
Настройка spark-defualts.conf
как
spark.eventLog.enabled true
spark.eventLog.dir hdfs://namenode:8021/directory
или
spark.eventLog.enabled true
spark.eventLog.dir file:///some/where
Запуск spark-submit
как:
spark-submit --conf "spark.eventLog.enabled=true" --conf "spark.eventLog.dir=file:///tmp/test" --master spark://server:7077 examples/src/main/python/pi.py
Исходная искра с переменными окружения:
SPARK_DAEMON_JAVA_OPTS="-Dspark.eventLog.enabled=true -Dspark.history.fs.logDirectory=$sparkHistoryDir -Dspark.history.provider=org.apache.spark.deploy.history.FsHistoryProvider -Dspark.history.fs.cleaner.enabled=true -Dspark.history.fs.cleaner.interval=2d"
и просто для overkill:
SPARK_HISTORY_OPTS="-Dspark.eventLog.enabled=true -Dspark.history.fs.logDirectory=$sparkHistoryDir -Dspark.history.provider=org.apache.spark.deploy.history.FsHistoryProvider -Dspark.history.fs.cleaner.enabled=true -Dspark.history.fs.cleaner.interval=2d"
Где и как должны быть установлены эти вещи для получения истории на произвольных работах?
Ответы
Ответ 1
Я решил проблему, но, как ни странно, я пробовал это раньше...
Тем не менее, теперь это похоже на стабильное решение:
Создайте каталог в HDFS
для ведения журнала, скажем /eventLogging
hdfs dfs -mkdir /eventLogging
Затем spark-shell
или spark-submit
(или что-то еще) можно запустить со следующими параметрами:
--conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://<hdfsNameNodeAddress>:8020/eventLogging
например:
spark-shell --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://<hdfsNameNodeAddress>:8020/eventLogging
Ответ 2
Создайте локальный каталог:
$ mkdir /tmp/spark-events
Запустите Spark-shell с --conf spark.eventLog.enabled
$ spark-shell --conf spark.eventLog.enabled --class com.MainClass --packages packages_if_any --master local[4] app.jar