文档章节

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

stark_summer
 stark_summer
发布于 2015/01/20 13:15
字数 369
阅读 1.4K
收藏 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
粉丝 61
博文 75
码字总数 51050
作品 0
朝阳
CEO
私信 提问
加载中

评论(0)

spark 学习路线及参考课程

一、Scala编程详解: 第1讲-Spark的前世今生 第2讲-课程介绍、特色与价值 第3讲-Scala编程详解:基础语法 第4讲-Scala编程详解:条件控制与循环 第5讲-Scala编程详解:函数入门 第6讲-Scala编...

osc_s5wa3ebb
2018/05/07
24
0
【Spark】SparkStreaming-Tasks-数量如何设置?

SparkStreaming-Tasks-数量如何设置? sparkstreaming task 数量设置百度搜索 spark内核揭秘-14-Spark性能优化的10大问题及其解决方案 - starksummer - ITeye博客 如何在执行spark streaming...

osc_5s0xzojq
2018/01/11
5
0
Spark(四十七):Spark UI 数据可视化

导入: 1)Spark Web UI主要依赖于流行的Servlet容器Jetty实现; 2)Spark Web UI(Spark2.3之前)是展示运行状况、资源状态和监控指标的前端,而这些数据都是由度量系统(MetricsSystem)收集...

osc_rcsk5srk
2019/05/10
10
0
Spark 独立部署模式

除了在 Mesos 或 YARN 集群上运行之外, Spark 还提供一个简单的独立部署的模块。你通过手动开始master和workers 来启动一个独立的集群。你也可以利用我们提供的脚本 .它也可以运行这些进程在...

vincent_hv
2013/10/14
6.3K
2
新闻网大数据实时分析可视化系统项目——14、Spark2.X环境准备、编译部署及运行

1.Spark概述 Spark 是一个用来实现快速而通用的集群计算的平台。 在速度方面, Spark 扩展了广泛使用的 MapReduce 计算模型,而且高效地支持更多计算模式,包括交互式查询和流处理。 在处理大...

osc_njhmgg07
2019/05/10
2
0

没有更多内容

加载失败,请刷新页面

加载更多

IntelliJ 安装 Python 插件

运行 IntelliJ,然后在 IntelliJ 的设置中找到 插件。 然后在插件中搜索 Python 如果你没有安装的话,你应该是没有办法找到的。 你可以选择搜索 MarketPlace 选择官方的插件进行安装就可以了...

honeymoose
7分钟前
4
0
记一次element ui table 数据改变UI没渲染的坑

我要根据外界的值来判断我显示的table是单选还是多选,但是props的值变了UI却一直没什么反应,后来采用了强制刷新,在组件上加了一个:key= XXX,这个key根据外界的值得变化而变化,问题解决...

osc_5p8bxoq2
8分钟前
6
0
ASP.NET Core MVC如何上传文件及处理大文件上传

用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发ASP.NET Core MV...

osc_yq7pxbpa
9分钟前
8
0
ASP.NET Core MVC如何上传文件及处理大文件上传

用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发ASP.NET Core MV...

osc_dihgscoq
10分钟前
9
0
马斯克的宇宙飞船爆炸了!但不会影响SpaceX的载人发射

  该炸的 Starship 原型机总是会炸的,该进行的载人任务也总是会发射的。   承载着 SpaceX 未来星际旅行梦想的 Starship 宇宙飞船原型机再一次在测试中以全部炸毁收场。      但需要...

osc_35ne77sz
12分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部