【物联网】9.物联网数据分析方法 - 流处理(Spark,Storm)

批处理是把数据攒起来,一次性进行处理的方法。相对而言,流处理是不保存数据,按照到达处理服务器的顺序对数据依次进行处理。

想实时对数据做出反应时,流处理是一个很有效的处理方法。因为批处理是把数据积攒之后隔一段时间进行处理,所以从数据到达之后到处理完毕为止,会出现时间延迟。因此,流处理这种把到达的数据逐次进行处理的思路就变得很重要了。此外,流处理基本上是不会保存数据的。只要是被使用过的数据,如果没必要保存,就会直接丢弃。

假设有个系统,这个系统会对道路上行驶的车辆的当前位置和车辆雨刷的运转情况进行搜集。
仅凭搜集那些雨刷正在运转的车辆的当前位置,就能够实时确定哪片地区正在下雨。此时,使用者可能想保存下过雨的地区的数据,这时候只要保存处理结果就好,所以原来的传感器数据可以丢掉不要,流处理正适用于这种情况。用流处理平台就能实现流处理。

流处理和批处理一样,也有常用的框架,Apache Spark 和Apache Storm。

Spark Streaming

Spark Streaming 是作为Apache Spark的库被公开的。

通过Spark Streaming,就能够把Apache Spark 拿到流处理中来使用

【物联网】9.物联网数据分析方法 - 流处理(Spark,Storm)

Spark Streaming 是用RDD 分割数据行的,它通过对分割的数据执行小批量的批处理来实现流处理。输入的数据会被转换成一种叫作DStream 的细且连续的RDD。先对一个RDD 执行Spark 的批处理,将其转换成别的RDD,然后按顺序对所有RDD 反复执行上述处理来实现流处理。 

 

Apache Storm

Apache Storm 是用于实现流处理的框架

【物联网】9.物联网数据分析方法 - 流处理(Spark,Storm)

用Storm 处理的数据叫作Tuple,这个Tuple 的流程叫作Streams。

Storm 的处理过程由Spout 和Bolts 两项处理构成,这种结构叫作Topology。Spout 从其他处理接收到数据的时候,Storm 处理就开始了。Spout 把接收到的数据分割成Tuple,然后将其流入Topology 来生成Streams,这就形成了流处理的入口。接下来,Bolts 接收Spout 以及从其他Bolts 输出的Streams,并以Tuple 为单位处理收到的Streams,然后将其作为新的Streams 输出。可以*组合Bolts 之间的连接,也可以根据想执行的处理*组合Topology,还可以随意决定Tuple 使用的数据类型,以及使用JSON 等数据格式。

上一篇:58 集团大规模 Storm 任务平滑迁移至 Flink 的秘密


下一篇:ApacheCN 大数据译文集 20211206 更新