ITPub博客

首页 > 大数据 > Spark > spark 的方式

spark 的方式

Spark 作者:mcxiaoracle 时间:2022-07-20 02:01:50 0 删除 编辑
  • sparkStreaming简介
  • spark Streaming和Storm区别
  • Spark Streaming算子
  • Spark checkpointing

  • Spark和kafka整合



  • SparkStreaming是一种流式处理框架,是SparkAPI的扩展,支持可扩展、高吞吐、容错的 准实时数据处理,实时数据的来源可以事:
    • Kafka、Flume、Twitter,zeroMQ或者TCP sockets;
  • 并且可以使用高级功能的复杂算子来处理流数据,例如:map,reduce,jion,window;最终处理后的数据可以来存放在文件系统,数据库,方便实时展现;


  • Storm是纯实时的流式处理框架,SparkStreaming是准实时的处理框架(微批处理);因为微批处理,SparkStreaming的吞吐量比Storm要高;
  • Storm的事务机制要比SparkStreaming的要完善;
  • Storm支持的动态资源调度(Spark1.2及以后也支持)
  • SparkStreaming擅长复杂的业务处理,Storm不擅长复杂的业务处理,擅长简单的汇总计算

Spark的各个子框架,都基于核心Spark的,SparkStreaming在内部的机制如下:SparkStreaming接收到实时input数据流,并将数据分批成batch,然后由Spark Engine进行处理最后生成batch的输出结果流

任何作用于DStream的算子,其实都会被转化为对其内部RDD的操作。例如,我们将 lines 这个DStream转成words DStream对象,其实作用于lines上的flatMap算子,会施加于lines中的每个RDD上,并生成新的对应的RDD,而这些新生成的RDD对象就组成了words这个DStream对象。其过程如下图所示


  • 基础数据源:在StreamingContext API中可以直接使用源:如文件系统,套接字连接或者Akka actor
  • 高级数据源:需要依赖额外工具类的源,如:Kafka、Flume;


因为SparkStream是7*24小时运行的,Driver只是一个简单的进程,有可能挂掉,所以实现Driver的HA就又必要(如果使用Client模式就无法实现DriverHA)Yarn平台cluster模式提交任务,AM(AplicationMaster)相当于Driver,如果挂掉会自动启动AM。这里所说的DriverHA针对的是Spark standalone和Mesos资源调度的情况下。实现Driver的高可用有两个步骤:


  • receiver模式采用了Receiver接收器模式,需要一个线程一直接受数据,将数据接收到Executor中,默认存储级别是MEMORY_AND_DISK_SER_2
  • receiver模式自动使用zookeeper管理消费者offset
  • receiver模式底层读取kafka采用High Level Consumer API实现,这种模式不关心offset,只要数据;
  • receiver模式当Driver挂掉时有数据丢失问题,可以开启WAL机制,避免丢失数据,但是开启后加大数据延迟,并存在数据重复消费等风险;
  • receiver模式并行度由spark.stream.blockInterbal=200ms,可以减少这个参数增大并行度,最小不能低于50ms;
  • Receiver模式不被使用
    • 被动将数据接受到Executor,当有任务堆积实,数据存在问题
    • 这种模式不能手动维护消费者offset







推荐阅读:












来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69949806/viewspace-2906587/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Excel 数据处理
请登录后发表评论 登录
全部评论
数据方向,了解oracle ,IBM DB2 730

注册时间:2019-09-30

  • 博文量
    286
  • 访问量
    226573