史上最简单的spark教程第十八章-SparkStreaming实时计算核心概念(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/youbitch1/article/details/89228315

SparkStreaming的核心架构(一)

  • 这篇博客的主要核心就是让大家搞懂spark运行原理和核心架构

史上最简单的spark教程
所有代码示例地址:https://github.com/Mydreamandreality/sparkResearch

(提前声明:文章由作者:张耀峰 结合自己生产中的使用经验整理,最终形成简单易懂的文章,写作不易,转载请注明)
(文章参考:Elasticsearch权威指南,Spark快速大数据分析文档,Elasticsearch官方文档,实际项目中的应用场景)
(帮到到您请点点关注,文章持续更新中!)
Git主页 https://github.com/Mydreamandreality


sparkStreaming基本概念

  • streaming使用的是微批次的架构,这个在第一章我们也简单的了解过
  • 你可以这么理解,streaming是一系列连续的小规模批处理
  • streaming从各种数据源读取数据,并且把数据分为小的批次
  • 新的批次按照均匀的时间间隔创建出来
  • 每个时间区间开始的时候,一个新的批次就被创建出来,在该区间内收到的数据都会被添加到这个批次中,时间区间结束的时候,批次停止增长
  • 时间区间是由批次间隔这个参数设置的,就是我们上一章节中的Durations.seconds(1) 这个参数
  • 批次间隔一般都是设置在毫秒级或者几秒之间,这个参数是由我们开发者根据实际的需求配置的
  • 每次传输的批次我们都可以理解为RDDs,Dstream只不过是基于RDD的一层抽象而已,所以我们才可以使用filter等其他函数操作Dstream
  • sparkStreaming的抽象就是离散化流,也就是我们说的Dstream,它本质上其实还是一个RDD
    在这里插入图片描述

DStream的概念

  • 创建Dstream我们可以从外部的数据源进行创建
  • 亦可以针对其他的Dstream应用进行转化操作得到新的Dstream
  • 在一个Dstream中的每个RDD包含来自一定时间间隔的数据
  • Dstream基本上支持RDD所支持的转化操作
  • Dstream还有有状态的转换操作,可以聚合不同时间区间的数据
  • Dstream还支持输出操作,就像我们第一章案例中的print()函数,
  • 输出操作和RDD的行动操作概念有些类似

接收器的概念

  • SparkStreaming会为每个输入源启动对应的接收器
  • 接收器以任务的形式运行在应用的执行器进程中
  • 从输入源收集数据并且保存为RDD
  • 默认收集到数据后会把数据被分到另一个执行器进程中保障容错性
  • 数据会保存在执行器的内存中,缓存方式和RDD是一样的

接收器需要注意的几点

  • 在本地执行streaming程序的时候,不可以使用 local或者local[1]作为mater的URL,这两种运行方式意味着本地只有一个线程运行本地任务,如果我们使用基于接收器的dstream,那么这个线程只会执行接收器,不会处理接收到的数据
  • 分配给streaming的程序内核数必须大于接收器数量,否则只能接收数据,而无法处理

数据容错

  • streaming的容错和RDD的容错是一致的,只要输入的数据还在,spark驱动器就会重算出任意状态,比如可以重新执行处理输入数据的操作
  • 默认情况下我们接收的输入数据存在于两个节点,当有一个节点故障的时候,spark会自动恢复,但是这样会处理从程序启动以来所有的数据
  • 所以sparkStreaming提供了检查点机制,就是我们把数据状态阶段性的存储到文件系统中 比如HDFS,一般是处理5-10个批次的数据处理一次,然后我们在恢复数据的时候,只需要回溯到上一个检查点即可

sparkStreaming需要注意的点:

  • 只要SparkContext启动,这个时候就不会有新的数据流计算可以创建或者添加到它
  • 只要Context被停止,它不会自动重启
  • 同一时间Jvm只有一个streamingContext可以被激活
  • 一个sparkContext可以被复用创建多个streamingCOntext.,前提是在创建下一个之前,上一个已经stop,(是streamingContext停止,不是sparkContext停止)

在这里插入图片描述


感兴趣的兄弟可以关注,完整代码都在git上,有问题留言交流,持续更新中

猜你喜欢

转载自blog.csdn.net/youbitch1/article/details/89228315
今日推荐