博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spark内核揭秘-08-spark的Web监控页面
阅读量:7047 次
发布时间:2019-06-28

本文共 1449 字,大约阅读时间需要 4 分钟。

hot3.png

在SparkContext中可以看到初始化UI代码:

// Initialize the Spark UIprivate[spark] val ui: Option[SparkUI] =  if (conf.getBoolean("spark.ui.enabled", true)) {    Some(SparkUI.createLiveUI(this, conf, listenerBus, jobProgressListener,      env.securityManager,appName))  } else {    // For tests, do not enable the UI    None  }// Bind the UI before starting the task scheduler to communicate// the bound port to the cluster manager properlyui.foreach(_.bind())

创建SparkUI对象:

def createLiveUI(    sc: SparkContext,    conf: SparkConf,    listenerBus: SparkListenerBus,    jobProgressListener: JobProgressListener,    securityManager: SecurityManager,    appName: String): SparkUI =  {  create(Some(sc), conf, listenerBus, securityManager, appName,    jobProgressListener = Some(jobProgressListener))}

进入create方法:

进入SparkUI:

SparkUI 继承了WebUI:

而WebUI类定义了def initialize()方法

SparkUI的initialize()实现方法:

上面代码分析:增加页面的tab页面

1、JobsTab:

2、stagesTab:

3、StorageTab:

4、EnvironmentTab:

5、ExecutorsTab:

6、createStaticHandler:

7、createRedirectHandler:

当执行完initialize()方法后,我们回到SparkContext 的Initialize the spark UI:

bind  port:

从上面代码可以看出来,启动了端口号为4040的本地JettyServer

上面代码分析:

1、创建ContextHandlerCollection并将handlers设置到ContextHandlerCollection中

2、增加一个filter:

3、创建Jetty Server并绑定端口号并创建一个QueuedThreadPool,设置到Server中:

4、启动Jetty server,如果启动失败,就抛出异常:

5、试着重试几次启动startServiceOnPort,如果启动失败,就更换新端口号(规则是1+oldPort),重新启动:

最终启动成功后,会把信息东西存放在ServerInfo中:

转载于:https://my.oschina.net/ghostmanyue/blog/369686

你可能感兴趣的文章
[备忘] - Mac 下的 MYSQL
查看>>
STM32 ADC 同步规则模式(两通道)
查看>>
vue计算属性VS侦听属性
查看>>
简单Excel表格上传下载,POI
查看>>
oracle user account locked
查看>>
【hibernate】Hibernate中get()和load()的区别
查看>>
OpenCV教程(44) harris角的检测(2)
查看>>
git stash
查看>>
python 字典操作
查看>>
httpd的一些知识点
查看>>
Apache开启Gzip压缩设置(转)
查看>>
分享一个牛逼的PHP无限极分类生成树方法,巧用引用(转)
查看>>
php_mcrypt.dll无法加载解决方法
查看>>
PHP5.4新特性(转)
查看>>
easyui在当前tab中直接加载url
查看>>
线程池原理
查看>>
leetcode-258-Add Digits
查看>>
python 某个目录下的所有文件列表
查看>>
HttpServlet详解
查看>>
转:Android之Tab分页标签的实现方法一-----TabActivity和TabHost的结合
查看>>