基于Lambda架构的数据实时计算系统

产品定义

百分点数据实时计算系统采用了世界领先的Lambda架构设计,提供了一整套技术和方法,在分钟甚至秒级完成对TB级别的数据的计算和查询,包括实时统计报表、实时算法、实时机器学习、交互式查询,几乎涵盖了大部分的数据业务需求。

产品架构

基于Lambda架构的数据实时计算系统_第1张图片

上图从左往右看,数据不断的从数据源产生,比如在线业务数据、实时抓取的数据、从其他系统导入的数据等等。数据会统一进入一个大吞吐量消息队列系统Kafka。每条进入Kafka的数据,都会分别流转到流处理平台和批处理平台中,这两个平台采用不同的计算模型,同时完成对数据的计算。其中,流处理平台会在每条数据接受到的时刻就完成相应的计算工作,并在合适的时机根据输出的配置,将结果输出到查询平台或内存数据库系统中。而批处理平台,会先积攒一段时间的数据,然后在这些数据的基础上运用某种算法模型,完成计算,计算结果同样会输出到查询平台或内存数据库系统中。

流计算平台充当着实时计算平台的重要组成部分,实时流转的数据,需要一个分布式的、高性能、高可靠性的消息处理和计算平台。百分点流计算平台,基于开源Storm打造,并提供统一的图形化开发/建模环境,极大的提高计算任务的开发速度。

下图所示的是一个流计算任务。数据从上向下流转运行。数据喷嘴从Kafka接受到数据一层层的发向下一级的计算节点,每个计算节点完成一部分计算任务,并将结果发送给下一层,这样的计算模型也可以称作“图计算”。图计算模型,可以很好的将计算任务分解成可以并行计算的步骤,即使需要大量计算的任务,也可以通过并行的方式缩短处理时间,达到实时的效果。

基于Lambda架构的数据实时计算系统_第2张图片

为了能够达到数据处理的准确性,可靠性,流处理平台会记录每条发出的数据是否完整的经过了处理的路径。如果数据在某个阶段处理发生异常,平台可以把数据重新计算,并且只重复进行失败的运算,保证数据仅被唯一的处理。这样,即使系统发生故障,也可以保证任务的正确运行,报表应用可以不会因为故障而延迟或数据错误。

高速批处理平台,弥补了流处理不能纵观全局数据的缺点。流式处理是一种边读取数据边建立数据模型的方式,一般来说无法处理大范围综合性数据计算。如果需要纵观一段时期内的原始数据总体,结合新老数据执行一些任务,则流处理平台会无法很好的完成任务。高速批处理平台基于Spark搭建,可以对大量的历史数据执行通用的MapReduce任务、SQL查询、丰富的机器学习算法等,并可以支持全内存计算模式,综合处理速度可以是传统Hadoop的100倍。

基于Lambda架构的数据实时计算系统_第3张图片

你可能感兴趣的:(lambda)