Spark Straming

125 阅读2分钟

Spark Straming处理模式

Spark的核心数据结构是RDD,即弹性分布式数据集。微批处理(Batch)的方式,将输入的数据以某一时间间隔T,切分成多个微批量数据,然后对每个批量数据进行处理。

消息传输保障

At most once、At least once和Exactly once。At most once表示每条消息传输的次数为0次或者1次,即消息可能会丢失;Atleast once表示每条消息传输的次数大于等于1次,即消息传输可能重复传输但保证不会丢失;Exactly once表示每条消息只会精确地传递1次,即消息传输过程中既不会丢失,也不会重复。SparkStreaming保证了Exactly once。

容错机制

SparkStreaming采用了基于RDD Checkpoint的方式进行容错。

Spark运行模式

Spark提供了4种模式,分别是本地模式、Standalone模式、Spark On Yarn模式及Spark On Mesos模式。其中,本地模式包含了单机模式和单机伪集群模式,用于基本的调试与实验,而另外3种模式都是基于不同资源调配的集群模式,一般是生产环境中搭建的分布式集群。

对于大量的数据,Spark在内部保存计算的时候,都是用一种叫做弹性分布式数据集(Resilient Distributed Datasets, RDD)的数据结构来保存的,所有的运算以及操作都建立在RDD数据结构的基础之上。

RDD设计的核心点为:

  • 内存计算;
  • 适合于计算机集群;
  • 有容错方式。

RDD存储结构

属性说明
分区列表-partitions每个分区为RDD的一部分数据
依赖列表-dependenciestable存储其父RDD,即依赖RDD
计算函数-compute利用父分区计算RDD各分区的值
分区器-partitioner指明RDD的分区方式(Hash、Range)
分区位置列表-preferredLocations指明分区优先存放的节点位置