目录
***5. Kubernetes容器部署(Kubernetes Mode)
什么是Flink
Flink当然是一只可爱的小松鼠啦~(抖机灵)。
Apache Flink 诞生于柏林工业大学的一个研究性项目,原名 StratoSphere 。2014 年,由 StratoSphere 项目孵化出一只可爱的 Flink小松鼠,并于同年捐赠 Apache,之后成为 Apache 的顶级项目。
简单来说,Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎它能够对有界和无界的数据流进行高效的处理。Flink 的核心是流处理,当然它也能支持批处理,Flink 将批处理看成是流处理的一种特殊情况(即数据是bounded的)。
Flink的特点
统一处理模型:
Flink 同时支持流处理和批处理,通过统一的API简化了不同数据处理场景下的编程复杂性。
高性能:基于内存的计算引擎和优化的状态管理,Flink 能够提供高吞吐量和低延迟的数据处理能力,满足实时分析需求。
精确一次语义:
通过强大的状态管理和容错机制,Flink 能够确保数据处理的精确一次(Exactly-once)语义,保障数据处理的一致性和正确性。
分层API:
提供DataStream API、Table API和SQL API等多层次API,满足不同开发者和不同使用场景的需求,从底层操作到高级声明式查询均可覆盖。
高可用性和容错性:
支持高可用配置和保存点(Savepoint)机制,确保在故障发生时能够迅速恢复作业,保障数据处理的连续性和安全性。
灵活的部署选项:
支持多样化的部署方式,包括本地、远程集群以及云端环境,便于用户根据具体需求和环境进行选择和部署。
可扩展架构:
采用横向扩展架构,支持根据业务需求动态调整资源,实现弹性扩容,满足大数据处理的高并发需求。
活跃的社区和完善的生态:
拥有活跃的开发者社区和完善的生态系统,提供丰富的连接器和集成方案,方便用户与其他大数据和机器学习工具进行集成和扩展。
维度 | SparkStreaming | Flink |
设计理念和核心 |
建立在Spark之上的流式计算框架,通过Spark提供的API和基于内存的高速计算引擎,使用批处理进行micro-batch流式计算。 | 面向分布式数据流处理和批量数据处理的开源计算框架,以流为核心,批处理是流处理的一个特例。 |
时间机制 |
主要支持处理时间(Processing Time),即数据被处理时系统的时间。最新的Structured Streaming则支持处理时间和事件时间(Event Time),并可以使用watermark机制处理滞后数据。 | 支持三种时间机制:事件时间(Event Time)、摄入时间(Ingestion Time)和处理时间(Processing Time)。通过watermark机制处理滞后数据,保证事件时间下的时序性。 |
执行模型 |
采用微批处理(Micro-Batch)模型,将连续的数据流划分为一系列小的批次,然后对每个批次进行批量处理。 | 基于事件时间的连续处理模型,实现了精确的状态管理和事件处理,适用于对数据实时性要求较高的场景。 |