zoukankan      html  css  js  c++  java
  • 63、Spark Streaming:架构原理深度剖析

    一、架构原理深度剖析

    image

    StreamingContext初始化时,会创建一些内部的关键组件,DStreamGraph,ReceiverTracker,JobGenerator,JobScheduler,DStreamGraph,
    我们程序中定义很多DStream,中间用很多操作把这些DStream给串起来,这些DStream之间的依赖关系,就是所谓的DStreamGraph,
    然后调用StreamingContext.start()方法;
    
    调用StreamingContext.start()方法的时候,会去Spark集群中的某个Worker节点上的Executor,启动输入DStream(比如JavaReceiverDStream)的Receiver;
    
    StreamingContext的初始化,Receiver的启动,就完成了SparkStreaming应用程序的准备工作;
    
    Receiver负责数据接收,Receiver从数据源读取数据,Receiver接收到数据之后,就会先将数据保存到它运行的Executor关联的BlockManager中,
    除了会将数据保存在BlockManager中,还会发送一条数据的信息,到StreamingContext的ReceiverTracker中;
    
    JobGenerator--每隔我们定义的batch间隔,就会去ReceiverTracker中,获取一次时间间隔内的数据信息,然后将数据创建为一个RDD,每个batch对应一个RDD,
    这个RDD,也就是DStream中的一个时间段对应的一个RDD;
    
    根据DStreamGraph定义的算子和各个DStream之间的依赖关系,去生成一个job,job的初始RDD,就是刚才创建的batch对应的RDD,然后通过JobScheduler提交job;
  • 相关阅读:
    C 库函数 ------ qsort()
    递归之美
    C函数库 ------ ctype.h
    scanf 多行输入判断结束
    POSIX库、glibc库、pthreads库、libc库、newlib、uClibc
    Docker 私有仓库搭建
    在daemon.json中配置主机后无法启动docker
    MySQL配置HeartBeat实现心跳监控和浮动IP
    Heartbeat基础知识-运维小结
    (二) Docker中启动镜像
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/11382685.html
Copyright © 2011-2022 走看看