当我在YARN上运行spark时,如何在作业运行完毕后从spark web UI获取执行DAG?

时间:2017-05-17 04:09:39

标签: apache-spark pyspark yarn

我经常在运行时对我的火花作业的DAG进行分析。但是,在运行应用程序时,必须坐下来观看应用程序才能看到DAG,这很烦人。

所以,我尝试使用名为spark history-server的东西查看DAg,我知道这应该可以帮助我查看过去的工作。我很容易访问端口18080,我可以看到历史服务器UI。

但是,它没有向我显示与spark程序执行相关的任何信息。我知道我的历史服务器正在运行,因为当我sudo service --status-all时,我看到了

spark history-server is running [ OK ]

所以我已经尝试了这个问题的建议:here

我认为这是因为我在YARN上运行spark,它一次只能使用一个资源管理器?也许?

那么,如何在* 作业完成后看到火花执行DAG, *?更具体地说,当运行YARN作为我的资源管理器时?

2 个答案:

答案 0 :(得分:3)

仅运行history-server不足以获得先前作业的执行DAG。您需要指定作业以存储所有先前作业的事件日志。

./sbin/start-history-server.sh

运行Spark历史记录服务器

启用spark作业的事件日志

spark.eventLog.enabled true
spark.eventLog.dir <path to event log(local or hdfs)>
spark.history.fs.logDirectory  <path to event log(local or hdfs)>

spark-defaults.conf文件

上添加这些内容

答案 1 :(得分:2)

正如Monitoring and Instrumentation中所述,我们需要在spark-defaults.conf中设置三个参数

spark.eventLog.enabled
spark.eventLog.dir
spark.history.fs.logDirectory

第一个属性应为true

spark.eventLog.enabled           true

第二个和第三个属性应指向event-log位置,可以是local-file-systemhdfs-file-system第二个属性定义了火花作业的日志存储位置,第三个属性是历史记录服务器在18080的Web UI中显示日志

如果您选择linux local-file-system (/opt/spark/spark-events)

spark.eventLog.dir               file:/opt/spark/spark-events
spark.history.fs.logDirectory    file:/opt/spark/spark-events

或者

spark.eventLog.dir               file:///opt/spark/spark-events
spark.history.fs.logDirectory    file:///opt/spark/spark-events

应该有效

如果您选择hdfs-file-system (/spark-events)

spark.eventLog.dir               hdfs:/spark-events
spark.history.fs.logDirectory    hdfs:/spark-events

或者

spark.eventLog.dir               hdfs:///spark-events
spark.history.fs.logDirectory    hdfs:///spark-events

spark.eventLog.dir               hdfs://masterIp:9090/spark-events
spark.history.fs.logDirectory    hdfs://masterIp:9090/spark-events

应该在masterIp:9090fs.default.name core-site.xml配置hadoop属性的情况下工作。

Apache spark历史服务器可以通过

启动
$SPARK_HOME/sbin/start-history-server.sh

Cloudera的第三方火花历史记录服务器可以通过

启动
sudo service spark-history-server start

并停止历史记录服务器(适用于Apache)

$SPARK_HOME/sbin/stop-history-server.sh

或(对于cloudera)

sudo service spark-history-server stop