• Spark Streaming源码解读之JobScheduler内幕实现和深度思考


    本期内容 :

    • JobScheduler内幕实现
    • JobScheduler深度思考

       JobScheduler 是整个Spark Streaming调度的核心,需要设置多线程,一条用于接收数据不断的循环,另外一条是处理线程,同时需要把调度与执行分离开。

    一、 作业流程源码 :

      首先只要定义了BatchDuration后就规定了按照什么样的频率生成具体的Job ,也就是Job生成的频率:

       

      按照一定的频率操作ForeachRDD :

      我们设置每隔5秒钟都会生成一个Spark 的Job ,Job其实其内部是存在依赖关系的,当遇到时间维度的时候就变成物理级别的。

       

       

       指定的两条线程,说明具体在集群中需要的线程数据,一条用于接收数据不断的循环,另外一条是处理线程。

       

      启动的新线程,是调度层面的,而应用程序是自己配置,需要把调度与执行分离开,每个线程都有自己的属性:

       

      Spark Streaming源码中默认的是一个线程数 :

       

      进行实例化过程

       

      Job调度本身与需要实现的业务逻辑

       

       

    二、 调度流程源码 :

      JobGenerator有三大核心 :

      1. JobGenerator本身

      2. JobGenerator任意生成Job

      3. ReceiverTracker整个数据的控制与生成者

       

      时间维度加Action级别,就是根据generateJob来生成作业

       

      业务代码逻辑级别与空间级别、静态,真正运行起来变成物理级别就需要JobGeneratorEvent

       

       

       

      从时间维度去调用空间维度的内容,就生成了现实的内容(物理级别的)

       

      将每个Job放入线程池中,为了配合线程池使用了JobHandler

       

       

      开始处理业务逻辑部分

        

  • 相关阅读:
    “图”以致用组
    水体频率小组
    2021年云开发组三等奖作品展示
    毫秒级百万数据分页存储过程[欢迎转载]
    SQL Server 数据备份存储过程[原创]
    博客园居然被中国电信提醒有病毒,有图为证
    网络文件夹例子
    小技巧:在DropDownList数据绑定前插入固定文字
    ASP.NET整合Discuz!NT3.5实例说明(含用户登录、评论等)
    Visual Studio 2008的性能改进以及十大新功能(转)
  • 原文地址:https://www.cnblogs.com/yinpin2011/p/5517968.html
Copyright © 2020-2023  润新知