spark查看stage和tasks信息
spark提供了web-ui接口、外部命令等多种方法监视spark程序的执行状态。利用spark的监视功能,可以方便的查看spark应用程序执行的状态,具体包括:1)stage和tasks列表信息 2)RDD大小和内存使用情况 3)环境信息 4)executors信息。
1.web-ui 接口
可以在浏览器上输入http://<driver-node>:4040,查看spark程序的执行状态。不过spark程序一旦运行完成,web-ui便无法再查看spark状态。
driver-node信息在spark-submit执行spark任务的过程中会被打印,例如:执行spark-submit --master spark://taoli5:7077 sample.py 提交任务至cluster。日志输出如下,红框中就包含driver-node的信息。
2.事后监控
如果希望在程序结束之后也能访问spark执行状态,可以在启动spark程序之前,设置spark.eventLog.enabled=true,该配置会将展示在web-ui中的展示信息持久化至日志中。之后通过spark history server重建web-ui。具体过程如下:
1)修改$SPARK_HOME/conf/ spark-defaults.conf
# spark.master spark://master:7077
spark.eventLog.enabled true
spark.eventLog.dir /home/taoli5/work/project/pyspark/eventLog
spark.history.fs.logDirectory /home/taoli5/work/project/pyspark/eventLog
# spark.serializer org.apache.spark.serializer.KryoSerializer
# spark.driver.memory 5g
# spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
2 ) 运行./sbin/start-history-server.sh,启动
spark history-server
该命令会启动一个守护进程(spark history server)
作为web-ui服务进程。在执行spark程序之后,你可以在浏览器上输入http://<server-url>:18080,查看spark程序的状态,
即使spark程序执行结束,依然可以查看spark程序状态。server-url可以通过查看 start-history-server.sh的启动日志得到。
3)运行spark程序:spark-submit --master spark://taoli5:7077 sample.py
4) 查看spark执行状态:
点击app-20180421185114-0005,进一步查看任务的stage等信息