基于Flink的实时数据处理平台架构和技术实现

1 下载量 108 浏览量 更新于2024-08-29 收藏 536KB PDF 举报
基于Flink构建用户实时基础行为工程 Flink是目前Qunar主推的实时数据处理开源平台,用于替代SparkStreaming。Flink是一个面向数据流处理和批量数据处理的分布式的开源计算框架,能够支持流处理和批处理两种应用类型。有着低延迟、Exactly-once保证,而批处理需要支持高吞吐、高效处理的特点。 Flink的特点包括: 1. 有状态计算的Exactly-once语义:Flink能够维护数据在时序上的聚类和聚合,同时它的checkpoint机制可以方便快速的做出失败重试。 2. 支持带有事件时间(eventtime)语义的流处理和窗口处理:事件时间的语义使流计算的结果更加精确,尤其在事件到达无序或者延迟的情况下。 3. 支持高度灵活的窗口(window)操作:支持基于time、count、session,以及data-driven的窗口操作,能很好的对现实环境中的创建的数据进行建模。 4. 轻量的容错处理(fault tolerance):它使得系统既能保持高的吞吐率又能保证exactly-once的一致性。通过轻量的statesnapshots实现。 5. 支持高吞吐、低延迟、高性能的流处理。 6. 支持savepoints机制(一般手动触发):即可以将应用的运行状态保存下来;在升级应用或者处理历史数据是能够做到无状态丢失和最小停机时间。 7. 支持大规模的集群模式,支持yarn、Mesos:可以运行在成千上万的节点上。 8. 支持具有Backpressure功能的持续流模型。 9. Flink在JVM内部实现了自己的内存管理,包括完善的内存架构和OOM。 在基于Flink构建用户实时基础行为工程中,可以使用Flink的这些特点来实现高性能、低延迟的流处理和批处理,并且可以处理每天超过12亿条实时数据,数据实时性达到秒级,QPS可支持10万的用户实时基础行为工程的技术实现。