Spark Streaming

在这里插入图片描述
Spark提供了SparkStreaming模块,用于实时流数据处理。即随着数据的实时到达,进行实时计算。目前实时计算的框架有Storm,SparkStreaming,Flink
SparkStreaming可以接受多种数据源的数据,然后处理产生的结果可以存储到HDFS,HBase,Mysql等

工作原理

SparkStreaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如Kafka、Flume、Twitter、ZeroMQ和TCP 套接字)进行类似Map、Reduce和Join等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘。
在这里插入图片描述
Spark Streaming是将流式计算分解成一系列短小的批处理作业,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据DStream(Discretized-离散化 Stream),每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset),然后将Spark Streaming中对DStream的Transformations操作变为针对Spark中对RDD的Transformations操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加或者存储到外部设备。

对DStream的处理,每个DStream都要按照数据流到达的先后顺序依次进行处理。即SparkStreaming天然确保了数据处理的顺序性。
这样使所有的批处理具有了一个顺序的特性,其本质是转换成RDD的血缘关系。所以,SparkStreaming对数据天然具有容错性保证。

为了提高SparkStreaming的工作效率,你应该合理的配置批的时间间隔, 最好能够实现上一个批处理完某个算子,下一个批子刚好到来。

  • SparkStreaming监听指定的数据源(比如HDFS,Kafka等),数据连续不断的传输给SparkStreaming
  • SparkStreaming将接收的数据源根据指定的批大小(batch size),离散(divide)化成一段一段的数据。(批大小是时间单位,比如几秒,几十秒)
  • 这一段一段的数据,会被SparkStreaming封闭成一个一个的DStream(离散化的数据流),每一个DStream底层就是一个RDD。
  • 实时计算处理的就是一个一个的DStream,所以本质上就是处理一个个的RDD。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值