如何从Spark210到SparkUI的实现.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
——SparkUI的实现 任何系统都需要供给监控功能,不然在运转时期发生一些异样时,我们将会一筹莫展。或许有人说,能够增添日记来解决这个问题。日记只好解决你的程序逻辑在运转期的监控,从而发现Bug,以及供给对业务有帮助的调试信息。当你的JVM进度奔溃或许程序响应速度很慢时,这些日记将毫无用途。幸亏JVM供给了jstat、jstack、jinfo、jmap、jhat等工具帮助我们剖析,更有VisualVM的可视化界面以更为直观的方式对JVM运转期的状况进行监控。别的,像Tomcat、Hadoop等服务都供给了鉴于Web的监控页面,用阅读器能接见拥有款式及布局,并供给丰富监控数据的页面无疑是一种简单、高效的方式。 Spark自然也供给了  Web  页面来阅读监控数据,并且  Master、Worker、Driver  依据自己功能 供给了不一样内容的Web监控页面。不论是Master、Worker,仍是Driver,它们都使用了统 一的Web框架WebUI。Master、Worker及Driver分别使用MasterWebUI、WorkerWebUI及SparkUI供给的Web界面服务,后三者都继承自WebUI,并增添了个性化的功能。别的,在 Yarn或Mesos模式下还有WebUI的另一个扩展实现HistoryServer。HistoryServer将会显现已 经运转达成的应用程序信息。本章以SparkUI为例,并深入剖析WebUI的框架系统。 SparkUI概括 在大型散布式系统中,采纳事件监听体制是最常有的。为何要使用事件监听体制? 若是SparkUI采纳Scala的函数调用方式,那么跟着整个集群规模的增添,对函数的调用会 愈来愈多,最后会遇到Driver所在JVM的线程数目限制而影响监控数据的更新,甚至出现 监控数据没法实时显示给用户的状况。因为函数调用多半状况下是同步伐用,这就致使线程 被堵塞,在散布式环境中,还可能因为网络问题,致使线程被长时间占用。将函数调用改换 为发送事件,事件的办理是异步的,目前线程能够持续履行后续逻辑从而被迅速开释。线程 池中的线程还能够被重用,这样整个系统的并发度会大大增添。发送的事件会存入缓存,由 准时调动器拿出后,分派给监听此事件的监听器对监控数据进行更新。SparkUI就是这样的 服务,它的构成如图1所示。 图1 SparkUI的构成 图1显现了SparkUI中的各个组件,这里对这些组件作简单介绍: SparkListenerEvent事件的根源:包含DAGScheduler、SparkContext、DriverEndpoint 、 BlockManagerMasterEndpoint 以及LocalSchedulerBackend 等,这些组件将会产生各样 SparkListenerEvent,并发送到 listenerBus的事件行列中。 DriverEndpoint 是Driver 在 Standalone或local-cluster模式下与其余组件进行通讯的组件, 本书将在9.9.2节详尽介绍。 BlockManagerMasterEndpoint 是Driver对分派给应用的全部 Executor及其BlockManager 进行一致管理的组件,本书将在 6.8节详尽介绍。LocalSchedulerBackend 是local模式下 的调动后端接口,用于给任务分派资源或对任务的状态进行更新,本书将在 7.8.2节详尽介 绍。 事件总线 listenerBus。依据《Spark2.1.0之源码剖析——事件总线》一文对事件总线的介 绍,我们知道listenerBus 通过准时器将SparkListenerEvent 事件般配到详细的 SparkListener,从而改变各个 SparkListener中的统计监控数据。 SparkUI 的界面。各个SparkListener内的统计监控数据将会被各样标签页和详细页面显现 到Web界面。标签页有StagesTab、JobsTab、ExecutorsTab、EnvironmentTab以及 StorageTab。每个标签页中包含若干个页面,例如StagesTab标签页中包含了 AllStagesPage、StagePage及PoolPage三个页面。 控制台的显现。仔细的读者会发现图1中还有SparkStatusTracker  (Spark状态追踪器)和 ConsoleProgressBar(控制台进度条)两个组件。SparkStatusTracker负责对Job和Stage 的监控,其实质也是使用了JobProgressListener中的监控数据,并额外进行了一些加工。 ConsoleProgressBar负责将

文档评论(0)

130****1735 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档