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的一部分数据 |
| 依赖列表-dependencies | table存储其父RDD,即依赖RDD |
| 计算函数-compute | 利用父分区计算RDD各分区的值 |
| 分区器-partitioner | 指明RDD的分区方式(Hash、Range) |
| 分区位置列表-preferredLocations | 指明分区优先存放的节点位置 |