Spark History Server的主页
Spark History Server(SHS) 主页展示了一定时间内(spark.history.fs.cleaner.maxAge, default 7d)的所有的application列表,包含了applicationId, name, attemptId, start time, end time, duration, user, eventlog下载链接。
SHS如何生成app列表
SHS是基于event log来生成application list,这就避免不了需要去SHS去读取和解析log。从代码里我们可以看到,需要解析:SparkListenerApplicationStart,SparkListenerApplicationEnd,SparkListenerEnvironmentUpdate,sparkVersion。
当application还是running的情况下,SHS并不需要读取到SparkListenerApplicationEnd就可以获取到需要的列表信息,因此只需要解析很少量的event log内容就可以完成。
但是对于结束的application,需要读取到end event才能获取结束时间,而我们不能保证event log的最后一条数据就是end event,所以在最早期的SHS是需要遍历完所有的event才能生成列表信息。而生成的列表信息会被缓存到levelDB中,对应为listing.ldb。