• Spark Streaming揭秘 Day34 解析UI监听模式


    Spark Streaming揭秘 Day34

    解析UI监听模式

    今天分享下SparkStreaming中的UI部分,和所有的UI系统一样,SparkStreaming中的UI系统使用的是监听器模式。监听器模式是指,首先注册事件源,当事件或者数据发生改变时,监听器就会接收到这个改变,并对这种改变做出响应,监听器模式可以简单的理解为一种MVC的模式。

    SparkStreaming中的UI系统有两个非常的支持,就是处理时间process time和Batch等待时间Scheduler Delay。一般情况来说,我们有两个很重要的要求,这也是监控的重点:

    1. 我们的处理时间应该是要小于delay。
    2. delay不要一直增长,如果一直增长,表明系统无法处理输入,无法应对越来越多的batch,表明处理能力不足。

    事件监听机制

    在StreamingContext中,与监听相关最重要的就是监听器:
    Snip20160713_88

    里面有很多回调方法,以onBatchCompleted为例,发现是构建了一个BatchUIData,记录运行时的一些数据。

    Snip20160713_89

    再看在uiTab UI本身,其实现是StreamingTab展示流式作业的统计信息。
    Snip20160713_90

    首先,把listener注册给streamingContext和sparkContext,说明也会接收sparkContext的事件。
    其次,通过attach方法添加页面。从截图中,可以看到,在Tab里面添加了两个页面,同时将Tab添加在sc的页面中,显示在整个spark的web控制台上。attach是在Streaming启动的时候调用的。
    Snip20160713_94

    具体页面的实现是在StreamingPage的render方法中。里面是格式化页面的内容,div + css 编程。
    Snip20160713_91
    Snip20160713_93

    在attachPage的时候,会封装render方法注册给servlet调用。页面被渲染出来,背后要有一个循环器,这个循环器是被jetty提供的。

    Snip20160713_92

    具体事件

    我们找一个具体的事件,看下这个事件具体的过程。

    我们看下作业完成时间:
    Snip20160713_95

    我们注意到在JobScheduler发送消息时,里面包涵batchInfo。里面记录了处理开始结束的时间。
    Snip20160713_96

    之后,通过监听器StreamingJobProgressListener,调用onBatchCompleted方法,会重新刷新一下数据。
    Snip20160713_97

    在StreamingPage中,会读取listener中的数据,进行页面渲染。
    Snip20160713_98

    最终,Jetty会根据数据,不断进行页面刷新。

    欲知后事如何,且听下回分解!

    DT大数据每天晚上20:00YY频道现场授课频道68917580

  • 相关阅读:
    IOS客户端Coding项目记录(二)
    IOS客户端Coding项目记录(一)
    IOS开发基础知识--碎片7
    图解域域树域林根域的含义
    Windows server 2012公用网络修改为专用网络
    Windows2012R2版本区别
    VMWare:vSphere6 企业版参考序列号
    Oracle快速测试连接是否成功
    Brocade300 commands
    也谈免拆机破解中兴B860av1.1(解决不能安装软件/解决遥控)
  • 原文地址:https://www.cnblogs.com/dt-zhw/p/5668382.html
Copyright © 2020-2023  润新知