• spark-streaming


    一、spark Streaming是基于spark的流式批处理引擎

    原理:将实时输入数据流以时间片为单位进行拆分,然后经过spark引擎以类似批处理的方式处理每个时间片数据

    二、sparkStreaming作业流程

    1.客户端提交作业后启动Driver(Driver是spark作业的Master);
    2.每个作业包含多个Executor,每个Executor以线程的方式运行task,Spark Streaming至少包含一个receiver task;
    3.Receiver接收数据后生成Block,并把BlockId汇报给Driver,然后备份到另外一个Executor上;
    4.ReceiverTracker维护Reciver汇报的BlockId;
    5.Driver定时启动JobGenerator,根据Dstream的关系生成逻辑RDD,然后创建Jobset,交给JobScheduler;
    6.JobScheduler负责调度Jobset,交给DAGScheduler,DAGScheduler根据逻辑RDD,生成相应的Stages,每个stage包含一到多个task;
    7.TaskScheduler负责把task调度到Executor上,并维护task的运行状态;
    8.当tasks、stages、jobset完成后,单个batch才算完成。

    三、流式系统的特点:
    1.低延迟。秒级或更短时间的响应
    2.高性能
    3.分布式
    4.可扩展。伴随着业务的发展,数据量、计算量可能会越来越大,所以要求系统是可扩展的
    5.容错。分布式系统中的通用问题,一个节点挂了不能影响应用

    四、Spark Streaming 与 Strom

    1、同一套系统,安装spark之后就一切都有了
    2、spark较强的容错能力;strom使用较广、更稳定
    3、storm是用Clojure语言去写的,它的很多扩展都是使用java完成的
    4、任务执行方面和strom的区别是:
    spark steaming数据进来是一小段时间的RDD,数据进来之后切成一小块一小块进行批处理
    storm是基于record形式来的,进来的是一个tuple,一条进来就处理一下
    5、中间过程实质上就是spark引擎,只不过sparkstreaming在spark之后引擎之上动了一点手脚:对进入spark引擎之前的数据进行了一个封装,方便进行基于时间片的小批量作业,交给spark进行计算

    Streaming 程序基本步骤

    1、创建输入DStream来定义输入源

    2、通过对DStream应用转换操作和输出操作来定义流计算

    3、用streamingContext.start()来开始接收数据和处理流程;start之后不能再添加业务逻辑。

    4、通过streamingContext.awaitTermination()方法来等待处理结束(手动结束或因为错误而结束)

    5、可以通过streamingContext.stop()来手动结束流计算进程

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    SQL Server给一批用户分别单独发送销售数据清单
    SSRS(SQL Server 2016 Reporting Services)设置 Web 门户的品牌
    SQL Server中的游标
    SQL SERVER中查询参数为空(null)时默认查询所有的实现
    SQL Server注释快捷键
    MCSA 70-761 SQL Server 2016 练习题搬运
    SQL Server里Grouping Sets的威力【转】
    SQL Server判断表中某字段是否存在【转】
    Mac Homebrew安装使用更换国内镜像
    kubernetes常用命令
  • 原文地址:https://www.cnblogs.com/sumboy/p/9367993.html
Copyright © 2020-2023  润新知