Apache Flink

✍ dations ◷ 2025-08-06 07:02:19 #Articles with missing Cite arXiv inputs,自由系统软件,使用Apache许可证的软件,Apache软件基金会,用Java编

Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和管道方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。

Flink提供高吞吐量、低延迟的流数据引擎以及对事件-时间处理和状态管理的支持。Flink应用程序在发生机器故障时具有容错能力,并且支持exactly-once语义。程序可以用Java、Scala、Python和SQL等语言编写,并自动编译和优化到在集群或云环境中运行的数据流程序。

Flink并不提供自己的数据存储系统,但为Amazon Kinesis、Apache Kafka、Alluxio、HDFS、Apache Cassandra和Elasticsearch等系统提供了数据源和接收器。

Apache Flink是由Apache软件基金会内的Apache Flink社区基于Apache许可证2.0开发的,该项目已有超过100位代码提交者和超过460贡献者。 页面存档备份,存于互联网档案馆

data Artisans 页面存档备份,存于互联网档案馆是由Apache Flink的创始人创建的公司。目前,该公司已聘用了12个Apache Flink的代码提交者。

Apache Flink的数据流编程模型在有限和无限数据集上提供单次事件(event-at-a-time)处理。在基础层面,Flink程序由流和转换组成。 “从概念上讲,流是一种(可能永无止境的)数据流记录,转换是一种将一个或多个流作为输入并因此产生一个或多个输出流的操作”。

Apache Flink包括两个核心API:用于有界或无界数据流的数据流API和用于有界数据集的数据集API。Flink还提供了一个表API,它是一种类似SQL的表达式语言,用于关系流和批处理,可以很容易地嵌入到Flink的数据流和数据集API中。Flink支持的最高级语言是SQL,它在语义上类似于表API,并将程序表示为SQL查询表达式。

Flink程序在执行后被映射到流数据流,每个Flink数据流以一个或多个源(数据输入,例如消息队列或文件系统)开始,并以一个或多个接收器(数据输出,如消息队列、文件系统或数据库等)结束。Flink可以对流执行任意数量的变换,这些流可以被编排为有向无环数据流图,允许应用程序分支和合并数据流。

Flink提供现成的源和接收连接器,包括Apache Kafka、Amazon Kinesis、HDFS和Apache Cassandra等。

Flink程序可以作为集群内的分布式系统运行,也可以以独立模式或在YARN、Mesos、基于Docker的环境和其他资源管理框架下进行部署。

Apache Flink具有一种基于分布式检查点的轻量级容错机制。 检查点是应用程序状态和源流中位置的自动异步快照。在发生故障的情况下,启用了检查点的Flink程序将在恢复时从上一个完成的检查点恢复处理,确保Flink在应用程序中保持一次性(exactly-once)状态语义。检查点机制暴露应用程序代码的接口,以便将外部系统包括在检查点机制中(如打开和提交数据库系统的事务)。

Flink还包括一种名为保存点的机制,它是一种手动触发的检查点。用户可以生成保存点,停止正在运行的Flink程序,然后从流中的相同应用程序状态和位置恢复程序。 保存点可以在不丢失应用程序状态的情况下对Flink程序或Flink群集进行更新。从Flink 1.2开始,保存点还允许以不同的并行性重新启动应用程序,这使得用户可以适应不断变化的工作负载。

Flink的数据流API 页面存档备份,存于互联网档案馆支持有界或无界数据流上的转换(如过滤器、聚合和窗口函数),包含了20多种不同类型的转换,可以在Java和Scala中使用。

有状态流处理程序的一个简单Scala示例是从连续输入流发出字数并在5秒窗口中对数据进行分组的应用:

import org.apache.flink.streaming.api.scala._import org.apache.flink.streaming.api.windowing.time.Timecase class WordCount(word: String, count: Int)object WindowWordCount {  def main(args: Array) {    val env = StreamExecutionEnvironment.getExecutionEnvironment    val text = env.socketTextStream("localhost", 9999)    val counts = text.flatMap { _.toLowerCase.split("\\W+") filter { _.nonEmpty } }      .map { WordCount(_, 1) }      .keyBy("word")      .timeWindow(Time.seconds(5))      .sum("count")    counts.print    env.execute("Window Stream WordCount")  }}

Apache Beam - Flink Runner

Apache Beam“提供了一种高级统一编程模型,允许(开发人员)实现可在在任何执行引擎上运行批处理和流数据处理作业”。Apache Flink-on-Beam运行器是功能最丰富的、由Beam社区维护的能力矩阵。

data Artisans与Apache Flink社区一起,与Beam社区密切合作,开发了一个强大的Flink runner。

Flink的数据集API 页面存档备份,存于互联网档案馆支持对有界数据集进行转换(如过滤、映射、连接和分组),包含了20多种不同类型的转换。 该API可用于Java、Scala和实验性的Python API。Flink的数据集API在概念上与数据流API类似。

Flink的表API 页面存档备份,存于互联网档案馆是一种类似SQL的表达式语言,用于关系流和批处理,可以嵌入Flink的Java和Scala数据集和数据流API中。表API和SQL接口在关系表抽象上运行,可以从外部数据源或现有数据流和数据集创建表。表API支持关系运算符,如表上的选择、聚合和连接等。

也可以使用常规SQL查询表。表API提供了和SQL相同的功能,可以在同一程序中混合使用。将表转换回数据集或数据流时,由关系运算符和SQL查询定义的逻辑计划将使用Apache Calcite进行优化,并转换为数据集或数据流程序。

Flink Forward 页面存档备份,存于互联网档案馆是一个关于Apache Flink的年度会议。第一届Flink Forward于2015年在柏林举行。为期两天的会议有来自16个国家的250多名与会者。 会议分为两个部分,Flink开发人员提供30多个技术演示,另外还有一个Flink培训实践。

2016年,350名与会者参加了会议,40多位发言人在3个平行轨道上进行了技术讲座。第三天,与会者被邀请参加实践培训课程。

2017年,该活动也将扩展到旧金山。 会议致力于Flink如何在企业中使用、Flink系统内部、与Flink的生态系统集成以及平台的未来进行技术会谈。它包含主题演讲Flink用户在工业和学术界的讲座以及关于Apache Flink的实践培训课程。

来自以下组织的发言人在Flink Forward会议上发表了演讲:阿里巴巴集团、Amadeus(英语:Amadeus IT Group)、Bouygues Telecom(英语:Bouygues Telecom)、第一资本、Cloudera、data Artisans、EMC、爱立信、Hortonworks、华为、IBM、Google、MapR、MongoDB、Netflix、New Relic(英语:New Relic)、Otto Group(英语:Otto GmbH),Red Hat、ResearchGate、Uber和Zalando。

2010年,研究项目“Stratosphere:云上的信息管理”(由德国研究基金会(DFG)资助)由柏林工业大学、柏林洪堡大学和Hasso-Plattner-Institut合作启动。Flink从Stratosphere的分布式执行引擎的一个分支开始,于2014年3月成为Apache孵化器项目。2014年12月,Flink称为Apache顶级项目。

相关

  • 路史《路史》,宋朝人罗泌撰,共四十七卷。此书为杂史。路史,即大史之意,记述了上古以来有关历史,地理,风俗,氏族等方面的传说和史事,取材繁博庞杂。《路史》上自三皇五帝,下迄夏桀,对于中国
  • 胶带胶带,又名胶条,胶纸,胶带纸等,是一种涂有黏合剂背衬的组合材料,通常是长条状并以卷起,施压拉扯的方式使用。依据黏合剂的不同和表面材料不同,分为多种类型。单位通常是以“卷”来计
  • 支棱关支棱关(越南语:Ải Chi Lăng),又称支棱隘,位于谅山省枝陵县支棱市镇境内,是越南的一个关隘。国道1A号从这一关隘通过。支棱关位于丛山峻岭之间,其地理位置非常险要,在历史上曾是通
  • 电子商务经营模式电子商务经营模式是指电子化企业(e-business)如何运用资讯科技与互联网,来经营企业的方式;简略归纳出B2B(Business to Business)、B2C(Business to Consumer)、C2B(Consumer to Busin
  • 夜鹰属夜鹰属(学名:)在动物分类学上是夜鹰目夜鹰科中的一个属,是中等体型的夜行鸟类,广泛分布在世界各地。夜鹰属鸟在地面上筑巢,主要活动于深夜与凌晨,以飞蛾和其他大型飞行昆虫为食。温
  • 钟音钟音(?-1778年),是中国清朝官员,觉尔察氏,字闻轩,满洲镶蓝旗人。雍正十三年乙卯科举人,乾隆元年(1736年)中联捷进士,散馆授检讨。乾隆十七年(1752年)授陕西巡抚,旋调福建,后任广东巡抚。
  • 法蒂玛圣母法蒂玛圣母(葡萄牙语:Nossa Senhora de Fátima)是天主教徒给1917年在葡萄牙法蒂玛连续六个月于当月的13日显现给三个牧童而后被天主教会所认为是“圣母玛利亚”者的称号。由于
  • 尤巴县 (加利福尼亚州)尤巴县(英语:Yuba County)是美国加利福尼亚州的一个县,县治马里斯维尔。根据美国人口调查局2000年统计,共有人口60,219,其中白人占70.64%、亚裔美国人占7.5%、非裔美国人占3.16%、
  • 第16届奥斯卡金像奖第16届奥斯卡金像奖(英语:16th Academy Awards)于1944年举办,是奥斯卡金像奖首次在大型场馆格劳曼中国戏院举行,CBS Radio透过短波广播全程实况转播。获奖者以置顶表示。以下电影
  • 邵庾曾邵庾曾,清朝中期政治人物、学者诗人,藏书家。字南俶,号湘芷,顺天宛平人,祖籍浙江余姚县。出自浙东望族余姚邵氏,先祖在明季清初北上迁居宛平,遂入籍宛平。考中顺天举人,继而中乾隆二