Pravega 与 Flink 的设计理念类似,都以流为基础实现流批统一的接口便于应用使用。Pravega 团队也希望与 Flink 一起打造从底层存储到上层计算的统一大数据流水线架构。在开发层面,Pravega 与 Flink 也有着深度的合作,Pravega Flink Connector 的开发,特别是在 Flink 的端到端的仅一次语义实现的过程中,都得到了 Apache Flink PMC 成员的通力协作和大力支持。本文将从API的简介及使用入手,重点介绍Pravega+Flink的流计算编程,
简 介
Pravega是根据Apache 2.0许可证开源的流存储引擎,为连续流数据提供统一的Stream抽象。Pravega提供了持久化、强一致性以及高性能低延迟的数据存储。同样在实时大数据领域,Apache Flink是由Apache软件基金会开发的开源分布式处理引擎,用于对无界和有界数据流进行有状态的计算。 Flink提供高吞吐量、低延迟的流数据计算,以及对事件发生时间处理和状态管理的支持。Flink的应用程序在发生机器故障时具有容错能力,并且支持exactly-once语义。
Pravega与Flink的设计理念类似,都以流为基础实现流批统一的接口便于应用使用。Pravega团队也希望与Flink一起打造从底层存储到上层计算的统一大数据流水线架构。Pravega从诞生之初就积极参加Flink社区的活动,自从2017年起在每一次的Flink Forward大会上都有相关内容的分享,包括在2018年12月第一次在中国举办的Flink Forward同样也有Pravega中国团队的参与。在开发层面,Pravega与Flink也有着深度的合作,Pravega Flink Connector 的开发,特别是在Flink的端到端的仅一次语义实现的过程中,都得到了Apache Flink PMC成员的通力协作和大力支持。
Pravega Flink Connectors
Pravega Flink Connectors
实现了Flink的接口,提供了对Pravega Stream的读取和写入,并且结合Flink的Checkpoint机制提供了端到端的exactly-once处理语义(详情可见上一篇文章)。Flink对数据有两种读和写处理办法,对应的,每一种API都需要定义Flink程序的数据源(Source)和数据汇(Sink)。Pravega Flink Connector打通存储与计算之间的通道,Pravega就可以作为统一的流存储和消息总线,用户可以使用统一的Flink API在Pravega Stream上进行批或者流计算,构建一个完整的实时数据仓库。