Apache spark:在提交或Spark启动时设置spark.eventLog.enabled和spark.eventLog.dir

Spm*_*pmP 14 apache-spark

我想设置spark.eventLog.enabledspark.eventLog.dirspark-submitstart-all级别 - 不要求它在scala/java/python代码中启用.我尝试了各种各样的事情但没有成功:

设置spark-defualts.conf

spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://namenode:8021/directory
Run Code Online (Sandbox Code Playgroud)

要么

spark.eventLog.enabled           true
spark.eventLog.dir               file:///some/where
Run Code Online (Sandbox Code Playgroud)

运行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
Run Code Online (Sandbox Code Playgroud)

用环境变量启动spark:

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"
Run Code Online (Sandbox Code Playgroud)

只是为了矫枉过正:

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"
Run Code Online (Sandbox Code Playgroud)

这些事情必须在何处以及如何设定以获取任意工作的历史?

Spm*_*pmP 10

我解决了这个问题,但奇怪的是我之前尝试过这个...所有相同的,现在它似乎是一个稳定的解决方案:

例如,创建一个HDFS用于记录的目录/eventLogging

hdfs dfs -mkdir /eventLogging
Run Code Online (Sandbox Code Playgroud)

然后spark-shellspark-submit(或其他)可以使用以下选项运行:

--conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://<hdfsNameNodeAddress>:8020/eventLogging
Run Code Online (Sandbox Code Playgroud)

如:

spark-shell --conf spark.eventLog.enabled=true --conf spark.eventLog.dir=hdfs://<hdfsNameNodeAddress>:8020/eventLogging
Run Code Online (Sandbox Code Playgroud)