在流处理以前,数据一般存储在数据库,文件系统或其余形式的存储系统中。应用程序根据须要查询数据或计算数据。这就是传统的静态数据处理架构。Hadoop 采用 HDFS 进行数据存储,采用 MapReduce 进行数据查询或分析,这就是典型的静态数据处理架构。html
而流处理则是直接对运动中的数据的处理,在接收数据时直接计算数据。git
大多数数据都是连续的流:传感器事件,网站上的用户活动,金融交易等等 ,全部这些数据都是随着时间的推移而建立的。github
接收和发送数据流并执行应用程序或分析逻辑的系统称为流处理器。流处理器的基本职责是确保数据有效流动,同时具有可扩展性和容错能力,Storm 和 Flink 就是其表明性的实现。数据库
流处理带来了静态数据处理所不具有的众多优势:apache
Spark Streaming 是 Spark 的一个子模块,用于快速构建可扩展,高吞吐量,高容错的流处理程序。具备如下特色:架构
Spark Streaming 提供称为离散流 (DStream) 的高级抽象,用于表示连续的数据流。 DStream 能够历来自 Kafka,Flume 和 Kinesis 等数据源的输入数据流建立,也能够由其余 DStream 转化而来。在内部,DStream 表示为一系列 RDD。框架
storm 和 Flink 都是真正意义上的流计算框架,但 Spark Streaming 只是将数据流进行极小粒度的拆分,拆分为多个批处理,使得其可以获得接近于流处理的效果,但其本质上仍是批处理(或微批处理)。ide
更多大数据系列文章能够参见 GitHub 开源项目: 大数据入门指南微服务