我经常在运行时对我的火花作业的DAG进行分析。但是,在运行应用程序时,必须坐下来观看应用程序才能看到DAG,这很烦人。
所以,我尝试使用名为spark history-server
的东西查看DAg,我知道这应该可以帮助我查看过去的工作。我很容易访问端口18080
,我可以看到历史服务器UI。
但是,它没有向我显示与spark程序执行相关的任何信息。我知道我的历史服务器正在运行,因为当我sudo service --status-all
时,我看到了
spark history-server is running [ OK ]
所以我已经尝试了这个问题的建议:here。
我认为这是因为我在YARN上运行spark,它一次只能使用一个资源管理器?也许?
那么,如何在* 作业完成后看到火花执行DAG, *?更具体地说,当运行YARN作为我的资源管理器时?
答案 0 :(得分:3)
仅运行history-server
不足以获得先前作业的执行DAG
。您需要指定作业以存储所有先前作业的事件日志。
按./sbin/start-history-server.sh
启用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-system
或hdfs-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:9090
属fs.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