通过Spark Web UI理解Spark程序执行

Apache Spark提供了一套Web UI/用户界面(Jobs, Stages, Tasks, Storage, Environment, Executors, and SQL)来监控Spark/PySpark应用程序的状态、Spark集群的资源消耗和Spark配置。

为了更好地理解Spark是如何执行Spark/PySpark作业的,这组用户界面会派上用场。在本教程中,我们将运行一个小应用程序,并通过使用Spark Web UI中的不同部分来解释Spark是如何执行这个应用程序的。

在进入Spark UI之前,首先了解以下两个概念:

  • Transformation
  • Action

Spark 应用程序代码是一组指令,它指示驱动程序执行一个Spark作业,并让驱动程序决定如何在executors的帮助下完成该作业。

对驱动程序的指令称为 Transformations(转换),而Action(操作)将触发执行。

下面是一个小的Spark应用程序,可以进行transformation和action。

// 数据源文件
val filePath = "file:///home/hduser/data/spark/resources/people.csv"

// Transformation
val df = spark.read    // job(0):read
              .option("inferSchema", "true")  // job(1):inferSchema
	      .option("header", "true")
	      ......
          

......

抱歉,只有登录会员才可浏览!会员登录


《PySpark原理深入与编程实战》