构无法适应海量数据处理的需求,而且传统系统普遍面向单一的应用领域,模块之间具有
较高的耦合度,扩展性差,难以适应和发展。
面对这些问题,Hadoop 平台的出现指出了解决方向,并行化和平台式成为主流,分
布式大数据流处理技术成为了理想的解决方案,提出了很多可以高性能低延迟的处理大数
据流的平台,例如 Storm,Spark Streaming,Samza 等。这些平台采用分布式架构,
其数据处理能力可以随着分布式节点的数目增长而增长,可以良好的适应海量数据的处理,
同时实现了平台化,即自身只有基础模块,负责数据传输和任务分配等工作,而逻辑模块
由用户自己编码开发,因此具有很高的扩展性,可以方便的用于实现各类系统。
2. 特性
一个典型的数据处理系统可以有几个分类维度,例如数据形态、依托介质和处理粒度。
传统的 MapReduce 是面向静态数据,依托磁盘的粗粒度处理模式,因此可以有很高的
数据吞吐量,适合用于海量静态数据的处理,但是由于其依托于磁盘,因此获得处理结果
需要相对长的时间,一般形象的称之为离线处理。
和之相对的就是面向动态数据,依托内存的细粒度处理模式,即分布式流处理模式,
数据进行流式的动态输入并且同样的实时产生流式的处理结果,处理延迟低,由于数据是
不断产生输入并处理的,因此理论上只要在高峰期不产生数据堆积,系统不需要很高的吞
吐量,相对的,则对延迟提出了更高的要求,因此要求系统是细粒度的,从而更及时的产
生数据处理结果。
目前世面上存在很多种分布式流处理平台,各有特色,但是其中很大一部分的核心思
想是有很大共同之处的。和传统分布式系统中所应用的 MapReduce 思想相同,分布式
流处理同样是将需要处理的数据流进行切分,然后采用多个节点进行计算,从而实现低延
迟快速处理大量数据的效果。如图所示。
评论