Apache Flink 1.3.0正式发布及其新功能介绍

下面文档是今天早上翻译的,因为要上班,时间比较仓促,有些部分没有翻译,请见谅。

2017年06月01日儿童节 Apache Flink 社区正式发布了 1.3.0 版本。此版本经历了四个月的开发,共解决了680个issues。Apache Flink 1.3.0 是 1.x.y 版本线上的第四个主要版本,其 API 和其他 1.x.y 使用 @Public 注释的API是兼容的。

此外,Apache Flink 社区目前制定了每四月发行一个主要版本(Apache Flink 1.2.0 是2017-02发行的,和 1.3.0正好隔了四个月),所以我们可以预期 Apache Flink 1.4.0 大约会在十月份发布。

主要的更新如下

Large State Handling/Recovery

  • RocksDB的增量检查点(Incremental Checkpointing for RocksDB):现在支持仅保存与上一次成功checkpoint之后新增的数据,而不是保存所有的应用程序状态。这将会加快checkpoint的时间,并且会相应地减少磁盘空间的消耗,因为每个checkpoint的大小会更小。详情请参见FLINK-5053。
  • 基于堆状态后端的异步快照(Asynchronous snapshotting):现在文件后端和内存后端(backends)使用写时复制HashMap的实现,使得其支持异步快照。异步快照使得Flink堆缓慢的存储系统和昂贵的序列化具有更大的弹性。详情请参见FLINK-6048, FLINK-5715。
  • 允许升级状态的Serializer:现在我们可以保存应用程序状态的前提下升级状态的Serializer。
  • 以算子的粒度恢复作业状态:在Apache Flink 1.3.0之前,算子的状态是绑定在task内部的,这使得很难在保持作业状态的同时改变job的拓扑。而现在我们可以做很多关于拓扑的修改。详情参见FLINK-5892。
  • 细粒度恢复(beta):在task出现故障的时候,我们可以仅仅重启那些受影响的subgraph,而不需要重启整个ExecutionGraph,这将大大减少恢复时间,详情参见FLINK-4256。

如果想及时了解Spark、Hadoop或者Hbase相关的文章,欢迎关注微信公共帐号:iteblog_hadoop

DataStream API

  • Side Outputs:这个功能使得一个算子可以有多个output stream。算子的元数据、内部系统信息(调试,性能等)或者是拒绝\延迟的数据将会是这个功能的潜在用例。Window算子现在使用这个功能来处理延迟的数据。参见FLINK-4460。
  • Union Operator State:Flink 1.2.0引入了广播状态功能(broadcast state functionality),但是这个功能并没有对外开放。Flink 1.3.0 提供了Union Operator State API来对外开放广播状态功能。详情参见FLINK-5991。
  • 针对每个窗口的状态:在此之前,WindowFunction或ProcessWindowFunction可以访问的状态被限定到窗口的key,而不是窗口本身。有了这个新功能,用户可以保持窗口状态并且与key无关。参见FLINK-5929。

Deployment and Tooling

  • Flink历史服务器:Flink的HistoryServer现在允许您查询JobManager归档的已完成作业的状态和统计信息,详情参见FLINK-1579。
  • 在WEB前端监控Watermark:为了更容易地诊断watermark相关问题,Flink JobManager前端现在提供了一个新的选项卡来跟踪每个算子的watermark。详情参见FLINK-3427。
  • Datadog HTTP Metrics Reporter: Datadog是使用非常广泛的指标系统。Flink现在提供了一个Datadog reporter,直接与Datadog http端点联系。详情参见FLINK-6013。
  • 网络缓存配置:我们终于摆脱了繁琐的网络缓冲区配置,并用更通用的方法替代了它。现在我们使用可用JVM 内存的部分(默认是10%),而不是定义绝对数量的网络缓冲区。

Table API / SQL

  • Support for Retractions in Table API / SQL: As part of our endeavor to support continuous queries on Dynamic Tables, Retraction is an important building block that will enable a whole range of new applications which require updating previously-emitted results. Examples for such use cases are computation of early results for long-running windows, updates due to late arriving data, or maintaining constantly changing results similar to materialized views in relational database systems. Flink 1.3.0 supports retraction for non-windowed aggregates. Results with updates can be either converted into a DataStream or materialized to external data stores using TableSinks with upsert or retraction support.
  • Table API / SQL支持更多的聚合: Flink 1.3.0中Table API 和 SQL 支持更多类型的聚合, 包括
    • Batch 和 Streaming SQL 都支持GROUP BY window聚合操作(通过window函数TUMBLE, HOP, and SESSION windows
    • SQL OVER window aggregations (only for streaming)
    • Non-windowed aggregations (in streaming with retractions).
    • 用户自定义的聚合函数
  • 支持外部的catalog: Table API 和 SQL 允许注册外部的catalogs. Table API 和 SQL 可以通过外部的catalogs 查询表及其模式相关的信息,而不需要对使用的表一一注册。

目前Table API / SQL的文档被重写了,预计会在06月05日发布。

Connectors

  • 支持ElasticSearch 5.x: ElasticSearch connectors相关的代码被重构,新的代码结构更加清晰,所有与ElasticSearch相关的公用模块被放到common base里面,与ElasticSearch版本相关的代码分别放到不同的模块中,这与Kafka的代码结构类似。 详情请参见FLINK-4988。
  • Allow rescaling the Kinesis Consumer: Flink 1.2.0 introduced rescalable state for DataStream programs. With Flink 1.3, the Kinesis Consumer also makes use of that engine feature (FLINK-4821).
  • Transparent shard discovery for Kinesis Consumer: The Kinesis consumer can now discover new shards without failing / restarting jobs when a resharding is happening (FLINK-4577).
  • Allow setting custom start positions for the Kafka consumer: With this change, you can instruct Flink’s Kafka consumer to start reading messages from a specific offset (FLINK-3123) or earliest / latest offset (FLINK-4280) without respecting committed offsets in Kafka.
  • Allow out-opt from offset committing for the Kafka consumer: By default, Kafka commits the offsets to the Kafka broker once a checkpoint has been completed. This change allows users to disable this mechanism (FLINK-3398).

CEP Library

The CEP library has been greatly enhanced and is now able to accommodate more use-cases out-of-the-box (expressivity enhancements), make more efficient use of the available resources, adjust to changing runtime conditions–all without breaking backwards compatibility of operator state.

Please note that the API of the CEP library has been updated with this release.

Below are some of the main features of the revamped CEP library:

  • Make CEP operators rescalable: Flink 1.2.0 introduced rescalable state for DataStream programs. With Flink 1.3, the CEP library also makes use of that engine feature (FLINK-5420).
  • CEP library新引入的算子:

Gelly Library

  • Unified driver for running Gelly examples FLINK-4949).
  • PageRank algorithm for directed graphs (FLINK-4896).
  • Add Circulant and Echo graph generators (FLINK-6393).

Known Issues

There are two known issues in Flink 1.3.0. Both will be addressed in the 1.3.1 release.

  • FLINK-6783: Wrongly extracted TypeInformations for WindowedStream::aggregate
  • FLINK-6783: StateDescriptor cannot be shared by multiple subtasks
时间: 2024-10-19 12:12:27

Apache Flink 1.3.0正式发布及其新功能介绍的相关文章

AndroidStudio3.0 下载使用新功能介绍

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> AndroidStudio3.0 下载使用新功能介绍 - 天平 - 博客频道 - CSDN.NET 天平 向着目标一步一步走. 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Python,终于等到你!    &

Kafka 0.11版本新功能介绍 —— 空消费组延时rebalance

在0.11之前的版本中,多个consumer实例加入到一个空消费组将导致多次的rebalance,这是由于每个consumer instance启动的时间不可控,很有可能超出coordinator确定的rebalance timeout(即max.poll.interval.ms),而每次rebalance的代价又相当地大,因为很多状态都需要在rebalance前被持久化,而在rebalance后被重新初始化.曾经有个国外用户,他有100个consumer,每次rebalance的时间甚至要1个

Android Studio 3.0 下载 使用新功能介绍

谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快.(英语一般,有些翻译不太好) 下载地址 https://developer.android.google.cn/studio/archive.html 选择显示全部即可看到下载地址,这里给出来了. Windows (64-bit): android-studio-ide-171.4010489-windows.zip (702075896 bytes) https://dl.google.c

vSphere 6.0 新功能介绍 系列 前言

最近准备写个系列:vSphere 6.0 新功能介绍 希望大家关注 希望自己坚持下来 vSphere 6.0 新功能介绍 系列 前言

C# 8.0中的新功能

微信公众号:Fintech极客 作者为软件开发工程师,就职于金融信息科技类公司,通过CFA一级,分享计算机和金融相结合领域的技术和知识. C# 8.0中的新功能 C# 8.0已经推出来好长一段时间了, 由于公司目前主要使用的还是6.0版本,加上之前个人事情较多,一直没有总结,今天主要查看和测试微软官方文档中的内容:https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8 只读成员(Readonly members) 在st

友盟新功能介绍:在线参数-备用

作为开发者您是否也碰到过这些挠头问题: 刚上线不久的应用就要修改说明文字?应用添加广告后,如何平衡用户流失和广告收入情况?如何对游戏中的道具进行合理定价? 为帮助开发者告别频繁地更新应用版本,更好的比较版本之间的用户行为及习惯,友盟针对Android开发者新推出在线参数功能.通过在线参数功能,开发者可以远程动态修改应用中的参数值,灵活调整运营策略.iOS版本近期推出. 获得更多信息和体验在线参数功能请访问www.umeng.com 什么是在线参数 在线参数是友盟推出的新功能,可以让您动态修改应用

Apache Kafka 0.11版本新功能简介

Apache Kafka近日推出0.11版本.这是一个里程碑式的大版本,特别是Kafka从这个版本开始支持"exactly-once"语义(下称EOS, exactly-once semantics).本文简要介绍一下0.11版本主要的功能变更,下面中的每一项都值得专门写篇文章好好聊聊. 一.修改unclean.leader.election.enabled默认值 Kafka社区终于下定决心要把这个参数的默认值改成false,即不再允许出现unclean leader选举的情况,在正确

C# 6.0 (C# vNext) 新功能之:Exception-Handling Improvements

在 C# 6.0 新功能裹的异常处理,有两个改进: 异步处理(async and await)可以在 catch block 裹使用了.在 C# 5.0 推出的 async and await,当时不可以用於 catch block,现在已经可以了. 支持异常过滤 exception filtering 异步处理的例子: try { WebRequest webRequest = WebRequest.Create("http://www.csdn.net"); WebResponse

vSphere 6.0 U1发布新功能说明

如您所知,VMworld2015上对于vSphere并没有什么太多提及,但是,Virtual SAN却是一个重要话题.而Virutual SAN内置于vSphere里面.所以,更新Virtual SAN 6.1的方式就是升级vSphere平台.所以,vSphere 6.0 U1快速发布了,这个版本的vSphere其实除了Virtual SAN 6.1外,没有什么太多新东西增加,具体清单如下:8 V0 ~) @& z Q3 x$ M/ n' H2 E) u7 o D% I4 {$ q3 \; L-