-
- 实时UI监控
-
历史UI监控
-
Metrics
-
- 输入源(Metrics Source)介绍
-
输出方式(Metrics Sink)介绍
-
TEST
Spark提供了UI监控、Spark Metrics和REST 3种方式监控应用程序运行状态。其中:
-
UI 监控以网页方式提供用户监控调度阶段、存储、运行环境和Executor参数等信息
-
Spark Metrics通过定制的方式,将应用程序的运行情况以多种方式展现出来,
-
REST则提供API给用户,根据API开发监控应用程序运行的各阶段消息
Spark的UI监控分为实时UI监控和历史UI监控,默认情况下启动实时UI监控,历史UI监控需要手动启动。其中:
-
实时UI监控可以即时刷新查看作业的运行情况
-
历史UI监控则是保存了应用程序的运行状态数据,根据用户需要查询这些应用程序的历史运行情况
实时UI监控
实时UI监控分为MasterUl监控和应用程序UI监控,其中
-
MasterUI监控在Master启动过程中启用,
-
应用程序UR监控在SparkContext启用。
以Standalone为例, 在Master启动的时候会启动UI监控和REST服务,MasterUl监控默认使用8080端口,访问地址为http//host:8080, 同时启动Master和应用程序的Metrics服务。具体代码实现如下:
override def onStart(): Unit = {
logInfo("Starting Spark master at " + masterUrl)
logInfo(s"Running Spark version ${org.apache.spark.SPARK_VERSION}")
//启动Master的UI监控界面,其中HTTP服务由Jetty进行提供
webUi = new MasterWebUI(this, webUiPort)
//默认使用8080端口,访问地址为http://host:8080
webUi.bind()
masterWebUiUrl = “http://” + masterPublicAddress + “:” + webUi.boundPort
if (reverseProxy) {
masterWebUiUrl = conf.get(“spark.ui.reverseProxyUrl”, masterWebUiUrl)
webUi.addProxy()
logInfo(s"Spark Master is acting as a reverse proxy. Master, Workers and " +
s"Applications UIs are available at $masterWebUiUrl")
}
checkForWorkerTimeOutTask = forwardMessageThread.scheduleAtFixedRate(new Runnable {
override def run(): Unit = Utils.tryLogNonFatalError {
self.send(CheckForWorkerTimeOut)
}
}, 0, WORKER_TIMEOUT_MS, TimeUnit.MILLISECONDS)
//启动REST服务,默认端口为4040
if (restServerEnabled) {