flink是什么

Apache Flink是一个高性能、高吞吐量的开源流处理框架,用于在无界和有界数据流上进行有状态的计算。它设计用于在分布式环境中进行大规模的数据处理,且能够同时处理批处理和流处理任务。

Flink通过实现Google Dataflow流式计算模型,实现了高吞吐、低延迟、高性能的实时流式计算框架。Flink的核心是一个流式的数据处理引擎,它提供了数据流(DataStream)和批处理数据集(DataSet)的统一处理,这意味着用户可以无缝地在流和批处理之间切换,从而满足不同的业务需求。

Flink支持高度容错的状态管理,即使在系统停机或者异常的情况下,也能通过分布式快照技术(Checkpoints)实现状态的持久化维护,确保计算出正确的结果。此外,Flink的状态一致性保证也使得它在处理复杂、高要求的数据流任务时表现出色。

Flink的系统由JobManager和TaskManager两个核心组件组成。JobManager负责整个Flink集群任务的调度以及资源的管理,从客户端获取提交的任务,并根据集群中TaskManager上TaskSlot的使用情况,为提交的应用分配相应的TaskSlot资源并命令TaskManager启动从客户端中获取的应用。TaskManager则负责执行具体的任务,并在任务执行过程中进行数据的处理和状态的维护。

在API层面,Flink提供了多种抽象层次的API以便用户编写分布式任务。例如,DataSet API用于对静态数据进行批处理操作,将静态数据抽象成分布式的数据集;DataStream API则用于对数据流进行流处理操作,将流式的数据抽象成分布式的数据流;Table API则对结构化数据进行查询操作,将结构化数据抽象成关系表,通过类SQL的DSL对关系表进行各种查询操作。此外,Flink还提供了机器学习库Flink ML,提供了机器学习Pipelines API并实现了多种机器学习算法。

Apache Flink的发展历史可以追溯到其前身Stratosphere项目。Stratosphere是一个研究性项目,旨在开发下一代大数据分析平台。该项目由柏林工业大学、Humboldt大学和Hasso Plattner研究所共同推动,并由柏林理工大学的教授沃克尔·马尔科(Volker Markl)领衔开发。在2010年至2014年期间,这个项目得到了欧洲一些大学的共同参与和研究。

随着项目的进展,Stratosphere在2014年4月16日被Apache Software Foundation接纳为孵化项目,并更名为Apache Flink。这一变化标志着Flink正式进入了开源社区,并开始得到更广泛的关注和发展。同年8月,Flink的第一个版本0.6正式发布,与此同时,Flink的几位核心开发者创办了Data Artisans公司。

在随后的几年里,Flink经历了快速的发展。2014年12月,Flink项目成功完成孵化,成为Apache的顶级项目。这标志着Flink在技术和社区方面都已经达到了成熟和稳定的水平。

随着版本的迭代,Flink的功能不断增强。例如,Flink 1.x系列版本开始支持流处理,这一功能迅速引发了业界的广泛关注。而在2019年,Flink 1.9版本的发布进一步扩大了其使用范围,引入了如Blink SQL引擎和PyFlink等重要特性。此外,长期对Flink投入研发的阿里巴巴在2019年以9000万欧元的价格收购了Data Artisans公司,这也进一步推动了Flink的发展。

在架构方面,Flink的设计使其可以在local、yarn以及cloud上运行,具有高度的灵活性和可扩展性。其核心组件包括JobManager和TaskManager,它们协同工作以实现数据流的处理和状态管理。同时,Flink也提供了多种抽象层次的API,如DataStream API和Table API,以便用户能够更方便地编写分布式任务。

总的来说,Apache Flink的发展历史是一个不断演进和完善的过程。从Stratosphere项目的起源,到成为Apache的顶级项目,再到不断引入新的特性和优化性能,Flink已经成为了大数据处理领域的重要工具之一。

相关推荐
W Y39 分钟前
【架构-37】Spark和Flink
架构·flink·spark
ycsdn1042 分钟前
Caused by: org.apache.flink.api.common.io.ParseException: Row too short:
大数据·flink
DolphinScheduler社区2 小时前
Apache DolphinScheduler + OceanBase,搭建分布式大数据调度平台的实践
大数据
时差9533 小时前
MapReduce 的 Shuffle 过程
大数据·mapreduce
kakwooi4 小时前
Hadoop---MapReduce(3)
大数据·hadoop·mapreduce
数新网络4 小时前
《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析
大数据·sql·spark
昨天今天明天好多天10 小时前
【数据仓库】
大数据
油头少年_w10 小时前
大数据导论及分布式存储HadoopHDFS入门
大数据·hadoop·hdfs
Elastic 中国社区官方博客11 小时前
释放专利力量:Patently 如何利用向量搜索和 NLP 简化协作
大数据·数据库·人工智能·elasticsearch·搜索引擎·自然语言处理
力姆泰克11 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节