写点什么

流式计算常见的开源实现

  • 2022-10-28
    北京
  • 本文字数:612 字

    阅读完需:约 2 分钟

流式计算常见的开源实现

当前比较主流的流式数据线(Data Pipeline)共分为四个阶段。

1)数据采集:该阶段主要负责从不同数据源上实时采集数据,典型的数据源包括移动客户端、网站后端等,通常根据后端数据缓存模块不同,选用不同的实现方案,可选的包括 Flume 以及自定义 Kafka Producer。


2)数据缓冲:为了平衡数据采集速率与数据处理速率的不对等,通常数据采集阶段和处理阶段之间加入一个数据缓冲阶段,通过由消息队列担任该角色,比如 Kafka。


3)实时分析:流式地从数据缓冲区获取数据,并快速完成数据处理,将结果写到后端的存储系统中。根据系统对延迟和吞吐率的要求不同,可选用不同的流式计算引擎,比如 Storm 或 Spark Streaming。


4)结果存储:将计算产生的结果存储到外存储系统中,根据应用场景不同,可选择不同的存储系统,比如大量可实时查询的系统,可存储到 HBase 中,小量但需可高并发查询的系统,可存入 Redis 中。


根据流式计算引擎的数据组织特点,可将其分为两类:基于行(row based)基于微批处理(micro-batch based)。基于行的流式实时处理系统以行为单位处理数据,其主要优点是单条数据的处理延迟低,但系统吞吐率一般也较低,其典型代表是 Apache Storm;基于微批处理的流式实时处理系统则将流式处理转化为批处理,即以批为单位组织数据,它通常以时间为单位将流式数据切割成连续的批数据,并通过批处理的方式处理每批数据,这类系统的优点是吞吐率高,而缺点也很明显:单条数据处理延迟较高,其典型代表是 Spark Streaming。


发布于: 刚刚阅读数: 4
用户头像

InfoQ签约作者 2018-11-30 加入

热爱生活,收藏美好,专注技术,持续成长

评论

发布
暂无评论
流式计算常见的开源实现_10月月更_穿过生命散发芬芳_InfoQ写作社区