文档章节

spark内核揭秘-08-spark的Web监控页面

stark_summer
 stark_summer
发布于 2015/01/20 13:15
字数 369
阅读 713
收藏 5

在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中:

© 著作权归作者所有

共有 人打赏支持
stark_summer
粉丝 59
博文 75
码字总数 51050
作品 0
朝阳
CEO
spark1.2.0版本搭建伪分布式环境

、下载scala2.11.5版本,下载地址为:http://www.scala-lang.org/download/2.11.5.html 2、安装和配置scala: 第一步:上传scala安装包 并解压 第二步 配置SCALAHOME环境变量到bashprofile 第...

stark_summer
2015/02/09
0
2
关于Spark 的一些调优选项(待完善)

各位看到的大侠们,,,,如果有什么问题,不要拍砖,后期进行完善。谢谢协助完善。 几个比较重要的配置属性: 1.手动启动集群 参数 含义 -i IP,--ip IP 要监听的IP地址或者 DNS 机器名 -p P...

Ryan-瑞恩
2015/08/28
0
3
教你如何成为Spark大数据高手

Spark目前被越来越多的企业使用,和Hadoop一样,Spark也是以作业的形式向集群提交任务,那么如何成为Spark大数据高手?下面就来个深度教程。 分享之前我还是要推荐下我自己创建的大数据学习交...

风火数据
05/20
0
0
Spark2.1.0之剖析spark-shell

通过在spark-shell中执行word count的过程,让读者了解到可以使用spark-shell提交Spark作业。现在读者应该很想知道spark-shell究竟做了什么呢? 脚本分析 在Spark安装目录的bin文件夹下可以找...

beliefer
04/20
0
0
你不能错过的 spark 学习资源

1. 书籍,在线文档 2. 网站 3. Databricks Blog 4. 文章,博客 5. 视频

u012608836
04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell特殊符号总结以及cut,sort,wc,uniq,tee,tr,split命令

特殊符号总结一 * 任意个任意字符 ? 任意一个字符 # 注释字符 \ 脱义字符 | 管道符 # #号后的备注被忽略[root@centos01 ~]# ls a.txt # 备注 a.txt[root@centos01 ~]# a=1[root@centos01...

野雪球
今天
2
0
OSChina 周二乱弹 —— 程序员圣衣

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享Skeeter Davis的单曲《The End of the World》 《The End of the World》- Skeeter Davis 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
5
0
[ python import module ] 导入模块

import moudle_name ----> import module_name.py ---> import module_name.py文件路径 -----> sys.path (这里进行查找文件) # from app.web import Personimport app.web.Person as Pe......

_______-
昨天
4
0
Redis性能问题排查解决手册

一、性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。通过这些信息来分析文章后面提到的一些性能指标。 nfo命令输出的数据可...

IT--小哥
昨天
2
0
mixin混入

①新建mixin.js文件 const mixin = { methods: { /** * 分页公共方法 */ handleSizeChange(val) { this.pageData.size = val; this.query(); }, hand......

不负好时光
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部