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等信息

  

 

 

版权声明:本文为litaozijin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/litaozijin/litaozijin/p/8903069.html