也可以理解为4040界面的使用。
import timetime.sleep(100000)
写代码时添加这个代码,让进行程序休眠。然后就可以访问4040界面
本地的程序,访问地址是:http://localhost:4040
4040是一个程序创建的,一个程序一个界面,切记
Job:
各个界面作用:
Job:显示当前这个程序的所有Job,一个程序可以有多个JobSpark中不是所有的代码都会触发Job的产生和运行
所有RDD的转换是不会立即产生job,运行Task任务的,这种模式称为Lazy模式:避免在内存中构建RDD,但是你不用只有遇到了需要使用数据的代码操作才会产生job,触发Task任务的运行能触发job任务生成的目前有: saveAsTextFile foreach
Stages:
Stages:显示当前这个程序的所有Stage,一个Job可以有多个 Stage
Stage 可以理解为多个算子组成的阶段,到底有多少个Stage,取决于算子是否会触发shuffle过程。假如有两个触发shuffle过程的算子,整个程序可以切为三个阶段。
当一个Job被触发运行的时候,Spark底层会根据回溯算法构建这个job的执行计划图,即DAG图
每个Job都会有1个DAG图,在构建的时候会根据计算过程中是否要产生shuffle来划分Stage
不产生Shuffle的操作就在同一个Stage中执行,产生Shuffle的操作,会传递到另外一个Stage中执行
最终每个Stage中的操作会转换为对应的Task来执行
每个黑点表示一个RDD
每个矩形框中的RDD的转换都是在内存中完成的
曲线代表经过了Shuffle,灰色代表没有执行,因为之前执行的
Executors
显示当前这个程序的运行进程的信息
每个Spark程序都由两种进程组成:一个Driver和多个Executors
Driver进程:负责解析程序,构建DAG图,构建Stage,构建、调度、监控Task任务的运行
Executor进程:负责运行程序中的所有Task任务
假如你是集群运行,有可能有四个,以下是集群运行workcout的截图:
Storage:显示当前这个程序在内存缓存的数据信息 。
Environment:显示当前这个程序所有的配置信息。