You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by gy...@apache.org on 2026/02/18 12:51:27 UTC
(flink-web) branch asf-site updated: rebuild website
This is an automated email from the ASF dual-hosted git repository.
gyfora pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/flink-web.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 490282a4d7 rebuild website
490282a4d7 is described below
commit 490282a4d758250b43fc4a5a2b75cb77eae41cee
Author: Gyula Fora <g_...@apple.com>
AuthorDate: Wed Feb 18 13:51:08 2026 +0100
rebuild website
---
.../08/26/apache-flink-0.6-available/index.html | 2 +-
.../09/26/apache-flink-0.6.1-available/index.html | 2 +-
content/2014/10/03/upcoming-events/index.html | 2 +-
.../11/04/apache-flink-0.7.0-available/index.html | 2 +-
.../11/18/hadoop-compatibility-in-flink/index.html | 2 +-
.../index.html | 2 +-
.../01/21/apache-flink-0.8.0-available/index.html | 2 +-
.../january-2015-in-the-flink-community/index.html | 2 +-
.../02/09/introducing-flink-streaming/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../march-2015-in-the-flink-community/index.html | 2 +-
.../index.html | 2 +-
.../05/11/juggling-with-bits-and-bytes/index.html | 2 +-
.../april-2015-in-the-flink-community/index.html | 2 +-
.../06/24/announcing-apache-flink-0.9.0/index.html | 2 +-
.../index.html | 2 +-
.../09/01/apache-flink-0.9.1-available/index.html | 2 +-
.../09/03/announcing-flink-forward-2015/index.html | 2 +-
.../index.html | 2 +-
.../16/announcing-apache-flink-0.10.0/index.html | 2 +-
.../2015/11/27/flink-0.10.1-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../2016/02/11/flink-0.10.2-released/index.html | 2 +-
.../03/08/announcing-apache-flink-1.0.0/index.html | 2 +-
content/2016/04/06/flink-1.0.1-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
content/2016/04/22/flink-1.0.2-released/index.html | 2 +-
content/2016/05/11/flink-1.0.3-released/index.html | 2 +-
.../index.html | 2 +-
.../08/04/announcing-apache-flink-1.1.0/index.html | 2 +-
content/2016/08/04/flink-1.1.1-released/index.html | 2 +-
.../index.html | 2 +-
.../09/05/apache-flink-1.1.2-released/index.html | 2 +-
.../10/12/apache-flink-1.1.3-released/index.html | 2 +-
.../apache-flink-in-2016-year-in-review/index.html | 2 +-
.../12/21/apache-flink-1.1.4-released/index.html | 2 +-
.../02/06/announcing-apache-flink-1.2.0/index.html | 2 +-
.../03/23/apache-flink-1.1.5-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../04/26/apache-flink-1.2.1-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../06/23/apache-flink-1.3.1-released/index.html | 2 +-
.../index.html | 2 +-
.../08/05/apache-flink-1.3.2-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../apache-flink-in-2017-year-in-review/index.html | 2 +-
.../index.html | 2 +-
.../02/15/apache-flink-1.4.1-released/index.html | 2 +-
.../index.html | 2 +-
.../03/08/apache-flink-1.4.2-released/index.html | 2 +-
.../03/15/apache-flink-1.3.3-released/index.html | 2 +-
.../index.html | 2 +-
.../07/12/apache-flink-1.5.1-released/index.html | 2 +-
.../07/31/apache-flink-1.5.2-released/index.html | 2 +-
.../index.html | 2 +-
.../08/21/apache-flink-1.5.3-released/index.html | 2 +-
.../09/20/apache-flink-1.5.4-released/index.html | 2 +-
.../09/20/apache-flink-1.6.1-released/index.html | 2 +-
.../10/29/apache-flink-1.5.5-released/index.html | 2 +-
.../10/29/apache-flink-1.6.2-released/index.html | 2 +-
.../index.html | 2 +-
.../12/21/apache-flink-1.7.1-released/index.html | 2 +-
.../12/22/apache-flink-1.6.3-released/index.html | 2 +-
.../12/26/apache-flink-1.5.6-released/index.html | 2 +-
.../index.html | 2 +-
.../02/15/apache-flink-1.7.2-released/index.html | 2 +-
.../index.html | 2 +-
.../02/25/apache-flink-1.6.4-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../03/when-flink-pulsar-come-together/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../07/02/apache-flink-1.8.1-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../flink-community-update-september19/index.html | 2 +-
.../09/11/apache-flink-1.8.2-released/index.html | 2 +-
.../index.html | 2 +-
.../10/18/apache-flink-1.9.1-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../12/11/apache-flink-1.8.3-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../01/30/apache-flink-1.9.2-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../30/flink-community-update-april20/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../04/24/apache-flink-1.9.3-released/index.html | 2 +-
.../index.html | 2 +-
.../05/06/flink-community-update-may20/index.html | 2 +-
.../05/12/apache-flink-1.10.1-released/index.html | 2 +-
.../index.html | 2 +-
.../06/10/flink-community-update-june20/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../07/21/apache-flink-1.11.1-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../07/29/flink-community-update-july20/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../08/20/the-state-of-flink-on-docker/index.html | 2 +-
.../08/25/apache-flink-1.10.2-released/index.html | 2 +-
.../index.html | 2 +-
.../04/flink-community-update-august20/index.html | 2 +-
.../09/17/apache-flink-1.11.2-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../12/18/apache-flink-1.11.3-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../01/19/apache-flink-1.12.1-released/index.html | 2 +-
.../01/29/apache-flink-1.10.3-released/index.html | 2 +-
.../index.html | 2 +-
.../03/03/apache-flink-1.12.2-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../04/29/apache-flink-1.12.3-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../05/21/apache-flink-1.12.4-released/index.html | 2 +-
.../05/28/apache-flink-1.13.1-released/index.html | 2 +-
.../index.html | 2 +-
.../08/06/apache-flink-1.12.5-released/index.html | 2 +-
.../08/06/apache-flink-1.13.2-released/index.html | 2 +-
.../08/09/apache-flink-1.11.4-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../10/19/apache-flink-1.13.3-released/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../01/20/pravega-flink-connector-101/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../02/22/scala-free-in-one-fifteen/index.html | 2 +-
.../index.html | 2 +-
.../the-generic-asynchronous-base-sink/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../08/regarding-akkas-licensing-change/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../preview-release-of-apache-flink-2.0/index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../index.html | 137 ++---
content/404.html | 2 +-
content/categories/index.html | 2 +-
.../documentation/flink-agents-master/index.html | 2 +-
.../documentation/flink-agents-stable/index.html | 2 +-
content/documentation/flink-cdc-master/index.html | 2 +-
content/documentation/flink-cdc-stable/index.html | 2 +-
.../flink-kubernetes-operator-master/index.html | 2 +-
.../flink-kubernetes-operator-stable/index.html | 2 +-
content/documentation/flink-lts/index.html | 2 +-
content/documentation/flink-master/index.html | 2 +-
content/documentation/flink-stable/index.html | 2 +-
.../flink-stateful-functions-master/index.html | 2 +-
.../flink-stateful-functions-stable/index.html | 2 +-
content/documentation/flinkml-master/index.html | 2 +-
content/documentation/flinkml-stable/index.html | 2 +-
content/documentation/index.html | 2 +-
content/downloads/index.html | 2 +-
...ab225f28e0bcaf0e73f6a7fe4edd3f6f1aeda453bfc.js} | 564 +++++++++++----------
...ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js} | 2 +-
content/en/sitemap.xml | 11 +-
content/flink-packages/index.html | 2 +-
content/getting-started/index.html | 2 +-
content/getting-started/training-course/index.html | 2 +-
.../getting-started/with-flink-agents/index.html | 2 +-
content/getting-started/with-flink-cdc/index.html | 2 +-
.../with-flink-kubernetes-operator/index.html | 2 +-
content/getting-started/with-flink-ml/index.html | 2 +-
.../with-flink-stateful-functions/index.html | 2 +-
content/getting-started/with-flink/index.html | 2 +-
.../code-style-and-quality-common/index.html | 30 +-
.../code-style-and-quality-components/index.html | 30 +-
.../code-style-and-quality-formatting/index.html | 30 +-
.../code-style-and-quality-java/index.html | 30 +-
.../code-style-and-quality-preamble/index.html | 30 +-
.../index.html | 2 +-
.../code-style-and-quality-scala/index.html | 30 +-
.../how-to-contribute/contribute-code/index.html | 2 +-
.../contribute-documentation/index.html | 2 +-
.../documentation-style-guide/index.html | 2 +-
content/how-to-contribute/getting-help/index.html | 2 +-
.../how-to-contribute/improve-website/index.html | 2 +-
content/how-to-contribute/index.html | 2 +-
content/how-to-contribute/overview/index.html | 2 +-
content/how-to-contribute/reviewing-prs/index.html | 2 +-
.../blue-green-diagram-1.png | Bin 0 -> 304824 bytes
.../blue-green-diagram-2.png | Bin 0 -> 218620 bytes
.../blue-green-modifications.png | Bin 0 -> 736944 bytes
content/index.html | 37 +-
content/index.xml | 9 +-
content/material/index.html | 2 +-
.../02/16/release-kubernetes-operator-1.14.0.html | 10 +
content/posts/index.html | 56 +-
content/posts/index.xml | 9 +-
content/posts/page/10/index.html | 64 ++-
content/posts/page/11/index.html | 60 ++-
content/posts/page/12/index.html | 57 ++-
content/posts/page/13/index.html | 57 ++-
content/posts/page/14/index.html | 56 +-
content/posts/page/15/index.html | 54 +-
content/posts/page/16/index.html | 57 ++-
content/posts/page/17/index.html | 59 ++-
content/posts/page/18/index.html | 62 +--
content/posts/page/19/index.html | 59 ++-
content/posts/page/2/index.html | 56 +-
content/posts/page/20/index.html | 54 +-
content/posts/page/21/index.html | 54 +-
content/posts/page/22/index.html | 54 +-
content/posts/page/23/index.html | 51 +-
content/posts/page/24/index.html | 48 +-
content/posts/page/25/index.html | 49 +-
content/posts/page/26/index.html | 48 +-
content/posts/page/27/index.html | 26 +-
content/posts/page/3/index.html | 61 ++-
content/posts/page/4/index.html | 64 +--
content/posts/page/5/index.html | 59 ++-
content/posts/page/6/index.html | 61 ++-
content/posts/page/7/index.html | 66 +--
content/posts/page/8/index.html | 63 ++-
content/posts/page/9/index.html | 64 +--
content/sitemap.xml | 2 +-
content/tags/index.html | 2 +-
content/what-is-flink-ml/index.html | 2 +-
content/what-is-flink-table-store/index.html | 2 +-
content/what-is-flink/community/index.html | 2 +-
.../what-is-flink/flink-applications/index.html | 2 +-
.../what-is-flink/flink-architecture/index.html | 2 +-
content/what-is-flink/flink-operations/index.html | 2 +-
content/what-is-flink/index.html | 2 +-
content/what-is-flink/powered-by/index.html | 2 +-
content/what-is-flink/roadmap/index.html | 2 +-
content/what-is-flink/security/index.html | 2 +-
content/what-is-flink/special-thanks/index.html | 2 +-
content/what-is-flink/use-cases/index.html | 2 +-
content/what-is-stateful-functions/index.html | 2 +-
.../index.html | 2 +-
.../code-style-and-quality-common/index.html | 28 +-
.../code-style-and-quality-components/index.html | 28 +-
.../code-style-and-quality-formatting/index.html | 28 +-
.../code-style-and-quality-java/index.html | 28 +-
.../code-style-and-quality-preamble/index.html | 28 +-
.../index.html | 28 +-
.../code-style-and-quality-scala/index.html | 28 +-
content/zh/index.html | 35 +-
368 files changed, 1770 insertions(+), 1571 deletions(-)
diff --git a/content/2014/08/26/apache-flink-0.6-available/index.html b/content/2014/08/26/apache-flink-0.6-available/index.html
index 19efac09ac..8b5e80f520 100644
--- a/content/2014/08/26/apache-flink-0.6-available/index.html
+++ b/content/2014/08/26/apache-flink-0.6-available/index.html
@@ -28,7 +28,7 @@ What is Flink? # Apache Flink is a general-purpose data processing engine for cl
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2014/09/26/apache-flink-0.6.1-available/index.html b/content/2014/09/26/apache-flink-0.6.1-available/index.html
index c802dc35d0..f3c507305d 100644
--- a/content/2014/09/26/apache-flink-0.6.1-available/index.html
+++ b/content/2014/09/26/apache-flink-0.6.1-available/index.html
@@ -30,7 +30,7 @@ Download the release today." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2014/10/03/upcoming-events/index.html b/content/2014/10/03/upcoming-events/index.html
index e57404f6b2..fccc5fc279 100644
--- a/content/2014/10/03/upcoming-events/index.html
+++ b/content/2014/10/03/upcoming-events/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2014/11/04/apache-flink-0.7.0-available/index.html b/content/2014/11/04/apache-flink-0.7.0-available/index.html
index a8f725b99d..f687aa941d 100644
--- a/content/2014/11/04/apache-flink-0.7.0-available/index.html
+++ b/content/2014/11/04/apache-flink-0.7.0-available/index.html
@@ -32,7 +32,7 @@ Overview of major new features # Flink Streaming: The gem of the 0." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2014/11/18/hadoop-compatibility-in-flink/index.html b/content/2014/11/18/hadoop-compatibility-in-flink/index.html
index 085b6edbe3..54e6295894 100644
--- a/content/2014/11/18/hadoop-compatibility-in-flink/index.html
+++ b/content/2014/11/18/hadoop-compatibility-in-flink/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/01/06/december-2014-in-the-flink-community/index.html b/content/2015/01/06/december-2014-in-the-flink-community/index.html
index 5f654bff3d..bb9f38d172 100644
--- a/content/2015/01/06/december-2014-in-the-flink-community/index.html
+++ b/content/2015/01/06/december-2014-in-the-flink-community/index.html
@@ -28,7 +28,7 @@ Flink graduation # The biggest news is that the Apache board approved Flink as a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/01/21/apache-flink-0.8.0-available/index.html b/content/2015/01/21/apache-flink-0.8.0-available/index.html
index 6e3996380a..71d88d5eed 100644
--- a/content/2015/01/21/apache-flink-0.8.0-available/index.html
+++ b/content/2015/01/21/apache-flink-0.8.0-available/index.html
@@ -32,7 +32,7 @@ Overview of major new features # Extended filesystem support: The former Distrib
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/02/04/january-2015-in-the-flink-community/index.html b/content/2015/02/04/january-2015-in-the-flink-community/index.html
index 7ea5b7e7fc..2fb4fd66d4 100644
--- a/content/2015/02/04/january-2015-in-the-flink-community/index.html
+++ b/content/2015/02/04/january-2015-in-the-flink-community/index.html
@@ -32,7 +32,7 @@ Articles in the press # The Apache Software Foundation announced Flink as a Top-
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/02/09/introducing-flink-streaming/index.html b/content/2015/02/09/introducing-flink-streaming/index.html
index 84792a1942..b86d27ac84 100644
--- a/content/2015/02/09/introducing-flink-streaming/index.html
+++ b/content/2015/02/09/introducing-flink-streaming/index.html
@@ -28,7 +28,7 @@ In this post, we go through an example that uses the Flink Streaming API to comp
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/03/02/february-2015-in-the-flink-community/index.html b/content/2015/03/02/february-2015-in-the-flink-community/index.html
index 005b71a6be..1941053863 100644
--- a/content/2015/03/02/february-2015-in-the-flink-community/index.html
+++ b/content/2015/03/02/february-2015-in-the-flink-community/index.html
@@ -30,7 +30,7 @@ New committer # Max Michels has been voted a committer by the Flink PMC." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/03/13/peeking-into-apache-flinks-engine-room/index.html b/content/2015/03/13/peeking-into-apache-flinks-engine-room/index.html
index db3f1c3c81..85a9fd544c 100644
--- a/content/2015/03/13/peeking-into-apache-flinks-engine-room/index.html
+++ b/content/2015/03/13/peeking-into-apache-flinks-engine-room/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/04/07/march-2015-in-the-flink-community/index.html b/content/2015/04/07/march-2015-in-the-flink-community/index.html
index b8139fb5d0..d5038d1372 100644
--- a/content/2015/04/07/march-2015-in-the-flink-community/index.html
+++ b/content/2015/04/07/march-2015-in-the-flink-community/index.html
@@ -30,7 +30,7 @@ Learn about the internals of Flink # The community has started an effort to bett
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/04/13/announcing-flink-0.9.0-milestone1-preview-release/index.html b/content/2015/04/13/announcing-flink-0.9.0-milestone1-preview-release/index.html
index 27defb5110..209c78dba9 100644
--- a/content/2015/04/13/announcing-flink-0.9.0-milestone1-preview-release/index.html
+++ b/content/2015/04/13/announcing-flink-0.9.0-milestone1-preview-release/index.html
@@ -28,7 +28,7 @@ You can download the release here and check out the latest documentation here."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/05/11/juggling-with-bits-and-bytes/index.html b/content/2015/05/11/juggling-with-bits-and-bytes/index.html
index 25b74a6a1d..185e4c1963 100644
--- a/content/2015/05/11/juggling-with-bits-and-bytes/index.html
+++ b/content/2015/05/11/juggling-with-bits-and-bytes/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/05/14/april-2015-in-the-flink-community/index.html b/content/2015/05/14/april-2015-in-the-flink-community/index.html
index a00ff06109..2277518347 100644
--- a/content/2015/05/14/april-2015-in-the-flink-community/index.html
+++ b/content/2015/05/14/april-2015-in-the-flink-community/index.html
@@ -30,7 +30,7 @@ Flink 0." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/06/24/announcing-apache-flink-0.9.0/index.html b/content/2015/06/24/announcing-apache-flink-0.9.0/index.html
index d408329ccc..df6f885adc 100644
--- a/content/2015/06/24/announcing-apache-flink-0.9.0/index.html
+++ b/content/2015/06/24/announcing-apache-flink-0.9.0/index.html
@@ -28,7 +28,7 @@ Download the release and check out the documentation. Feedback through the Flink
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/08/24/introducing-gelly-graph-processing-with-apache-flink/index.html b/content/2015/08/24/introducing-gelly-graph-processing-with-apache-flink/index.html
index aa600ab472..f8892f51e9 100644
--- a/content/2015/08/24/introducing-gelly-graph-processing-with-apache-flink/index.html
+++ b/content/2015/08/24/introducing-gelly-graph-processing-with-apache-flink/index.html
@@ -28,7 +28,7 @@ Gelly allows Flink users to perform end-to-end data analysis in a single system.
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/09/01/apache-flink-0.9.1-available/index.html b/content/2015/09/01/apache-flink-0.9.1-available/index.html
index 0872d486a2..ad05616960 100644
--- a/content/2015/09/01/apache-flink-0.9.1-available/index.html
+++ b/content/2015/09/01/apache-flink-0.9.1-available/index.html
@@ -32,7 +32,7 @@ The following issues were fixed for this release:" />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/09/03/announcing-flink-forward-2015/index.html b/content/2015/09/03/announcing-flink-forward-2015/index.html
index 2d48602e20..b97a535a14 100644
--- a/content/2015/09/03/announcing-flink-forward-2015/index.html
+++ b/content/2015/09/03/announcing-flink-forward-2015/index.html
@@ -28,7 +28,7 @@ The conference program has been announced by the organizers and a program commit
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/09/16/off-heap-memory-in-apache-flink-and-the-curious-jit-compiler/index.html b/content/2015/09/16/off-heap-memory-in-apache-flink-and-the-curious-jit-compiler/index.html
index ef332fb9e1..8b5d23d5c5 100644
--- a/content/2015/09/16/off-heap-memory-in-apache-flink-and-the-curious-jit-compiler/index.html
+++ b/content/2015/09/16/off-heap-memory-in-apache-flink-and-the-curious-jit-compiler/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/11/16/announcing-apache-flink-0.10.0/index.html b/content/2015/11/16/announcing-apache-flink-0.10.0/index.html
index 10e2a8c6fa..a62700121e 100644
--- a/content/2015/11/16/announcing-apache-flink-0.10.0/index.html
+++ b/content/2015/11/16/announcing-apache-flink-0.10.0/index.html
@@ -28,7 +28,7 @@ For Flink 0.10.0, the focus of the community was to graduate the DataStream API
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/11/27/flink-0.10.1-released/index.html b/content/2015/11/27/flink-0.10.1-released/index.html
index e9914749bb..0e4f309afc 100644
--- a/content/2015/11/27/flink-0.10.1-released/index.html
+++ b/content/2015/11/27/flink-0.10.1-released/index.html
@@ -30,7 +30,7 @@ Issues fixed # [FLINK-2879] - Links in documentation are broken [FLINK-2938] - S
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/12/04/introducing-stream-windows-in-apache-flink/index.html b/content/2015/12/04/introducing-stream-windows-in-apache-flink/index.html
index 1d4d680720..a4203a09e6 100644
--- a/content/2015/12/04/introducing-stream-windows-in-apache-flink/index.html
+++ b/content/2015/12/04/introducing-stream-windows-in-apache-flink/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/index.html b/content/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/index.html
index d0de582d89..d596a488c1 100644
--- a/content/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/index.html
+++ b/content/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/index.html b/content/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/index.html
index a0dae85093..2bd4e372e2 100644
--- a/content/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/index.html
+++ b/content/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/index.html
@@ -28,7 +28,7 @@ Overall, we have seen Flink grow in terms of functionality from an engine to one
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/02/11/flink-0.10.2-released/index.html b/content/2016/02/11/flink-0.10.2-released/index.html
index f9b1d1bebe..a2b5905d1b 100644
--- a/content/2016/02/11/flink-0.10.2-released/index.html
+++ b/content/2016/02/11/flink-0.10.2-released/index.html
@@ -30,7 +30,7 @@ Issues fixed # FLINK-3242: Adjust StateBackendITCase for 0.10 signatures of stat
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/03/08/announcing-apache-flink-1.0.0/index.html b/content/2016/03/08/announcing-apache-flink-1.0.0/index.html
index 48d6bd616a..6f818e4873 100644
--- a/content/2016/03/08/announcing-apache-flink-1.0.0/index.html
+++ b/content/2016/03/08/announcing-apache-flink-1.0.0/index.html
@@ -28,7 +28,7 @@ Flink version 1.0.0 marks the beginning of the 1.X.X series of releases, which w
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/04/06/flink-1.0.1-released/index.html b/content/2016/04/06/flink-1.0.1-released/index.html
index e38f322bdb..a1eff9ce95 100644
--- a/content/2016/04/06/flink-1.0.1-released/index.html
+++ b/content/2016/04/06/flink-1.0.1-released/index.html
@@ -30,7 +30,7 @@ Fixed Issues # Bug [FLINK-3179] - Combiner is not injected if Reduce or GroupRed
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/04/06/introducing-complex-event-processing-cep-with-apache-flink/index.html b/content/2016/04/06/introducing-complex-event-processing-cep-with-apache-flink/index.html
index 22ea459d05..7b056badc6 100644
--- a/content/2016/04/06/introducing-complex-event-processing-cep-with-apache-flink/index.html
+++ b/content/2016/04/06/introducing-complex-event-processing-cep-with-apache-flink/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/04/14/flink-forward-2016-call-for-submissions-is-now-open/index.html b/content/2016/04/14/flink-forward-2016-call-for-submissions-is-now-open/index.html
index 564fb5c1e0..87e586dbbf 100644
--- a/content/2016/04/14/flink-forward-2016-call-for-submissions-is-now-open/index.html
+++ b/content/2016/04/14/flink-forward-2016-call-for-submissions-is-now-open/index.html
@@ -28,7 +28,7 @@ The conference welcomes submissions on everything Flink-related, including exper
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/04/22/flink-1.0.2-released/index.html b/content/2016/04/22/flink-1.0.2-released/index.html
index b519c7153f..637db72e88 100644
--- a/content/2016/04/22/flink-1.0.2-released/index.html
+++ b/content/2016/04/22/flink-1.0.2-released/index.html
@@ -30,7 +30,7 @@ Fixed Issues # Bug # [FLINK-3657] [dataSet] Change access of DataSetUtils.countE
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/05/11/flink-1.0.3-released/index.html b/content/2016/05/11/flink-1.0.3-released/index.html
index 9e05f1cdcf..60446c7878 100644
--- a/content/2016/05/11/flink-1.0.3-released/index.html
+++ b/content/2016/05/11/flink-1.0.3-released/index.html
@@ -30,7 +30,7 @@ Fixed Issues # Bug # [FLINK-3790] [streaming] Use proper hadoop config in rollin
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/05/24/stream-processing-for-everyone-with-sql-and-apache-flink/index.html b/content/2016/05/24/stream-processing-for-everyone-with-sql-and-apache-flink/index.html
index 9063e461d8..1a8861a5f8 100644
--- a/content/2016/05/24/stream-processing-for-everyone-with-sql-and-apache-flink/index.html
+++ b/content/2016/05/24/stream-processing-for-everyone-with-sql-and-apache-flink/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/08/04/announcing-apache-flink-1.1.0/index.html b/content/2016/08/04/announcing-apache-flink-1.1.0/index.html
index df248ef28a..cf0499c300 100644
--- a/content/2016/08/04/announcing-apache-flink-1.1.0/index.html
+++ b/content/2016/08/04/announcing-apache-flink-1.1.0/index.html
@@ -28,7 +28,7 @@ This release is the first major release in the 1.X.X series of releases, which m
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/08/04/flink-1.1.1-released/index.html b/content/2016/08/04/flink-1.1.1-released/index.html
index bbafe9d0a5..92893337fe 100644
--- a/content/2016/08/04/flink-1.1.1-released/index.html
+++ b/content/2016/08/04/flink-1.1.1-released/index.html
@@ -30,7 +30,7 @@ This was fixed with this release and we highly recommend all users to use this v
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/08/24/flink-forward-2016-announcing-schedule-keynotes-and-panel-discussion/index.html b/content/2016/08/24/flink-forward-2016-announcing-schedule-keynotes-and-panel-discussion/index.html
index 5a2c3b92a0..fc94151bfa 100644
--- a/content/2016/08/24/flink-forward-2016-announcing-schedule-keynotes-and-panel-discussion/index.html
+++ b/content/2016/08/24/flink-forward-2016-announcing-schedule-keynotes-and-panel-discussion/index.html
@@ -28,7 +28,7 @@ Ted Dunning has been announced as a keynote speaker at the event. Ted is the VP
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/09/05/apache-flink-1.1.2-released/index.html b/content/2016/09/05/apache-flink-1.1.2-released/index.html
index bfe0d28511..879c59f7f2 100644
--- a/content/2016/09/05/apache-flink-1.1.2-released/index.html
+++ b/content/2016/09/05/apache-flink-1.1.2-released/index.html
@@ -32,7 +32,7 @@ Release Notes - Flink - Version 1.1.2 [FLINK-4236] - Flink Dashboard stops showi
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/10/12/apache-flink-1.1.3-released/index.html b/content/2016/10/12/apache-flink-1.1.3-released/index.html
index 921b67f305..a8ecdef6af 100644
--- a/content/2016/10/12/apache-flink-1.1.3-released/index.html
+++ b/content/2016/10/12/apache-flink-1.1.3-released/index.html
@@ -32,7 +32,7 @@ Note for RocksDB Backend Users # It is highly recommended to use the “full
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/12/19/apache-flink-in-2016-year-in-review/index.html b/content/2016/12/19/apache-flink-in-2016-year-in-review/index.html
index a055e70e01..1e6dc8d14e 100644
--- a/content/2016/12/19/apache-flink-in-2016-year-in-review/index.html
+++ b/content/2016/12/19/apache-flink-in-2016-year-in-review/index.html
@@ -28,7 +28,7 @@ In this post, we’ll look back on the project’s progress over the course of 2
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2016/12/21/apache-flink-1.1.4-released/index.html b/content/2016/12/21/apache-flink-1.1.4-released/index.html
index 67a99c9613..b54c7a3b27 100644
--- a/content/2016/12/21/apache-flink-1.1.4-released/index.html
+++ b/content/2016/12/21/apache-flink-1.1.4-released/index.html
@@ -32,7 +32,7 @@ Note for RocksDB Backend Users # We updated Flink’s RocksDB dependency ver
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/02/06/announcing-apache-flink-1.2.0/index.html b/content/2017/02/06/announcing-apache-flink-1.2.0/index.html
index 1acee97ced..94906094c4 100644
--- a/content/2017/02/06/announcing-apache-flink-1.2.0/index.html
+++ b/content/2017/02/06/announcing-apache-flink-1.2.0/index.html
@@ -30,7 +30,7 @@ We encourage everyone to download the release and check out the documentation."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/03/23/apache-flink-1.1.5-released/index.html b/content/2017/03/23/apache-flink-1.1.5-released/index.html
index 6f2ab823f2..099b8ecb2b 100644
--- a/content/2017/03/23/apache-flink-1.1.5-released/index.html
+++ b/content/2017/03/23/apache-flink-1.1.5-released/index.html
@@ -30,7 +30,7 @@ This release includes critical fixes for HA recovery robustness, fault tolerance
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/03/29/from-streams-to-tables-and-back-again-an-update-on-flinks-table-sql-api/index.html b/content/2017/03/29/from-streams-to-tables-and-back-again-an-update-on-flinks-table-sql-api/index.html
index 80bb29a242..6f64818552 100644
--- a/content/2017/03/29/from-streams-to-tables-and-back-again-an-update-on-flinks-table-sql-api/index.html
+++ b/content/2017/03/29/from-streams-to-tables-and-back-again-an-update-on-flinks-table-sql-api/index.html
@@ -28,7 +28,7 @@ Flink’s DataStream abstraction is a powerful API which lets you flexibly d
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/03/30/continuous-queries-on-dynamic-tables/index.html b/content/2017/03/30/continuous-queries-on-dynamic-tables/index.html
index ba33f44e0e..adeb9e0458 100644
--- a/content/2017/03/30/continuous-queries-on-dynamic-tables/index.html
+++ b/content/2017/03/30/continuous-queries-on-dynamic-tables/index.html
@@ -28,7 +28,7 @@ Apache Flink is very well suited to power streaming analytics applications becau
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/04/26/apache-flink-1.2.1-released/index.html b/content/2017/04/26/apache-flink-1.2.1-released/index.html
index f18981a17f..35b262d406 100644
--- a/content/2017/04/26/apache-flink-1.2.1-released/index.html
+++ b/content/2017/04/26/apache-flink-1.2.1-released/index.html
@@ -34,7 +34,7 @@ FLINK-6353 Restoring using CheckpointedRestoring does not work from 1.2 to 1.2 F
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/05/16/introducing-docker-images-for-apache-flink/index.html b/content/2017/05/16/introducing-docker-images-for-apache-flink/index.html
index 380165a2d4..560ff40cf8 100644
--- a/content/2017/05/16/introducing-docker-images-for-apache-flink/index.html
+++ b/content/2017/05/16/introducing-docker-images-for-apache-flink/index.html
@@ -28,7 +28,7 @@ A community-maintained way to run Apache Flink on Docker and other container run
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/06/01/apache-flink-1.3.0-release-announcement/index.html b/content/2017/06/01/apache-flink-1.3.0-release-announcement/index.html
index d06b185a99..808c516a00 100644
--- a/content/2017/06/01/apache-flink-1.3.0-release-announcement/index.html
+++ b/content/2017/06/01/apache-flink-1.3.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Users can expect Flink releases now in a 4 month cycle." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/06/23/apache-flink-1.3.1-released/index.html b/content/2017/06/23/apache-flink-1.3.1-released/index.html
index 30d87d4a1c..e50c8c0883 100644
--- a/content/2017/06/23/apache-flink-1.3.1-released/index.html
+++ b/content/2017/06/23/apache-flink-1.3.1-released/index.html
@@ -32,7 +32,7 @@ We highly recommend all users to upgrade to Flink 1.3.1.
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/07/04/a-deep-dive-into-rescalable-state-in-apache-flink/index.html b/content/2017/07/04/a-deep-dive-into-rescalable-state-in-apache-flink/index.html
index b5f6d474b8..3b90729071 100644
--- a/content/2017/07/04/a-deep-dive-into-rescalable-state-in-apache-flink/index.html
+++ b/content/2017/07/04/a-deep-dive-into-rescalable-state-in-apache-flink/index.html
@@ -28,7 +28,7 @@ In contrast, operators in stateless stream processing only consider their curren
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/08/05/apache-flink-1.3.2-released/index.html b/content/2017/08/05/apache-flink-1.3.2-released/index.html
index 44fbc31079..bc8b91d81d 100644
--- a/content/2017/08/05/apache-flink-1.3.2-released/index.html
+++ b/content/2017/08/05/apache-flink-1.3.2-released/index.html
@@ -32,7 +32,7 @@ Important Notice: A user reported a bug in the FlinkKafkaConsumer (FLINK-7143) t
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/11/21/looking-ahead-to-apache-flink-1.4.0-and-1.5.0/index.html b/content/2017/11/21/looking-ahead-to-apache-flink-1.4.0-and-1.5.0/index.html
index 740ad75710..5019661e81 100644
--- a/content/2017/11/21/looking-ahead-to-apache-flink-1.4.0-and-1.5.0/index.html
+++ b/content/2017/11/21/looking-ahead-to-apache-flink-1.4.0-and-1.5.0/index.html
@@ -28,7 +28,7 @@ Both releases include ambitious features that we believe will move Flink to an e
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/12/12/apache-flink-1.4.0-release-announcement/index.html b/content/2017/12/12/apache-flink-1.4.0-release-announcement/index.html
index 1517e07ccb..0ca67c3647 100644
--- a/content/2017/12/12/apache-flink-1.4.0-release-announcement/index.html
+++ b/content/2017/12/12/apache-flink-1.4.0-release-announcement/index.html
@@ -30,7 +30,7 @@ We encourage everyone to download the release and check out the documentation."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2017/12/21/apache-flink-in-2017-year-in-review/index.html b/content/2017/12/21/apache-flink-in-2017-year-in-review/index.html
index 48c1d70448..fa98dffdfa 100644
--- a/content/2017/12/21/apache-flink-in-2017-year-in-review/index.html
+++ b/content/2017/12/21/apache-flink-in-2017-year-in-review/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/01/30/managing-large-state-in-apache-flink-an-intro-to-incremental-checkpointing/index.html b/content/2018/01/30/managing-large-state-in-apache-flink-an-intro-to-incremental-checkpointing/index.html
index e641669294..675fe9fe52 100644
--- a/content/2018/01/30/managing-large-state-in-apache-flink-an-intro-to-incremental-checkpointing/index.html
+++ b/content/2018/01/30/managing-large-state-in-apache-flink-an-intro-to-incremental-checkpointing/index.html
@@ -28,7 +28,7 @@ State is a fundamental, enabling concept in stream processing required for a maj
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/02/15/apache-flink-1.4.1-released/index.html b/content/2018/02/15/apache-flink-1.4.1-released/index.html
index afd1813903..b3f89ffaeb 100644
--- a/content/2018/02/15/apache-flink-1.4.1-released/index.html
+++ b/content/2018/02/15/apache-flink-1.4.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/02/28/an-overview-of-end-to-end-exactly-once-processing-in-apache-flink-with-apache-kafka-too/index.html b/content/2018/02/28/an-overview-of-end-to-end-exactly-once-processing-in-apache-flink-with-apache-kafka-too/index.html
index d6f263d7f5..2f0af4da56 100644
--- a/content/2018/02/28/an-overview-of-end-to-end-exactly-once-processing-in-apache-flink-with-apache-kafka-too/index.html
+++ b/content/2018/02/28/an-overview-of-end-to-end-exactly-once-processing-in-apache-flink-with-apache-kafka-too/index.html
@@ -28,7 +28,7 @@ Apache Flink 1.4.0, released in December 2017, introduced a significant mileston
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/03/08/apache-flink-1.4.2-released/index.html b/content/2018/03/08/apache-flink-1.4.2-released/index.html
index 010c61a124..753e7729e2 100644
--- a/content/2018/03/08/apache-flink-1.4.2-released/index.html
+++ b/content/2018/03/08/apache-flink-1.4.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/03/15/apache-flink-1.3.3-released/index.html b/content/2018/03/15/apache-flink-1.3.3-released/index.html
index d155440327..286d1f0c9b 100644
--- a/content/2018/03/15/apache-flink-1.3.3-released/index.html
+++ b/content/2018/03/15/apache-flink-1.3.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/05/18/apache-flink-1.5.0-release-announcement/index.html b/content/2018/05/18/apache-flink-1.5.0-release-announcement/index.html
index 11d0aa7514..4c5ef1d8a0 100644
--- a/content/2018/05/18/apache-flink-1.5.0-release-announcement/index.html
+++ b/content/2018/05/18/apache-flink-1.5.0-release-announcement/index.html
@@ -30,7 +30,7 @@ We encourage everyone to download the release and check out the documentation."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/07/12/apache-flink-1.5.1-released/index.html b/content/2018/07/12/apache-flink-1.5.1-released/index.html
index 4782be2a89..7d4e66b1d2 100644
--- a/content/2018/07/12/apache-flink-1.5.1-released/index.html
+++ b/content/2018/07/12/apache-flink-1.5.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/07/31/apache-flink-1.5.2-released/index.html b/content/2018/07/31/apache-flink-1.5.2-released/index.html
index 27181f8bfd..cdbdf162cf 100644
--- a/content/2018/07/31/apache-flink-1.5.2-released/index.html
+++ b/content/2018/07/31/apache-flink-1.5.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/08/09/apache-flink-1.6.0-release-announcement/index.html b/content/2018/08/09/apache-flink-1.6.0-release-announcement/index.html
index 5ab7f5bd52..759e74fc92 100644
--- a/content/2018/08/09/apache-flink-1.6.0-release-announcement/index.html
+++ b/content/2018/08/09/apache-flink-1.6.0-release-announcement/index.html
@@ -30,7 +30,7 @@ We encourage everyone to download the release and check out the documentation."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/08/21/apache-flink-1.5.3-released/index.html b/content/2018/08/21/apache-flink-1.5.3-released/index.html
index 3f85499e11..2f67f35f25 100644
--- a/content/2018/08/21/apache-flink-1.5.3-released/index.html
+++ b/content/2018/08/21/apache-flink-1.5.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/09/20/apache-flink-1.5.4-released/index.html b/content/2018/09/20/apache-flink-1.5.4-released/index.html
index e2b6ee2ae5..d7b1c2924c 100644
--- a/content/2018/09/20/apache-flink-1.5.4-released/index.html
+++ b/content/2018/09/20/apache-flink-1.5.4-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/09/20/apache-flink-1.6.1-released/index.html b/content/2018/09/20/apache-flink-1.6.1-released/index.html
index ef7ef0061f..808fc2a4d3 100644
--- a/content/2018/09/20/apache-flink-1.6.1-released/index.html
+++ b/content/2018/09/20/apache-flink-1.6.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/10/29/apache-flink-1.5.5-released/index.html b/content/2018/10/29/apache-flink-1.5.5-released/index.html
index bc4eb89985..0021feeb7b 100644
--- a/content/2018/10/29/apache-flink-1.5.5-released/index.html
+++ b/content/2018/10/29/apache-flink-1.5.5-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/10/29/apache-flink-1.6.2-released/index.html b/content/2018/10/29/apache-flink-1.6.2-released/index.html
index 259ab1dc24..f28f81b892 100644
--- a/content/2018/10/29/apache-flink-1.6.2-released/index.html
+++ b/content/2018/10/29/apache-flink-1.6.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/11/30/apache-flink-1.7.0-release-announcement/index.html b/content/2018/11/30/apache-flink-1.7.0-release-announcement/index.html
index 5b4f65cf23..7a8a02c542 100644
--- a/content/2018/11/30/apache-flink-1.7.0-release-announcement/index.html
+++ b/content/2018/11/30/apache-flink-1.7.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Flink 1.7.0 is API-compatible with previous 1.x.y releases for APIs annotated wi
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/12/21/apache-flink-1.7.1-released/index.html b/content/2018/12/21/apache-flink-1.7.1-released/index.html
index 7c86d6c73f..a3e2957b49 100644
--- a/content/2018/12/21/apache-flink-1.7.1-released/index.html
+++ b/content/2018/12/21/apache-flink-1.7.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/12/22/apache-flink-1.6.3-released/index.html b/content/2018/12/22/apache-flink-1.6.3-released/index.html
index 34daf8bff9..0d0afa5246 100644
--- a/content/2018/12/22/apache-flink-1.6.3-released/index.html
+++ b/content/2018/12/22/apache-flink-1.6.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2018/12/26/apache-flink-1.5.6-released/index.html b/content/2018/12/26/apache-flink-1.5.6-released/index.html
index 95042b6224..ca45402d0a 100644
--- a/content/2018/12/26/apache-flink-1.5.6-released/index.html
+++ b/content/2018/12/26/apache-flink-1.5.6-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/02/13/batch-as-a-special-case-of-streaming-and-alibabas-contribution-of-blink/index.html b/content/2019/02/13/batch-as-a-special-case-of-streaming-and-alibabas-contribution-of-blink/index.html
index dba0e7dc81..c13519961b 100644
--- a/content/2019/02/13/batch-as-a-special-case-of-streaming-and-alibabas-contribution-of-blink/index.html
+++ b/content/2019/02/13/batch-as-a-special-case-of-streaming-and-alibabas-contribution-of-blink/index.html
@@ -28,7 +28,7 @@ A Unified Approach to Batch and Streaming # Since its early days, Apache Flink h
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/02/15/apache-flink-1.7.2-released/index.html b/content/2019/02/15/apache-flink-1.7.2-released/index.html
index b78ea32ac4..fb5e005095 100644
--- a/content/2019/02/15/apache-flink-1.7.2-released/index.html
+++ b/content/2019/02/15/apache-flink-1.7.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/02/21/monitoring-apache-flink-applications-101/index.html b/content/2019/02/21/monitoring-apache-flink-applications-101/index.html
index 6118934613..0dea173c7d 100644
--- a/content/2019/02/21/monitoring-apache-flink-applications-101/index.html
+++ b/content/2019/02/21/monitoring-apache-flink-applications-101/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/02/25/apache-flink-1.6.4-released/index.html b/content/2019/02/25/apache-flink-1.6.4-released/index.html
index 7506de8a1f..280d6a593e 100644
--- a/content/2019/02/25/apache-flink-1.6.4-released/index.html
+++ b/content/2019/02/25/apache-flink-1.6.4-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/index.html b/content/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/index.html
index f7ec230b04..80bd19148b 100644
--- a/content/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/index.html
+++ b/content/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/03/11/flink-and-prometheus-cloud-native-monitoring-of-streaming-applications/index.html b/content/2019/03/11/flink-and-prometheus-cloud-native-monitoring-of-streaming-applications/index.html
index c323a5a63c..9d24d0f328 100644
--- a/content/2019/03/11/flink-and-prometheus-cloud-native-monitoring-of-streaming-applications/index.html
+++ b/content/2019/03/11/flink-and-prometheus-cloud-native-monitoring-of-streaming-applications/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/04/09/apache-flink-1.8.0-release-announcement/index.html b/content/2019/04/09/apache-flink-1.8.0-release-announcement/index.html
index 4732e7d243..6107b90fcf 100644
--- a/content/2019/04/09/apache-flink-1.8.0-release-announcement/index.html
+++ b/content/2019/04/09/apache-flink-1.8.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Flink 1.8.0 is API-compatible with previous 1.x.y releases for APIs annotated wi
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/04/17/apache-flinks-application-to-season-of-docs/index.html b/content/2019/04/17/apache-flinks-application-to-season-of-docs/index.html
index 250d69c91a..8c90d7365a 100644
--- a/content/2019/04/17/apache-flinks-application-to-season-of-docs/index.html
+++ b/content/2019/04/17/apache-flinks-application-to-season-of-docs/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/05/03/when-flink-pulsar-come-together/index.html b/content/2019/05/03/when-flink-pulsar-come-together/index.html
index 40ffd8804a..40ab7665da 100644
--- a/content/2019/05/03/when-flink-pulsar-come-together/index.html
+++ b/content/2019/05/03/when-flink-pulsar-come-together/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/05/14/flux-capacitor-huh-temporal-tables-and-joins-in-streaming-sql/index.html b/content/2019/05/14/flux-capacitor-huh-temporal-tables-and-joins-in-streaming-sql/index.html
index c542d77a35..617c62e38d 100644
--- a/content/2019/05/14/flux-capacitor-huh-temporal-tables-and-joins-in-streaming-sql/index.html
+++ b/content/2019/05/14/flux-capacitor-huh-temporal-tables-and-joins-in-streaming-sql/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/05/17/state-ttl-in-flink-1.8.0-how-to-automatically-cleanup-application-state-in-apache-flink/index.html b/content/2019/05/17/state-ttl-in-flink-1.8.0-how-to-automatically-cleanup-application-state-in-apache-flink/index.html
index 9d88068ad1..8f9972a9ea 100644
--- a/content/2019/05/17/state-ttl-in-flink-1.8.0-how-to-automatically-cleanup-application-state-in-apache-flink/index.html
+++ b/content/2019/05/17/state-ttl-in-flink-1.8.0-how-to-automatically-cleanup-application-state-in-apache-flink/index.html
@@ -28,7 +28,7 @@ In this post, we motivate the State TTL feature and discuss its use cases." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/06/05/a-deep-dive-into-flinks-network-stack/index.html b/content/2019/06/05/a-deep-dive-into-flinks-network-stack/index.html
index 777d3001a5..577a19872a 100644
--- a/content/2019/06/05/a-deep-dive-into-flinks-network-stack/index.html
+++ b/content/2019/06/05/a-deep-dive-into-flinks-network-stack/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/06/26/a-practical-guide-to-broadcast-state-in-apache-flink/index.html b/content/2019/06/26/a-practical-guide-to-broadcast-state-in-apache-flink/index.html
index 7acc6f19a8..bd8fdbbfcb 100644
--- a/content/2019/06/26/a-practical-guide-to-broadcast-state-in-apache-flink/index.html
+++ b/content/2019/06/26/a-practical-guide-to-broadcast-state-in-apache-flink/index.html
@@ -28,7 +28,7 @@ What is Broadcast State? # The Broadcast State can be used to combine and jointl
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/07/02/apache-flink-1.8.1-released/index.html b/content/2019/07/02/apache-flink-1.8.1-released/index.html
index 13ad03527b..17712bca66 100644
--- a/content/2019/07/02/apache-flink-1.8.1-released/index.html
+++ b/content/2019/07/02/apache-flink-1.8.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/index.html b/content/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/index.html
index 45ec80e067..47359ff394 100644
--- a/content/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/index.html
+++ b/content/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/08/22/apache-flink-1.9.0-release-announcement/index.html b/content/2019/08/22/apache-flink-1.9.0-release-announcement/index.html
index c575ccf810..465b0700e8 100644
--- a/content/2019/08/22/apache-flink-1.9.0-release-announcement/index.html
+++ b/content/2019/08/22/apache-flink-1.9.0-release-announcement/index.html
@@ -28,7 +28,7 @@ The Apache Flink project’s goal is to develop a stream processing system t
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/09/05/flink-community-update-september19/index.html b/content/2019/09/05/flink-community-update-september19/index.html
index 7f4f32d416..3054e425d0 100644
--- a/content/2019/09/05/flink-community-update-september19/index.html
+++ b/content/2019/09/05/flink-community-update-september19/index.html
@@ -28,7 +28,7 @@ The first post in the series takes you on an little detour across the year, to f
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/09/11/apache-flink-1.8.2-released/index.html b/content/2019/09/11/apache-flink-1.8.2-released/index.html
index 565ad8ad21..5d2e354582 100644
--- a/content/2019/09/11/apache-flink-1.8.2-released/index.html
+++ b/content/2019/09/11/apache-flink-1.8.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/09/13/the-state-processor-api-how-to-read-write-and-modify-the-state-of-flink-applications/index.html b/content/2019/09/13/the-state-processor-api-how-to-read-write-and-modify-the-state-of-flink-applications/index.html
index 8bf1c25021..67103bb982 100644
--- a/content/2019/09/13/the-state-processor-api-how-to-read-write-and-modify-the-state-of-flink-applications/index.html
+++ b/content/2019/09/13/the-state-processor-api-how-to-read-write-and-modify-the-state-of-flink-applications/index.html
@@ -28,7 +28,7 @@ In this post, we explain why this feature is a big step for Flink, what you can
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/10/18/apache-flink-1.9.1-released/index.html b/content/2019/10/18/apache-flink-1.9.1-released/index.html
index 63bff2b538..bade477449 100644
--- a/content/2019/10/18/apache-flink-1.9.1-released/index.html
+++ b/content/2019/10/18/apache-flink-1.9.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/11/06/running-apache-flink-on-kubernetes-with-kudo/index.html b/content/2019/11/06/running-apache-flink-on-kubernetes-with-kudo/index.html
index 01fe8d33e9..ed3272b073 100644
--- a/content/2019/11/06/running-apache-flink-on-kubernetes-with-kudo/index.html
+++ b/content/2019/11/06/running-apache-flink-on-kubernetes-with-kudo/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/11/25/how-to-query-pulsar-streams-using-apache-flink/index.html b/content/2019/11/25/how-to-query-pulsar-streams-using-apache-flink/index.html
index f615f77ded..31cac731d9 100644
--- a/content/2019/11/25/how-to-query-pulsar-streams-using-apache-flink/index.html
+++ b/content/2019/11/25/how-to-query-pulsar-streams-using-apache-flink/index.html
@@ -28,7 +28,7 @@ A short intro to Apache Pulsar # Apache Pulsar is a flexible pub/sub messaging s
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2019/12/11/apache-flink-1.8.3-released/index.html b/content/2019/12/11/apache-flink-1.8.3-released/index.html
index 40e1c34bfc..f871699537 100644
--- a/content/2019/12/11/apache-flink-1.8.3-released/index.html
+++ b/content/2019/12/11/apache-flink-1.8.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/index.html b/content/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/index.html
index 97a83a4ea7..a244f9dda7 100644
--- a/content/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/index.html
+++ b/content/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/index.html
@@ -30,7 +30,7 @@ Dynamic updates of application logic allow Flink jobs to change at runtime, with
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink/index.html b/content/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink/index.html
index 49f8d503cc..4441ced5b6 100644
--- a/content/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink/index.html
+++ b/content/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink/index.html
@@ -28,7 +28,7 @@ In order to provide a state-of-the-art experience to Flink developers, the Apach
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/01/30/apache-flink-1.9.2-released/index.html b/content/2020/01/30/apache-flink-1.9.2-released/index.html
index dd17bb592f..f091ba9b18 100644
--- a/content/2020/01/30/apache-flink-1.9.2-released/index.html
+++ b/content/2020/01/30/apache-flink-1.9.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/02/03/a-guide-for-unit-testing-in-apache-flink/index.html b/content/2020/02/03/a-guide-for-unit-testing-in-apache-flink/index.html
index f0f8d4d476..8c13701139 100644
--- a/content/2020/02/03/a-guide-for-unit-testing-in-apache-flink/index.html
+++ b/content/2020/02/03/a-guide-for-unit-testing-in-apache-flink/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/02/11/apache-flink-1.10.0-release-announcement/index.html b/content/2020/02/11/apache-flink-1.10.0-release-announcement/index.html
index 11f926f670..c8c9007c98 100644
--- a/content/2020/02/11/apache-flink-1.10.0-release-announcement/index.html
+++ b/content/2020/02/11/apache-flink-1.10.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Flink 1.10 also marks the completion of the Blink integration, hardening streami
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/02/20/no-java-required-configuring-sources-and-sinks-in-sql/index.html b/content/2020/02/20/no-java-required-configuring-sources-and-sinks-in-sql/index.html
index 90d6b7f716..fb2cf54f22 100644
--- a/content/2020/02/20/no-java-required-configuring-sources-and-sinks-in-sql/index.html
+++ b/content/2020/02/20/no-java-required-configuring-sources-and-sinks-in-sql/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink/index.html b/content/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink/index.html
index 904d6ad5a2..02e75a550d 100644
--- a/content/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink/index.html
+++ b/content/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink/index.html
@@ -28,7 +28,7 @@ Apache Flink and Apache Beam are open-source frameworks for parallel, distribute
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/03/24/advanced-flink-application-patterns-vol.2-dynamic-updates-of-application-logic/index.html b/content/2020/03/24/advanced-flink-application-patterns-vol.2-dynamic-updates-of-application-logic/index.html
index 7dd94c16c1..871306132c 100644
--- a/content/2020/03/24/advanced-flink-application-patterns-vol.2-dynamic-updates-of-application-logic/index.html
+++ b/content/2020/03/24/advanced-flink-application-patterns-vol.2-dynamic-updates-of-application-logic/index.html
@@ -28,7 +28,7 @@ We intentionally omitted details of how the applied rules are initialized and wh
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/03/27/flink-as-unified-engine-for-modern-data-warehousing-production-ready-hive-integration/index.html b/content/2020/03/27/flink-as-unified-engine-for-modern-data-warehousing-production-ready-hive-integration/index.html
index 508db43e01..e64029174d 100644
--- a/content/2020/03/27/flink-as-unified-engine-for-modern-data-warehousing-production-ready-hive-integration/index.html
+++ b/content/2020/03/27/flink-as-unified-engine-for-modern-data-warehousing-production-ready-hive-integration/index.html
@@ -32,7 +32,7 @@ Firstly, today’s business is shifting to a more real-time fashion, and thus de
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/03/30/flink-community-update-april20/index.html b/content/2020/03/30/flink-community-update-april20/index.html
index 011a422dd6..926a07a3cc 100644
--- a/content/2020/03/30/flink-community-update-april20/index.html
+++ b/content/2020/03/30/flink-community-update-april20/index.html
@@ -28,7 +28,7 @@ And since now it’s more important than ever to keep up the spirits, we’d
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/index.html b/content/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/index.html
index 81ebb9ac74..f3a76ad2f0 100644
--- a/content/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/index.html
+++ b/content/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/index.html
@@ -28,7 +28,7 @@ Stateful Functions 2.0 makes it possible to combine StateFun’s powerful approa
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/index.html b/content/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/index.html
index ce7ec002f7..552878d2fe 100644
--- a/content/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/index.html
+++ b/content/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/index.html
@@ -28,7 +28,7 @@ In Flink 1.10, the community further extended the support for Python by adding P
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/index.html b/content/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/index.html
index 2732a8430d..66e4509af8 100644
--- a/content/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/index.html
+++ b/content/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/04/21/memory-management-improvements-with-apache-flink-1.10/index.html b/content/2020/04/21/memory-management-improvements-with-apache-flink-1.10/index.html
index 916130c368..79fd860a61 100644
--- a/content/2020/04/21/memory-management-improvements-with-apache-flink-1.10/index.html
+++ b/content/2020/04/21/memory-management-improvements-with-apache-flink-1.10/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/04/24/apache-flink-1.9.3-released/index.html b/content/2020/04/24/apache-flink-1.9.3-released/index.html
index 42fd1220a6..6c27d39ec1 100644
--- a/content/2020/04/24/apache-flink-1.9.3-released/index.html
+++ b/content/2020/04/24/apache-flink-1.9.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/05/04/applying-to-google-season-of-docs-2020/index.html b/content/2020/05/04/applying-to-google-season-of-docs-2020/index.html
index 43e26b0bbe..f8e99799fb 100644
--- a/content/2020/05/04/applying-to-google-season-of-docs-2020/index.html
+++ b/content/2020/05/04/applying-to-google-season-of-docs-2020/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/05/06/flink-community-update-may20/index.html b/content/2020/05/06/flink-community-update-may20/index.html
index 8cfbcd3187..b8c4c4117a 100644
--- a/content/2020/05/06/flink-community-update-may20/index.html
+++ b/content/2020/05/06/flink-community-update-may20/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/05/12/apache-flink-1.10.1-released/index.html b/content/2020/05/12/apache-flink-1.10.1-released/index.html
index 6c9d21ca44..1ffed4c3fd 100644
--- a/content/2020/05/12/apache-flink-1.10.1-released/index.html
+++ b/content/2020/05/12/apache-flink-1.10.1-released/index.html
@@ -32,7 +32,7 @@ Note FLINK-16684 changed the builders of the StreamingFileSink to make them comp
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/06/09/stateful-functions-2.1.0-release-announcement/index.html b/content/2020/06/09/stateful-functions-2.1.0-release-announcement/index.html
index 85e60ff132..a271dcddf3 100644
--- a/content/2020/06/09/stateful-functions-2.1.0-release-announcement/index.html
+++ b/content/2020/06/09/stateful-functions-2.1.0-release-announcement/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/06/10/flink-community-update-june20/index.html b/content/2020/06/10/flink-community-update-june20/index.html
index d556ca77c9..a2b8c1480a 100644
--- a/content/2020/06/10/flink-community-update-june20/index.html
+++ b/content/2020/06/10/flink-community-update-june20/index.html
@@ -28,7 +28,7 @@ To top it off, a piece of good news: Flink Forward is back on October 19-22 as a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/index.html b/content/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/index.html
index b80e7b00c9..5f4d4499e7 100644
--- a/content/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/index.html
+++ b/content/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/index.html b/content/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/index.html
index 4c9cc251a8..0a23ad6599 100644
--- a/content/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/index.html
+++ b/content/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/index.html
@@ -28,7 +28,7 @@ Streaming Data Visualization # With Zeppelin, you can build a real time streamin
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/06/apache-flink-1.11.0-release-announcement/index.html b/content/2020/07/06/apache-flink-1.11.0-release-announcement/index.html
index 7573d721b0..34b4381ff1 100644
--- a/content/2020/07/06/apache-flink-1.11.0-release-announcement/index.html
+++ b/content/2020/07/06/apache-flink-1.11.0-release-announcement/index.html
@@ -28,7 +28,7 @@ The core engine is introducing unaligned checkpoints, a major change to Flink&rs
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/14/application-deployment-in-flink-current-state-and-the-new-application-mode/index.html b/content/2020/07/14/application-deployment-in-flink-current-state-and-the-new-application-mode/index.html
index 213cae2d3a..872fd3d661 100644
--- a/content/2020/07/14/application-deployment-in-flink-current-state-and-the-new-application-mode/index.html
+++ b/content/2020/07/14/application-deployment-in-flink-current-state-and-the-new-application-mode/index.html
@@ -28,7 +28,7 @@ These platforms aim at simplifying application submission internally by lifting
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/21/apache-flink-1.11.1-released/index.html b/content/2020/07/21/apache-flink-1.11.1-released/index.html
index bd790fd743..1a145ac731 100644
--- a/content/2020/07/21/apache-flink-1.11.1-released/index.html
+++ b/content/2020/07/21/apache-flink-1.11.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/23/sharing-is-caring-catalogs-in-flink-sql/index.html b/content/2020/07/23/sharing-is-caring-catalogs-in-flink-sql/index.html
index 03d1c2d00d..e797e5d467 100644
--- a/content/2020/07/23/sharing-is-caring-catalogs-in-flink-sql/index.html
+++ b/content/2020/07/23/sharing-is-caring-catalogs-in-flink-sql/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/28/flink-sql-demo-building-an-end-to-end-streaming-application/index.html b/content/2020/07/28/flink-sql-demo-building-an-end-to-end-streaming-application/index.html
index 9303cb22d8..d5e010f8a1 100644
--- a/content/2020/07/28/flink-sql-demo-building-an-end-to-end-streaming-application/index.html
+++ b/content/2020/07/28/flink-sql-demo-building-an-end-to-end-streaming-application/index.html
@@ -28,7 +28,7 @@ In the following sections, we describe how to integrate Kafka, MySQL, Elasticsea
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/29/flink-community-update-july20/index.html b/content/2020/07/29/flink-community-update-july20/index.html
index be789c362c..b387f31eae 100644
--- a/content/2020/07/29/flink-community-update-july20/index.html
+++ b/content/2020/07/29/flink-community-update-july20/index.html
@@ -30,7 +30,7 @@ The Past Month in Flink # Flink Releases # Flink 1.11 # A couple of weeks ago, F
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/07/30/advanced-flink-application-patterns-vol.3-custom-window-processing/index.html b/content/2020/07/30/advanced-flink-application-patterns-vol.3-custom-window-processing/index.html
index 3b7c76e3e5..561a6da434 100644
--- a/content/2020/07/30/advanced-flink-application-patterns-vol.3-custom-window-processing/index.html
+++ b/content/2020/07/30/advanced-flink-application-patterns-vol.3-custom-window-processing/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/index.html b/content/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/index.html
index 58bfe6f543..fd64e64a8d 100644
--- a/content/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/index.html
+++ b/content/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/index.html
@@ -28,7 +28,7 @@ Pic source: VanderPlas 2017, slide 52." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/index.html b/content/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/index.html
index 3778b05e42..69d773fca7 100644
--- a/content/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/index.html
+++ b/content/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/index.html b/content/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/index.html
index d958ccf39b..8cf87134a3 100644
--- a/content/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/index.html
+++ b/content/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/index.html
@@ -28,7 +28,7 @@ IoT networks are composed of many individual, but interconnected components, whi
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/08/20/the-state-of-flink-on-docker/index.html b/content/2020/08/20/the-state-of-flink-on-docker/index.html
index 775cb93607..a606bb6c3d 100644
--- a/content/2020/08/20/the-state-of-flink-on-docker/index.html
+++ b/content/2020/08/20/the-state-of-flink-on-docker/index.html
@@ -32,7 +32,7 @@ Reduce confusion: Flink used to have 2 Dockerfiles and a 3rd file maintained out
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/08/25/apache-flink-1.10.2-released/index.html b/content/2020/08/25/apache-flink-1.10.2-released/index.html
index 0c09dd2ea8..f89ec929fd 100644
--- a/content/2020/08/25/apache-flink-1.10.2-released/index.html
+++ b/content/2020/08/25/apache-flink-1.10.2-released/index.html
@@ -32,7 +32,7 @@ Note After FLINK-18242, the deprecated `OptionsFactory` and `ConfigurableOptions
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/09/01/memory-management-improvements-for-flinks-jobmanager-in-apache-flink-1.11/index.html b/content/2020/09/01/memory-management-improvements-for-flinks-jobmanager-in-apache-flink-1.11/index.html
index c4edd03e03..5f64bf58c0 100644
--- a/content/2020/09/01/memory-management-improvements-for-flinks-jobmanager-in-apache-flink-1.11/index.html
+++ b/content/2020/09/01/memory-management-improvements-for-flinks-jobmanager-in-apache-flink-1.11/index.html
@@ -28,7 +28,7 @@ The previous blog post focused on the memory model of the TaskManagers and how i
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/09/04/flink-community-update-august20/index.html b/content/2020/09/04/flink-community-update-august20/index.html
index 1851cb8893..ad6742dbab 100644
--- a/content/2020/09/04/flink-community-update-august20/index.html
+++ b/content/2020/09/04/flink-community-update-august20/index.html
@@ -28,7 +28,7 @@ The Past Month in Flink # Flink Releases # Getting Ready for Flink Stateful Func
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/09/17/apache-flink-1.11.2-released/index.html b/content/2020/09/17/apache-flink-1.11.2-released/index.html
index f88c124c82..abe662f116 100644
--- a/content/2020/09/17/apache-flink-1.11.2-released/index.html
+++ b/content/2020/09/17/apache-flink-1.11.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/09/28/stateful-functions-2.2.0-release-announcement/index.html b/content/2020/09/28/stateful-functions-2.2.0-release-announcement/index.html
index 5b581c83f9..66cf476dd5 100644
--- a/content/2020/09/28/stateful-functions-2.2.0-release-announcement/index.html
+++ b/content/2020/09/28/stateful-functions-2.2.0-release-announcement/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/10/13/stateful-functions-internals-behind-the-scenes-of-stateful-serverless/index.html b/content/2020/10/13/stateful-functions-internals-behind-the-scenes-of-stateful-serverless/index.html
index 216344441e..fc2dbb0185 100644
--- a/content/2020/10/13/stateful-functions-internals-behind-the-scenes-of-stateful-serverless/index.html
+++ b/content/2020/10/13/stateful-functions-internals-behind-the-scenes-of-stateful-serverless/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1-checkpoints-alignment-and-backpressure/index.html b/content/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1-checkpoints-alignment-and-backpressure/index.html
index 9ad7e6950b..db26dcc193 100644
--- a/content/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1-checkpoints-alignment-and-backpressure/index.html
+++ b/content/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1-checkpoints-alignment-and-backpressure/index.html
@@ -28,7 +28,7 @@ Despite all these great properties, Flink’s checkpointing method has an Ac
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/11/11/stateful-functions-2.2.1-release-announcement/index.html b/content/2020/11/11/stateful-functions-2.2.1-release-announcement/index.html
index c7857e3b63..64273ce371 100644
--- a/content/2020/11/11/stateful-functions-2.2.1-release-announcement/index.html
+++ b/content/2020/11/11/stateful-functions-2.2.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We strongly recommend all users to upgrade to 2." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/index.html b/content/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/index.html
index d1866332f0..9521fa7c33 100644
--- a/content/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/index.html
+++ b/content/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/12/10/apache-flink-1.12.0-release-announcement/index.html b/content/2020/12/10/apache-flink-1.12.0-release-announcement/index.html
index 18cd8e09ba..1e8550f1fc 100644
--- a/content/2020/12/10/apache-flink-1.12.0-release-announcement/index.html
+++ b/content/2020/12/10/apache-flink-1.12.0-release-announcement/index.html
@@ -30,7 +30,7 @@ The community has added support for efficient batch execution in the DataStream
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2020/12/18/apache-flink-1.11.3-released/index.html b/content/2020/12/18/apache-flink-1.11.3-released/index.html
index 44732211d5..2d27fdd20f 100644
--- a/content/2020/12/18/apache-flink-1.11.3-released/index.html
+++ b/content/2020/12/18/apache-flink-1.11.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/01/02/stateful-functions-2.2.2-release-announcement/index.html b/content/2021/01/02/stateful-functions-2.2.2-release-announcement/index.html
index e46a89aaf0..1f491016b5 100644
--- a/content/2021/01/02/stateful-functions-2.2.2-release-announcement/index.html
+++ b/content/2021/01/02/stateful-functions-2.2.2-release-announcement/index.html
@@ -28,7 +28,7 @@ The most important change of this bugfix release is upgrading Apache Flink to ve
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/01/07/whats-new-in-the-pulsar-flink-connector-2.7.0/index.html b/content/2021/01/07/whats-new-in-the-pulsar-flink-connector-2.7.0/index.html
index 9776018444..a17be78d44 100644
--- a/content/2021/01/07/whats-new-in-the-pulsar-flink-connector-2.7.0/index.html
+++ b/content/2021/01/07/whats-new-in-the-pulsar-flink-connector-2.7.0/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/01/11/exploring-fine-grained-recovery-of-bounded-data-sets-on-flink/index.html b/content/2021/01/11/exploring-fine-grained-recovery-of-bounded-data-sets-on-flink/index.html
index 0bb9d1b36b..a0ddf93daa 100644
--- a/content/2021/01/11/exploring-fine-grained-recovery-of-bounded-data-sets-on-flink/index.html
+++ b/content/2021/01/11/exploring-fine-grained-recovery-of-bounded-data-sets-on-flink/index.html
@@ -28,7 +28,7 @@ Processing efficiency is not the only parameter users of data processing systems
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/01/18/using-rocksdb-state-backend-in-apache-flink-when-and-how/index.html b/content/2021/01/18/using-rocksdb-state-backend-in-apache-flink-when-and-how/index.html
index cbe5a9af7a..2e2c083dc0 100644
--- a/content/2021/01/18/using-rocksdb-state-backend-in-apache-flink-when-and-how/index.html
+++ b/content/2021/01/18/using-rocksdb-state-backend-in-apache-flink-when-and-how/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/01/19/apache-flink-1.12.1-released/index.html b/content/2021/01/19/apache-flink-1.12.1-released/index.html
index e1418c179e..390f773239 100644
--- a/content/2021/01/19/apache-flink-1.12.1-released/index.html
+++ b/content/2021/01/19/apache-flink-1.12.1-released/index.html
@@ -32,7 +32,7 @@ Attention: Using unaligned checkpoints in Flink 1.12.0 combined with two/multipl
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/01/29/apache-flink-1.10.3-released/index.html b/content/2021/01/29/apache-flink-1.10.3-released/index.html
index 986494fc3a..fd4621e8f6 100644
--- a/content/2021/01/29/apache-flink-1.10.3-released/index.html
+++ b/content/2021/01/29/apache-flink-1.10.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/index.html b/content/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/index.html
index 23b80d1d84..fef8dd10ae 100644
--- a/content/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/index.html
+++ b/content/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/index.html
@@ -28,7 +28,7 @@ From release to release, the Flink community has made significant progress in in
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/03/03/apache-flink-1.12.2-released/index.html b/content/2021/03/03/apache-flink-1.12.2-released/index.html
index 4d0b90a8aa..acd37203e6 100644
--- a/content/2021/03/03/apache-flink-1.12.2-released/index.html
+++ b/content/2021/03/03/apache-flink-1.12.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/03/11/a-rundown-of-batch-execution-mode-in-the-datastream-api/index.html b/content/2021/03/11/a-rundown-of-batch-execution-mode-in-the-datastream-api/index.html
index b30614a0aa..ce48c3d3dc 100644
--- a/content/2021/03/11/a-rundown-of-batch-execution-mode-in-the-datastream-api/index.html
+++ b/content/2021/03/11/a-rundown-of-batch-execution-mode-in-the-datastream-api/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/04/15/stateful-functions-3.0.0-remote-functions-front-and-center/index.html b/content/2021/04/15/stateful-functions-3.0.0-remote-functions-front-and-center/index.html
index 9b6add6d19..bf4f7c68d2 100644
--- a/content/2021/04/15/stateful-functions-3.0.0-remote-functions-front-and-center/index.html
+++ b/content/2021/04/15/stateful-functions-3.0.0-remote-functions-front-and-center/index.html
@@ -28,7 +28,7 @@ This new release brings remote functions to the front and center of StateFun, ma
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/04/29/apache-flink-1.12.3-released/index.html b/content/2021/04/29/apache-flink-1.12.3-released/index.html
index e8a8300cfd..b0a7692fdb 100644
--- a/content/2021/04/29/apache-flink-1.12.3-released/index.html
+++ b/content/2021/04/29/apache-flink-1.12.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/05/03/apache-flink-1.13.0-release-announcement/index.html b/content/2021/05/03/apache-flink-1.13.0-release-announcement/index.html
index 1e982def5b..aed44d5d42 100644
--- a/content/2021/05/03/apache-flink-1.13.0-release-announcement/index.html
+++ b/content/2021/05/03/apache-flink-1.13.0-release-announcement/index.html
@@ -28,7 +28,7 @@ The release brings us a big step forward in one of our major efforts: Making Str
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/05/06/scaling-flink-automatically-with-reactive-mode/index.html b/content/2021/05/06/scaling-flink-automatically-with-reactive-mode/index.html
index 3baab2eb15..cf912631ed 100644
--- a/content/2021/05/06/scaling-flink-automatically-with-reactive-mode/index.html
+++ b/content/2021/05/06/scaling-flink-automatically-with-reactive-mode/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/05/21/apache-flink-1.12.4-released/index.html b/content/2021/05/21/apache-flink-1.12.4-released/index.html
index f43ee7fae7..fb03269c9d 100644
--- a/content/2021/05/21/apache-flink-1.12.4-released/index.html
+++ b/content/2021/05/21/apache-flink-1.12.4-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/05/28/apache-flink-1.13.1-released/index.html b/content/2021/05/28/apache-flink-1.13.1-released/index.html
index 5251bd2381..02c2c71b23 100644
--- a/content/2021/05/28/apache-flink-1.13.1-released/index.html
+++ b/content/2021/05/28/apache-flink-1.13.1-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/07/07/how-to-identify-the-source-of-backpressure/index.html b/content/2021/07/07/how-to-identify-the-source-of-backpressure/index.html
index 022fad6272..bc789b67c7 100644
--- a/content/2021/07/07/how-to-identify-the-source-of-backpressure/index.html
+++ b/content/2021/07/07/how-to-identify-the-source-of-backpressure/index.html
@@ -28,7 +28,7 @@ The backpressure topic was tackled from different angles over the last couple of
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/08/06/apache-flink-1.12.5-released/index.html b/content/2021/08/06/apache-flink-1.12.5-released/index.html
index 830278f248..5e33782eaf 100644
--- a/content/2021/08/06/apache-flink-1.12.5-released/index.html
+++ b/content/2021/08/06/apache-flink-1.12.5-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/08/06/apache-flink-1.13.2-released/index.html b/content/2021/08/06/apache-flink-1.13.2-released/index.html
index 2ecffa4dfa..44f80f9795 100644
--- a/content/2021/08/06/apache-flink-1.13.2-released/index.html
+++ b/content/2021/08/06/apache-flink-1.13.2-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/08/09/apache-flink-1.11.4-released/index.html b/content/2021/08/09/apache-flink-1.11.4-released/index.html
index bd7637264d..bcdafe8510 100644
--- a/content/2021/08/09/apache-flink-1.11.4-released/index.html
+++ b/content/2021/08/09/apache-flink-1.11.4-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/08/31/help-us-stabilize-apache-flink-1.14.0-rc0/index.html b/content/2021/08/31/help-us-stabilize-apache-flink-1.14.0-rc0/index.html
index 17c938ebe8..29f0b10436 100644
--- a/content/2021/08/31/help-us-stabilize-apache-flink-1.14.0-rc0/index.html
+++ b/content/2021/08/31/help-us-stabilize-apache-flink-1.14.0-rc0/index.html
@@ -30,7 +30,7 @@ A lot of features and fixes went into this release, including improvements to th
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/08/31/stateful-functions-3.1.0-release-announcement/index.html b/content/2021/08/31/stateful-functions-3.1.0-release-announcement/index.html
index 2efdc97e86..135dc3ca49 100644
--- a/content/2021/08/31/stateful-functions-3.1.0-release-announcement/index.html
+++ b/content/2021/08/31/stateful-functions-3.1.0-release-announcement/index.html
@@ -28,7 +28,7 @@ The binary distribution and source artifacts are now available on the updated Do
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-one/index.html b/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-one/index.html
index a0d4b79743..3e6064ee73 100644
--- a/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-one/index.html
+++ b/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-one/index.html
@@ -28,7 +28,7 @@ Introduction # Apache Flink is a data processing engine that aims to keep state
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-two/index.html b/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-two/index.html
index 5426fc13f9..c503f02952 100644
--- a/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-two/index.html
+++ b/content/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-two/index.html
@@ -30,7 +30,7 @@ integrate a source connector which connects to a mailbox using the IMAP protocol
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/09/29/apache-flink-1.14.0-release-announcement/index.html b/content/2021/09/29/apache-flink-1.14.0-release-announcement/index.html
index 5a895025c1..515eba296e 100644
--- a/content/2021/09/29/apache-flink-1.14.0-release-announcement/index.html
+++ b/content/2021/09/29/apache-flink-1.14.0-release-announcement/index.html
@@ -28,7 +28,7 @@ This release brings many new features and improvements in areas such as the SQL
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/10/19/apache-flink-1.13.3-released/index.html b/content/2021/10/19/apache-flink-1.13.3-released/index.html
index 16fbecf1ed..f17fef4479 100644
--- a/content/2021/10/19/apache-flink-1.13.3-released/index.html
+++ b/content/2021/10/19/apache-flink-1.13.3-released/index.html
@@ -34,7 +34,7 @@ Updated Maven dependencies:
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/index.html b/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/index.html
index be252b21c6..adf99f5e52 100644
--- a/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/index.html
+++ b/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/index.html
@@ -28,7 +28,7 @@ How data gets passed around between operators # Data shuffling is an important s
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/index.html b/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/index.html
index e0ab2f8257..b7c22b5a07 100644
--- a/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/index.html
+++ b/content/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/index.html
@@ -28,7 +28,7 @@ Like sort-merge shuffle implemented by other distributed data processing framewo
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/11/03/flink-backward-the-apache-flink-retrospective/index.html b/content/2021/11/03/flink-backward-the-apache-flink-retrospective/index.html
index f7950f42ab..ad9be5b42d 100644
--- a/content/2021/11/03/flink-backward-the-apache-flink-retrospective/index.html
+++ b/content/2021/11/03/flink-backward-the-apache-flink-retrospective/index.html
@@ -28,7 +28,7 @@ A retrospective on the release cycle # From the team, we collected emotions that
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/12/10/advise-on-apache-log4j-zero-day-cve-2021-44228/index.html b/content/2021/12/10/advise-on-apache-log4j-zero-day-cve-2021-44228/index.html
index dce75e43ec..6772864294 100644
--- a/content/2021/12/10/advise-on-apache-log4j-zero-day-cve-2021-44228/index.html
+++ b/content/2021/12/10/advise-on-apache-log4j-zero-day-cve-2021-44228/index.html
@@ -30,7 +30,7 @@ env.java.opts: -Dlog4j2.formatMsgNoLookups=true If you are already setting env."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/12/16/apache-flink-log4j-emergency-releases/index.html b/content/2021/12/16/apache-flink-log4j-emergency-releases/index.html
index b595d0f7a6..6d2a2c936d 100644
--- a/content/2021/12/16/apache-flink-log4j-emergency-releases/index.html
+++ b/content/2021/12/16/apache-flink-log4j-emergency-releases/index.html
@@ -34,7 +34,7 @@ We are publishing this announcement earlier than usual to give users access to t
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2021/12/22/apache-flink-statefun-log4j-emergency-release/index.html b/content/2021/12/22/apache-flink-statefun-log4j-emergency-release/index.html
index cc92c9934a..dbd5ad851e 100644
--- a/content/2021/12/22/apache-flink-statefun-log4j-emergency-release/index.html
+++ b/content/2021/12/22/apache-flink-statefun-log4j-emergency-release/index.html
@@ -32,7 +32,7 @@ You can find the source and binaries on the updated Downloads page, and Docker i
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-one/index.html b/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-one/index.html
index 791476e43c..2f60a3edfc 100644
--- a/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-one/index.html
+++ b/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-one/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-two/index.html b/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-two/index.html
index 7a30138871..32123d6f8e 100644
--- a/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-two/index.html
+++ b/content/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-two/index.html
@@ -28,7 +28,7 @@ Reducing complexity with groups # A distribution pattern describes how consumer
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/01/07/apache-flink-ml-2.0.0-release-announcement/index.html b/content/2022/01/07/apache-flink-ml-2.0.0-release-announcement/index.html
index 9630856a5f..2cd6b60f89 100644
--- a/content/2022/01/07/apache-flink-ml-2.0.0-release-announcement/index.html
+++ b/content/2022/01/07/apache-flink-ml-2.0.0-release-announcement/index.html
@@ -28,7 +28,7 @@ This release involves a major refactor of the earlier Flink ML library and intro
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/01/17/apache-flink-1.14.3-release-announcement/index.html b/content/2022/01/17/apache-flink-1.14.3-release-announcement/index.html
index e396dd78df..4c9f374607 100644
--- a/content/2022/01/17/apache-flink-1.14.3-release-announcement/index.html
+++ b/content/2022/01/17/apache-flink-1.14.3-release-announcement/index.html
@@ -28,7 +28,7 @@ This release includes 164 fixes and minor improvements for Flink 1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/01/20/pravega-flink-connector-101/index.html b/content/2022/01/20/pravega-flink-connector-101/index.html
index 32b9287a35..484a30b464 100644
--- a/content/2022/01/20/pravega-flink-connector-101/index.html
+++ b/content/2022/01/20/pravega-flink-connector-101/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/01/31/stateful-functions-3.2.0-release-announcement/index.html b/content/2022/01/31/stateful-functions-3.2.0-release-announcement/index.html
index 3a03d63cb5..6ccb9b559c 100644
--- a/content/2022/01/31/stateful-functions-3.2.0-release-announcement/index.html
+++ b/content/2022/01/31/stateful-functions-3.2.0-release-announcement/index.html
@@ -28,7 +28,7 @@ The binary distribution and source artifacts are now available on the updated Do
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/02/18/apache-flink-1.13.6-release-announcement/index.html b/content/2022/02/18/apache-flink-1.13.6-release-announcement/index.html
index 6660d0abca..e2ad4014bb 100644
--- a/content/2022/02/18/apache-flink-1.13.6-release-announcement/index.html
+++ b/content/2022/02/18/apache-flink-1.13.6-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users to upgrade to Flink 1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/02/22/scala-free-in-one-fifteen/index.html b/content/2022/02/22/scala-free-in-one-fifteen/index.html
index 8b686339e7..2b4790048a 100644
--- a/content/2022/02/22/scala-free-in-one-fifteen/index.html
+++ b/content/2022/02/22/scala-free-in-one-fifteen/index.html
@@ -30,7 +30,7 @@ TLDR: All Scala dependencies are now isolated to the flink-scala jar." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/03/11/apache-flink-1.14.4-release-announcement/index.html b/content/2022/03/11/apache-flink-1.14.4-release-announcement/index.html
index b9c4fc3ee3..0caf88d6c5 100644
--- a/content/2022/03/11/apache-flink-1.14.4-release-announcement/index.html
+++ b/content/2022/03/11/apache-flink-1.14.4-release-announcement/index.html
@@ -32,7 +32,7 @@ Release Artifacts # Maven Dependencies # <dependency> <groupId>org."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/03/16/the-generic-asynchronous-base-sink/index.html b/content/2022/03/16/the-generic-asynchronous-base-sink/index.html
index 182697070d..efc9f900a9 100644
--- a/content/2022/03/16/the-generic-asynchronous-base-sink/index.html
+++ b/content/2022/03/16/the-generic-asynchronous-base-sink/index.html
@@ -30,7 +30,7 @@ This is a base implementation for asynchronous sinks, which you should use whene
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/04/03/apache-flink-kubernetes-operator-0.1.0-release-announcement/index.html b/content/2022/04/03/apache-flink-kubernetes-operator-0.1.0-release-announcement/index.html
index 5274893c13..ae2fc98402 100644
--- a/content/2022/04/03/apache-flink-kubernetes-operator-0.1.0-release-announcement/index.html
+++ b/content/2022/04/03/apache-flink-kubernetes-operator-0.1.0-release-announcement/index.html
@@ -30,7 +30,7 @@ The operator takes care of submitting, savepointing, upgrading and generally man
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/05/announcing-the-release-of-apache-flink-1.15/index.html b/content/2022/05/05/announcing-the-release-of-apache-flink-1.15/index.html
index 843408c60e..9dc3aa95c1 100644
--- a/content/2022/05/05/announcing-the-release-of-apache-flink-1.15/index.html
+++ b/content/2022/05/05/announcing-the-release-of-apache-flink-1.15/index.html
@@ -28,7 +28,7 @@ One of the main concepts that makes Apache Flink stand out is the unification of
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/06/exploring-the-thread-mode-in-pyflink/index.html b/content/2022/05/06/exploring-the-thread-mode-in-pyflink/index.html
index 78e002f03a..a6103044e3 100644
--- a/content/2022/05/06/exploring-the-thread-mode-in-pyflink/index.html
+++ b/content/2022/05/06/exploring-the-thread-mode-in-pyflink/index.html
@@ -28,7 +28,7 @@ Before Flink 1.15, Python user-defined functions will be executed in separate Py
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/06/improvements-to-flink-operations-snapshots-ownership-and-savepoint-formats/index.html b/content/2022/05/06/improvements-to-flink-operations-snapshots-ownership-and-savepoint-formats/index.html
index 92b5210171..da3ce722c0 100644
--- a/content/2022/05/06/improvements-to-flink-operations-snapshots-ownership-and-savepoint-formats/index.html
+++ b/content/2022/05/06/improvements-to-flink-operations-snapshots-ownership-and-savepoint-formats/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/index.html b/content/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/index.html
index 7b645a68a3..ad24a38cf1 100644
--- a/content/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/index.html
+++ b/content/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/index.html
@@ -32,7 +32,7 @@ What is Flink Table Store # In the past years, thanks to our numerous contributo
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/index.html b/content/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/index.html
index 8a3ba47af9..a94a86ef87 100644
--- a/content/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/index.html
+++ b/content/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/index.html
@@ -28,7 +28,7 @@ In this multi-part series, we will present a collection of low-latency technique
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/index.html b/content/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/index.html
index dc95e54bc1..2e60bb97ba 100644
--- a/content/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/index.html
+++ b/content/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/index.html b/content/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/index.html
index f330bd6957..14f130859a 100644
--- a/content/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/index.html
+++ b/content/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/06/05/apache-flink-kubernetes-operator-1.0.0-release-announcement/index.html b/content/2022/06/05/apache-flink-kubernetes-operator-1.0.0-release-announcement/index.html
index bbb4e71045..97ab94c44c 100644
--- a/content/2022/06/05/apache-flink-kubernetes-operator-1.0.0-release-announcement/index.html
+++ b/content/2022/06/05/apache-flink-kubernetes-operator-1.0.0-release-announcement/index.html
@@ -30,7 +30,7 @@ New v1beta1 API version & compatibility guarantees Session Job Management su
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/06/17/adaptive-batch-scheduler-automatically-decide-parallelism-of-flink-batch-jobs/index.html b/content/2022/06/17/adaptive-batch-scheduler-automatically-decide-parallelism-of-flink-batch-jobs/index.html
index 6d9f5e0717..df06eea757 100644
--- a/content/2022/06/17/adaptive-batch-scheduler-automatically-decide-parallelism-of-flink-batch-jobs/index.html
+++ b/content/2022/06/17/adaptive-batch-scheduler-automatically-decide-parallelism-of-flink-batch-jobs/index.html
@@ -28,7 +28,7 @@ To decide a proper parallelism, one needs to know how much data each operator ne
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/06/22/apache-flink-1.14.5-release-announcement/index.html b/content/2022/06/22/apache-flink-1.14.5-release-announcement/index.html
index b344f4fbe2..012ab12ee6 100644
--- a/content/2022/06/22/apache-flink-1.14.5-release-announcement/index.html
+++ b/content/2022/06/22/apache-flink-1.14.5-release-announcement/index.html
@@ -32,7 +32,7 @@ Release Artifacts # Maven Dependencies # <dependency> <groupId>org."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/07/06/apache-flink-1.15.1-release-announcement/index.html b/content/2022/07/06/apache-flink-1.15.1-release-announcement/index.html
index fa520621d1..4fab4040ac 100644
--- a/content/2022/07/06/apache-flink-1.15.1-release-announcement/index.html
+++ b/content/2022/07/06/apache-flink-1.15.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.15.1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-one/index.html b/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-one/index.html
index cb662d48ca..9789305f78 100644
--- a/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-one/index.html
+++ b/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-one/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-two/index.html b/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-two/index.html
index 3415dd9595..4d6e8d7996 100644
--- a/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-two/index.html
+++ b/content/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-two/index.html
@@ -28,7 +28,7 @@ Implementation of support Checkpointing with Finished Tasks # As described in pa
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/07/12/apache-flink-ml-2.1.0-release-announcement/index.html b/content/2022/07/12/apache-flink-ml-2.1.0-release-announcement/index.html
index 40eeeab982..da8e581cf1 100644
--- a/content/2022/07/12/apache-flink-ml-2.1.0-release-announcement/index.html
+++ b/content/2022/07/12/apache-flink-ml-2.1.0-release-announcement/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/index.html b/content/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/index.html
index 03ce482441..bf302b67dd 100644
--- a/content/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/index.html
+++ b/content/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Release Highlights # A non-exhaustive list of some of the more exciting features
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/08/24/apache-flink-1.15.2-release-announcement/index.html b/content/2022/08/24/apache-flink-1.15.2-release-announcement/index.html
index 7d8d0363a6..7aec96f738 100644
--- a/content/2022/08/24/apache-flink-1.15.2-release-announcement/index.html
+++ b/content/2022/08/24/apache-flink-1.15.2-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.15.2." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/08/29/apache-flink-table-store-0.2.0-release-announcement/index.html b/content/2022/08/29/apache-flink-table-store-0.2.0-release-announcement/index.html
index db64351645..56010786ef 100644
--- a/content/2022/08/29/apache-flink-table-store-0.2.0-release-announcement/index.html
+++ b/content/2022/08/29/apache-flink-table-store-0.2.0-release-announcement/index.html
@@ -32,7 +32,7 @@ As a new type of updatable data lake, Flink Table Store has the following featur
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/09/08/regarding-akkas-licensing-change/index.html b/content/2022/09/08/regarding-akkas-licensing-change/index.html
index 70a0139468..5432bce77e 100644
--- a/content/2022/09/08/regarding-akkas-licensing-change/index.html
+++ b/content/2022/09/08/regarding-akkas-licensing-change/index.html
@@ -30,7 +30,7 @@ The purpose of this blogpost is to clarify our position on the matter." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/09/28/apache-flink-1.14.6-release-announcement/index.html b/content/2022/09/28/apache-flink-1.14.6-release-announcement/index.html
index cd33e4ba42..acaa8c37dc 100644
--- a/content/2022/09/28/apache-flink-1.14.6-release-announcement/index.html
+++ b/content/2022/09/28/apache-flink-1.14.6-release-announcement/index.html
@@ -32,7 +32,7 @@ Release Artifacts # Maven Dependencies # <dependency> <groupId>org."
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/10/07/apache-flink-kubernetes-operator-1.2.0-release-announcement/index.html b/content/2022/10/07/apache-flink-kubernetes-operator-1.2.0-release-announcement/index.html
index b3ad47bb41..cf3b36b11f 100644
--- a/content/2022/10/07/apache-flink-kubernetes-operator-1.2.0-release-announcement/index.html
+++ b/content/2022/10/07/apache-flink-kubernetes-operator-1.2.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Release Highlights # Standalone deployment mode support Improved upgrade flow Re
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/10/13/apache-flink-table-store-0.2.1-release-announcement/index.html b/content/2022/10/13/apache-flink-table-store-0.2.1-release-announcement/index.html
index 6c57b42d4b..d318fe6063 100644
--- a/content/2022/10/13/apache-flink-table-store-0.2.1-release-announcement/index.html
+++ b/content/2022/10/13/apache-flink-table-store-0.2.1-release-announcement/index.html
@@ -32,7 +32,7 @@ Release Artifacts # Binaries # You can find the binaries on the updated Download
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/10/28/announcing-the-release-of-apache-flink-1.16/index.html b/content/2022/10/28/announcing-the-release-of-apache-flink-1.16/index.html
index bb8d8a4e36..5000fae060 100644
--- a/content/2022/10/28/announcing-the-release-of-apache-flink-1.16/index.html
+++ b/content/2022/10/28/announcing-the-release-of-apache-flink-1.16/index.html
@@ -28,7 +28,7 @@ Flink has become the leading role and factual standard of stream processing, and
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/11/10/apache-flink-1.15.3-release-announcement/index.html b/content/2022/11/10/apache-flink-1.15.3-release-announcement/index.html
index e81fb0b0c8..1c4ac846de 100644
--- a/content/2022/11/10/apache-flink-1.15.3-release-announcement/index.html
+++ b/content/2022/11/10/apache-flink-1.15.3-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.15.3." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/index.html b/content/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/index.html
index e40f313662..6f61a10cd6 100644
--- a/content/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/index.html
+++ b/content/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/index.html b/content/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/index.html
index b24f0492a6..cb9c4e4dad 100644
--- a/content/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/index.html
+++ b/content/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/index.html b/content/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/index.html
index 189853b7cf..dd16f20a49 100644
--- a/content/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/index.html
+++ b/content/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/index.html
@@ -32,7 +32,7 @@ Release Notes # Bug # [FLINK-30329] - flink-kubernetes-operator helm chart does
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/01/13/apache-flink-table-store-0.3.0-release-announcement/index.html b/content/2023/01/13/apache-flink-table-store-0.3.0-release-announcement/index.html
index 36b13a56c1..1bcbd1e13d 100644
--- a/content/2023/01/13/apache-flink-table-store-0.3.0-release-announcement/index.html
+++ b/content/2023/01/13/apache-flink-table-store-0.3.0-release-announcement/index.html
@@ -32,7 +32,7 @@ Flink Table Store 0.3 completes many exciting features, enhances its ability as
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/01/20/delegation-token-framework-obtain-distribute-and-use-temporary-credentials-automatically/index.html b/content/2023/01/20/delegation-token-framework-obtain-distribute-and-use-temporary-credentials-automatically/index.html
index 865217866b..c9633701c1 100644
--- a/content/2023/01/20/delegation-token-framework-obtain-distribute-and-use-temporary-credentials-automatically/index.html
+++ b/content/2023/01/20/delegation-token-framework-obtain-distribute-and-use-temporary-credentials-automatically/index.html
@@ -28,7 +28,7 @@ Introduction # Authentication in distributed systems is not an easy task. Previo
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/01/30/apache-flink-1.16.1-release-announcement/index.html b/content/2023/01/30/apache-flink-1.16.1-release-announcement/index.html
index 4b8654c00b..5abd41a637 100644
--- a/content/2023/01/30/apache-flink-1.16.1-release-announcement/index.html
+++ b/content/2023/01/30/apache-flink-1.16.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.16.1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/02/27/apache-flink-kubernetes-operator-1.4.0-release-announcement/index.html b/content/2023/02/27/apache-flink-kubernetes-operator-1.4.0-release-announcement/index.html
index 75f5a01757..73f79f64d6 100644
--- a/content/2023/02/27/apache-flink-kubernetes-operator-1.4.0-release-announcement/index.html
+++ b/content/2023/02/27/apache-flink-kubernetes-operator-1.4.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Flink Streaming Job Autoscaler # A highly requested feature for Flink applicatio
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/03/15/apache-flink-1.15.4-release-announcement/index.html b/content/2023/03/15/apache-flink-1.15.4-release-announcement/index.html
index f311b813a6..a3fc71c4b1 100644
--- a/content/2023/03/15/apache-flink-1.15.4-release-announcement/index.html
+++ b/content/2023/03/15/apache-flink-1.15.4-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.15.4." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/03/23/announcing-the-release-of-apache-flink-1.17/index.html b/content/2023/03/23/announcing-the-release-of-apache-flink-1.17/index.html
index 4989017050..47bdc43826 100644
--- a/content/2023/03/23/announcing-the-release-of-apache-flink-1.17/index.html
+++ b/content/2023/03/23/announcing-the-release-of-apache-flink-1.17/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/04/19/apache-flink-ml-2.2.0-release-announcement/index.html b/content/2023/04/19/apache-flink-ml-2.2.0-release-announcement/index.html
index 7d8ebe254a..6928f11c88 100644
--- a/content/2023/04/19/apache-flink-ml-2.2.0-release-announcement/index.html
+++ b/content/2023/04/19/apache-flink-ml-2.2.0-release-announcement/index.html
@@ -28,7 +28,7 @@ With the addition of these algorithms, we believe Flink ML library is ready for
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/index.html b/content/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/index.html
index 13d7bbe581..b9fc17770e 100644
--- a/content/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/index.html
+++ b/content/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/index.html
@@ -28,7 +28,7 @@ Implementing the source components # The source architecture is depicted in the
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/index.html b/content/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/index.html
index 472d1c3cd7..2c13376193 100644
--- a/content/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/index.html
+++ b/content/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/index.html b/content/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/index.html
index 68c53e47d9..0cb0913f22 100644
--- a/content/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/index.html
+++ b/content/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/index.html
@@ -28,7 +28,7 @@ Unit testing the source # Testing the serializers # Example Cassandra SplitSeria
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/05/17/apache-flink-kubernetes-operator-1.5.0-release-announcement/index.html b/content/2023/05/17/apache-flink-kubernetes-operator-1.5.0-release-announcement/index.html
index dc250a333f..76622088d4 100644
--- a/content/2023/05/17/apache-flink-kubernetes-operator-1.5.0-release-announcement/index.html
+++ b/content/2023/05/17/apache-flink-kubernetes-operator-1.5.0-release-announcement/index.html
@@ -28,7 +28,7 @@ We encourage you to download the release and share your feedback with the commun
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/05/25/apache-flink-1.16.2-release-announcement/index.html b/content/2023/05/25/apache-flink-1.16.2-release-announcement/index.html
index 8f7e55386d..5634d09c88 100644
--- a/content/2023/05/25/apache-flink-1.16.2-release-announcement/index.html
+++ b/content/2023/05/25/apache-flink-1.16.2-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.16.2." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/05/25/apache-flink-1.17.1-release-announcement/index.html b/content/2023/05/25/apache-flink-1.17.1-release-announcement/index.html
index d509333ae7..f4c8814792 100644
--- a/content/2023/05/25/apache-flink-1.17.1-release-announcement/index.html
+++ b/content/2023/05/25/apache-flink-1.17.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.17.1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/07/03/sigmod-systems-award-for-apache-flink/index.html b/content/2023/07/03/sigmod-systems-award-for-apache-flink/index.html
index 887e1908e3..74e61be3ed 100644
--- a/content/2023/07/03/sigmod-systems-award-for-apache-flink/index.html
+++ b/content/2023/07/03/sigmod-systems-award-for-apache-flink/index.html
@@ -32,7 +32,7 @@ Winning of SIGMOD Systems Award indicates the high recognition of Flink’s
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/08/04/announcing-three-new-apache-flink-connectors-the-new-connector-versioning-strategy-and-externalization/index.html b/content/2023/08/04/announcing-three-new-apache-flink-connectors-the-new-connector-versioning-strategy-and-externalization/index.html
index d6333b06ad..6b42c4cf6a 100644
--- a/content/2023/08/04/announcing-three-new-apache-flink-connectors-the-new-connector-versioning-strategy-and-externalization/index.html
+++ b/content/2023/08/04/announcing-three-new-apache-flink-connectors-the-new-connector-versioning-strategy-and-externalization/index.html
@@ -28,7 +28,7 @@ Amazon DynamoDB - This connector includes a sink that provides at-least-once del
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/08/15/apache-flink-kubernetes-operator-1.6.0-release-announcement/index.html b/content/2023/08/15/apache-flink-kubernetes-operator-1.6.0-release-announcement/index.html
index 2a390aab4e..5cb2cc23b3 100644
--- a/content/2023/08/15/apache-flink-kubernetes-operator-1.6.0-release-announcement/index.html
+++ b/content/2023/08/15/apache-flink-kubernetes-operator-1.6.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Highlights # Improved and simplified rollback mechanism # Previously the rollbac
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/09/19/stateful-functions-3.3.0-release-announcement/index.html b/content/2023/09/19/stateful-functions-3.3.0-release-announcement/index.html
index 660640c89a..d35d0f6779 100644
--- a/content/2023/09/19/stateful-functions-3.3.0-release-announcement/index.html
+++ b/content/2023/09/19/stateful-functions-3.3.0-release-announcement/index.html
@@ -30,7 +30,7 @@ The binary distribution and source artifacts are now available on the updated Do
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/10/24/announcing-the-release-of-apache-flink-1.18/index.html b/content/2023/10/24/announcing-the-release-of-apache-flink-1.18/index.html
index bd6ee69b0a..17bc6d1932 100644
--- a/content/2023/10/24/announcing-the-release-of-apache-flink-1.18/index.html
+++ b/content/2023/10/24/announcing-the-release-of-apache-flink-1.18/index.html
@@ -30,7 +30,7 @@ Towards a Streaming Lakehouse # Flink SQL Improvements # Introduce Flink JDBC Dr
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/index.html b/content/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/index.html
index ddd7e448d8..06e786357c 100644
--- a/content/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/index.html
+++ b/content/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/index.html
@@ -32,7 +32,7 @@ Release Notes # Bug # [FLINK-32890] Correct HA patch check for zookeeper metadat
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/11/22/apache-flink-kubernetes-operator-1.7.0-release-announcement/index.html b/content/2023/11/22/apache-flink-kubernetes-operator-1.7.0-release-announcement/index.html
index 06fe5a3535..03b482502b 100644
--- a/content/2023/11/22/apache-flink-kubernetes-operator-1.7.0-release-announcement/index.html
+++ b/content/2023/11/22/apache-flink-kubernetes-operator-1.7.0-release-announcement/index.html
@@ -28,7 +28,7 @@ We encourage you to download the release and share your feedback with the commun
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/11/29/apache-flink-1.16.3-release-announcement/index.html b/content/2023/11/29/apache-flink-1.16.3-release-announcement/index.html
index 92e5b1998e..721dd24eea 100644
--- a/content/2023/11/29/apache-flink-1.16.3-release-announcement/index.html
+++ b/content/2023/11/29/apache-flink-1.16.3-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.16.3." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2023/11/29/apache-flink-1.17.2-release-announcement/index.html b/content/2023/11/29/apache-flink-1.17.2-release-announcement/index.html
index 6422bdfe13..8f11a47e7d 100644
--- a/content/2023/11/29/apache-flink-1.17.2-release-announcement/index.html
+++ b/content/2023/11/29/apache-flink-1.17.2-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.17.2." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/01/19/apache-flink-1.18.1-release-announcement/index.html b/content/2024/01/19/apache-flink-1.18.1-release-announcement/index.html
index fb3f8ee4ea..2b322ff3e0 100644
--- a/content/2024/01/19/apache-flink-1.18.1-release-announcement/index.html
+++ b/content/2024/01/19/apache-flink-1.18.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.18.1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/03/18/announcing-the-release-of-apache-flink-1.19/index.html b/content/2024/03/18/announcing-the-release-of-apache-flink-1.19/index.html
index bb8d58cf1b..51fe437160 100644
--- a/content/2024/03/18/announcing-the-release-of-apache-flink-1.19/index.html
+++ b/content/2024/03/18/announcing-the-release-of-apache-flink-1.19/index.html
@@ -30,7 +30,7 @@ Flink SQL Improvements # Custom Parallelism for Table/SQL Sources # Now in Flink
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/index.html b/content/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/index.html
index 5b63e34ee7..b1142c3dad 100644
--- a/content/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/index.html
+++ b/content/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/index.html
@@ -32,7 +32,7 @@ Highlights # Flink Autotuning # We’re excited to announce our latest addit
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/05/17/apache-flink-cdc-3.1.0-release-announcement/index.html b/content/2024/05/17/apache-flink-cdc-3.1.0-release-announcement/index.html
index 5738db6e37..062b170a17 100644
--- a/content/2024/05/17/apache-flink-cdc-3.1.0-release-announcement/index.html
+++ b/content/2024/05/17/apache-flink-cdc-3.1.0-release-announcement/index.html
@@ -28,7 +28,7 @@ We’d like to invite you to check out Flink CDC documentation and have a tr
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/06/14/apache-flink-1.19.1-release-announcement/index.html b/content/2024/06/14/apache-flink-1.19.1-release-announcement/index.html
index 2ecccf7923..2756a58ed5 100644
--- a/content/2024/06/14/apache-flink-1.19.1-release-announcement/index.html
+++ b/content/2024/06/14/apache-flink-1.19.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.19.1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/index.html b/content/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/index.html
index bde22f0f61..df02ccfc6b 100644
--- a/content/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/index.html
+++ b/content/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users to upgrade to Flink CDC 3." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/index.html b/content/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/index.html
index 30ba856536..b16c83e052 100644
--- a/content/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/index.html
+++ b/content/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/index.html
@@ -30,7 +30,7 @@ We encourage you to download the release and share your experience with the comm
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/08/02/announcing-the-release-of-apache-flink-1.20/index.html b/content/2024/08/02/announcing-the-release-of-apache-flink-1.20/index.html
index acf445bb6d..697dbae70a 100644
--- a/content/2024/08/02/announcing-the-release-of-apache-flink-1.20/index.html
+++ b/content/2024/08/02/announcing-the-release-of-apache-flink-1.20/index.html
@@ -30,7 +30,7 @@ Standing on the Eve of Apache Flink 2.0 # Flink 1.0 was released eight years ago
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/09/05/apache-flink-cdc-3.2.0-release-announcement/index.html b/content/2024/09/05/apache-flink-cdc-3.2.0-release-announcement/index.html
index cce2d38cbd..53c5473140 100644
--- a/content/2024/09/05/apache-flink-cdc-3.2.0-release-announcement/index.html
+++ b/content/2024/09/05/apache-flink-cdc-3.2.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Flink CDC release packages are available at Releases Page, and documentations ar
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/10/23/preview-release-of-apache-flink-2.0/index.html b/content/2024/10/23/preview-release-of-apache-flink-2.0/index.html
index a22f43c9fc..596fdf3907 100644
--- a/content/2024/10/23/preview-release-of-apache-flink-2.0/index.html
+++ b/content/2024/10/23/preview-release-of-apache-flink-2.0/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/10/25/apache-flink-kubernetes-operator-1.10.0-release-announcement/index.html b/content/2024/10/25/apache-flink-kubernetes-operator-1.10.0-release-announcement/index.html
index 5af26b5e29..8694d43198 100644
--- a/content/2024/10/25/apache-flink-kubernetes-operator-1.10.0-release-announcement/index.html
+++ b/content/2024/10/25/apache-flink-kubernetes-operator-1.10.0-release-announcement/index.html
@@ -30,7 +30,7 @@ We encourage you to download the release and share your experience with the comm
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/11/25/introducing-the-new-amazon-kinesis-data-stream-and-amazon-dynamodb-stream-sources/index.html b/content/2024/11/25/introducing-the-new-amazon-kinesis-data-stream-and-amazon-dynamodb-stream-sources/index.html
index ee90d6066e..ee7e15fc10 100644
--- a/content/2024/11/25/introducing-the-new-amazon-kinesis-data-stream-and-amazon-dynamodb-stream-sources/index.html
+++ b/content/2024/11/25/introducing-the-new-amazon-kinesis-data-stream-and-amazon-dynamodb-stream-sources/index.html
@@ -28,7 +28,7 @@ The new KinesisStreamsSource replaces the legacy FlinkKinesisConsumer; and the n
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/11/27/apache-flink-cdc-3.2.1-release-announcement/index.html b/content/2024/11/27/apache-flink-cdc-3.2.1-release-announcement/index.html
index b20b352a74..1a81457bfb 100644
--- a/content/2024/11/27/apache-flink-cdc-3.2.1-release-announcement/index.html
+++ b/content/2024/11/27/apache-flink-cdc-3.2.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users to upgrade to Flink CDC 3." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2024/12/05/introducing-the-new-prometheus-connector/index.html b/content/2024/12/05/introducing-the-new-prometheus-connector/index.html
index 47b3635328..4dc62e1e2f 100644
--- a/content/2024/12/05/introducing-the-new-prometheus-connector/index.html
+++ b/content/2024/12/05/introducing-the-new-prometheus-connector/index.html
@@ -30,7 +30,7 @@ Motivations for a Prometheus connector # Prometheus is an efficient time-series
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/01/21/apache-flink-cdc-3.3.0-release-announcement/index.html b/content/2025/01/21/apache-flink-cdc-3.3.0-release-announcement/index.html
index 3f5508cfe4..8ff0949bd0 100644
--- a/content/2025/01/21/apache-flink-cdc-3.3.0-release-announcement/index.html
+++ b/content/2025/01/21/apache-flink-cdc-3.3.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Highlights # Connectors # New Pipeline Connectors # Flink CDC 3." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/02/12/apache-flink-1.19.2-release-announcement/index.html b/content/2025/02/12/apache-flink-1.19.2-release-announcement/index.html
index 34646fbaff..02e05a52e1 100644
--- a/content/2025/02/12/apache-flink-1.19.2-release-announcement/index.html
+++ b/content/2025/02/12/apache-flink-1.19.2-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.19.2." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/02/12/apache-flink-1.20.1-release-announcement/index.html b/content/2025/02/12/apache-flink-1.20.1-release-announcement/index.html
index d03ef4dfbe..18e1f77410 100644
--- a/content/2025/02/12/apache-flink-1.20.1-release-announcement/index.html
+++ b/content/2025/02/12/apache-flink-1.20.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.20.1." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announcement/index.html b/content/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announcement/index.html
index 0d67adc282..f450f591c8 100644
--- a/content/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announcement/index.html
+++ b/content/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Highlights # Flink 2.0 Preview Support # The Flink Kubernetes Operator and Autos
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/03/24/apache-flink-2.0.0-a-new-era-of-real-time-data-processing/index.html b/content/2025/03/24/apache-flink-2.0.0-a-new-era-of-real-time-data-processing/index.html
index a328aec2c9..37b9fbc9d0 100644
--- a/content/2025/03/24/apache-flink-2.0.0-a-new-era-of-real-time-data-processing/index.html
+++ b/content/2025/03/24/apache-flink-2.0.0-a-new-era-of-real-time-data-processing/index.html
@@ -28,7 +28,7 @@ In this release, 165 contributors have come together to complete 25 FLIPs (Flink
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/04/30/introducing-the-externalized-kudu-connector/index.html b/content/2025/04/30/introducing-the-externalized-kudu-connector/index.html
index 908e5a663d..e452c71bec 100644
--- a/content/2025/04/30/introducing-the-externalized-kudu-connector/index.html
+++ b/content/2025/04/30/introducing-the-externalized-kudu-connector/index.html
@@ -26,7 +26,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/05/16/apache-flink-cdc-3.4.0-release-announcement/index.html b/content/2025/05/16/apache-flink-cdc-3.4.0-release-announcement/index.html
index e3c8fa8c86..096efe656a 100644
--- a/content/2025/05/16/apache-flink-cdc-3.4.0-release-announcement/index.html
+++ b/content/2025/05/16/apache-flink-cdc-3.4.0-release-announcement/index.html
@@ -28,7 +28,7 @@ Flink CDC release packages are available at Releases Page, and documentations ar
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html b/content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html
index 1285b3db03..8520d92705 100644
--- a/content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html
+++ b/content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Highlights # Enhanced Error Visibility and Event Reporting # This release places
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/07/10/apache-flink-1.19.3-release-announcement/index.html b/content/2025/07/10/apache-flink-1.19.3-release-announcement/index.html
index 404cd297d5..2e2bcfd93f 100644
--- a/content/2025/07/10/apache-flink-1.19.3-release-announcement/index.html
+++ b/content/2025/07/10/apache-flink-1.19.3-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.19.3 or higher." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/07/10/apache-flink-1.20.2-release-announcement/index.html b/content/2025/07/10/apache-flink-1.20.2-release-announcement/index.html
index 270f327ea6..a4ce28e5ac 100644
--- a/content/2025/07/10/apache-flink-1.20.2-release-announcement/index.html
+++ b/content/2025/07/10/apache-flink-1.20.2-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.20.2 or higher." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/07/31/apache-flink-2.1.0-ushers-in-a-new-era-of-unified-real-time-data--ai-with-comprehensive-upgrades/index.html b/content/2025/07/31/apache-flink-2.1.0-ushers-in-a-new-era-of-unified-real-time-data--ai-with-comprehensive-upgrades/index.html
index 606769ee80..1221c5b155 100644
--- a/content/2025/07/31/apache-flink-2.1.0-ushers-in-a-new-era-of-unified-real-time-data--ai-with-comprehensive-upgrades/index.html
+++ b/content/2025/07/31/apache-flink-2.1.0-ushers-in-a-new-era-of-unified-real-time-data--ai-with-comprehensive-upgrades/index.html
@@ -28,7 +28,7 @@ Breakthroughs in Real-Time AI:" />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/index.html b/content/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/index.html
index bd844087c0..6c1e8c8e4f 100644
--- a/content/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/index.html
+++ b/content/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Flink CDC release packages are available at Releases Page, and documentations ar
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/index.html b/content/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/index.html
index a7d6e155a7..afe1777a3d 100644
--- a/content/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/index.html
+++ b/content/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Highlights # Flink 2.1 Support # The Flink Kubernetes Operator and Autoscaler 1.
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/10/09/apache-flink-1.20.3-release-announcement/index.html b/content/2025/10/09/apache-flink-1.20.3-release-announcement/index.html
index 9c27e27acd..7e90d0195b 100644
--- a/content/2025/10/09/apache-flink-1.20.3-release-announcement/index.html
+++ b/content/2025/10/09/apache-flink-1.20.3-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 1.20.3 or higher." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/10/14/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html b/content/2025/10/14/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html
index 3208108b47..399a124b32 100644
--- a/content/2025/10/14/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html
+++ b/content/2025/10/14/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html
@@ -28,7 +28,7 @@ Enter the Flink Dynamic Iceberg Sink, a powerful pattern for Apache Flink that a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/10/15/apache-flink-agents-0.1.0-release-announcement/index.html b/content/2025/10/15/apache-flink-agents-0.1.0-release-announcement/index.html
index e867f7bab3..d44c022fbb 100644
--- a/content/2025/10/15/apache-flink-agents-0.1.0-release-announcement/index.html
+++ b/content/2025/10/15/apache-flink-agents-0.1.0-release-announcement/index.html
@@ -28,7 +28,7 @@ What is Apache Flink Agents # Apache Flink Agents is a new sub-project of Apache
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/11/10/apache-flink-2.0.1-release-announcement/index.html b/content/2025/11/10/apache-flink-2.0.1-release-announcement/index.html
index 72e1f719e2..20bb6424f8 100644
--- a/content/2025/11/10/apache-flink-2.0.1-release-announcement/index.html
+++ b/content/2025/11/10/apache-flink-2.0.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 2." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/11/10/apache-flink-2.1.1-release-announcement/index.html b/content/2025/11/10/apache-flink-2.1.1-release-announcement/index.html
index 160011430f..ed4dc577d4 100644
--- a/content/2025/11/10/apache-flink-2.1.1-release-announcement/index.html
+++ b/content/2025/11/10/apache-flink-2.1.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink 2.1.1 or higher." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/11/11/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html b/content/2025/11/11/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html
index 75ac115ed5..ae20e905d7 100644
--- a/content/2025/11/11/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html
+++ b/content/2025/11/11/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/index.html
@@ -28,7 +28,7 @@ Enter the Flink Dynamic Iceberg Sink, a powerful pattern for Apache Flink that a
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/12/04/apache-flink-2.2.0-advancing-real-time-data--ai-and-empowering-stream-processing-for-the-ai-era/index.html b/content/2025/12/04/apache-flink-2.2.0-advancing-real-time-data--ai-and-empowering-stream-processing-for-the-ai-era/index.html
index 7688fcaa6c..eb3e5fa496 100644
--- a/content/2025/12/04/apache-flink-2.2.0-advancing-real-time-data--ai-and-empowering-stream-processing-for-the-ai-era/index.html
+++ b/content/2025/12/04/apache-flink-2.2.0-advancing-real-time-data--ai-and-empowering-stream-processing-for-the-ai-era/index.html
@@ -28,7 +28,7 @@ Apache Flink 2.2 ushers in the AI era by seamlessly integrating real-time data p
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/12/09/apache-flink-agents-0.1.1-release-announcement/index.html b/content/2025/12/09/apache-flink-agents-0.1.1-release-announcement/index.html
index cfe00e5aa2..71d9fc7171 100644
--- a/content/2025/12/09/apache-flink-agents-0.1.1-release-announcement/index.html
+++ b/content/2025/12/09/apache-flink-agents-0.1.1-release-announcement/index.html
@@ -30,7 +30,7 @@ We highly recommend all users upgrade to Flink-Agents 0." />
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2026/02/06/apache-flink-agents-0.2.0-release-announcement/index.html b/content/2026/02/06/apache-flink-agents-0.2.0-release-announcement/index.html
index 60c9e2e58f..02e2f46ddd 100644
--- a/content/2026/02/06/apache-flink-agents-0.2.0-release-announcement/index.html
+++ b/content/2026/02/06/apache-flink-agents-0.2.0-release-announcement/index.html
@@ -30,7 +30,7 @@ Download the release here. Find documentation and quickstart examples here. Note
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html b/content/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/index.html
similarity index 70%
copy from content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html
copy to content/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/index.html
index 1285b3db03..2ad2f8d8f7 100644
--- a/content/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/index.html
+++ b/content/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/index.html
@@ -11,26 +11,26 @@
<link rel="stylesheet" type="text/css" href="/font-awesome/css/font-awesome.min.css">
<script src="/js/anchor.min.js"></script>
<script src="/js/flink.js"></script>
-<link rel="canonical" href="https://flink.apache.org/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/">
+<link rel="canonical" href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<meta name="description" content="The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.12.0! The version brings a number of important fixes and improvements to both core and autoscaler modules.
-We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
-Highlights # Enhanced Error Visibility and Event Reporting # This release places a strong emphasis on improving the visibility and transparency of errors across the entire Flink Kubernetes Operator stack.">
-<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Apache Flink Kubernetes Operator 1.12.0 Release Announcement" />
-<meta property="og:description" content="The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.12.0! The version brings a number of important fixes and improvements to both core and autoscaler modules.
-We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
-Highlights # Enhanced Error Visibility and Event Reporting # This release places a strong emphasis on improving the visibility and transparency of errors across the entire Flink Kubernetes Operator stack." />
+<meta name="description" content="The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
+This release introduces a major new capability for production deployments: native Blue/Green deployment support. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.
+We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!">
+<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Apache Flink Kubernetes Operator 1.14.0 Release Announcement" />
+<meta property="og:description" content="The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
+This release introduces a major new capability for production deployments: native Blue/Green deployment support. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.
+We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!" />
<meta property="og:type" content="article" />
-<meta property="og:url" content="https://flink.apache.org/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/" /><meta property="article:section" content="posts" />
-<meta property="article:published_time" content="2025-06-03T18:00:00+00:00" />
-<meta property="article:modified_time" content="2025-06-03T18:00:00+00:00" />
-<title>Apache Flink Kubernetes Operator 1.12.0 Release Announcement | Apache Flink</title>
+<meta property="og:url" content="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/" /><meta property="article:section" content="posts" />
+<meta property="article:published_time" content="2026-02-15T18:00:00+00:00" />
+<meta property="article:modified_time" content="2026-02-15T18:00:00+00:00" />
+<title>Apache Flink Kubernetes Operator 1.14.0 Release Announcement | Apache Flink</title>
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -506,22 +506,22 @@ https://github.com/alex-shpak/hugo-book
<article class="markdown">
<h1>
- <a href="/2025/06/03/apache-flink-kubernetes-operator-1.12.0-release-announcement/">Apache Flink Kubernetes Operator 1.12.0 Release Announcement</a>
+ <a href="/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
</h1>
- June 3, 2025 -
+ February 15, 2026 -
- Gabor Somogyi
+ Sergio Chong Loo / Daniel Rossos
- <p><p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.12.0!
-The version brings a number of important fixes and improvements to both core and autoscaler modules.</p>
+ <p><p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!</p>
+<p>This release introduces a major new capability for production deployments: <strong>native Blue/Green deployment support</strong>. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.</p>
<p>We encourage you to <a href="https://flink.apache.org/downloads.html">download the release</a> and share your experience with the
community through the Flink <a href="https://flink.apache.org/community.html#mailing-lists">mailing lists</a> or
<a href="https://issues.apache.org/jira/browse/flink">JIRA</a>! We’re looking forward to your feedback!</p>
@@ -529,65 +529,82 @@ community through the Flink <a href="https://flink.apache.org/community.html#mai
Highlights
<a class="anchor" href="#highlights">#</a>
</h2>
-<h3 id="enhanced-error-visibility-and-event-reporting">
- Enhanced Error Visibility and Event Reporting
- <a class="anchor" href="#enhanced-error-visibility-and-event-reporting">#</a>
+<h3 id="bluegreen-deployments-for-flink-in-kubernetes">
+ Blue/Green Deployments for Flink in Kubernetes
+ <a class="anchor" href="#bluegreen-deployments-for-flink-in-kubernetes">#</a>
</h3>
-<p>This release places a strong emphasis on improving the visibility and transparency of errors across the entire Flink Kubernetes Operator stack. These improvements aim to significantly enhance the user experience by making error diagnosis and resolution faster and more intuitive.</p>
+<p>This new deployment strategy allows you to minimize risk and downtime when updating your streaming applications by maintaining two identical production environments.</p>
+<p>For Flink applications, Blue/Green deployments are particularly valuable for stateful streaming applications that require:</p>
<ul>
-<li>
-<p><strong>Comprehensive Event Reporting</strong>: Events are now emitted across all critical stages of the job lifecycle-from controller errors within the operator itself, to failures during job startup, and even runtime exceptions within Flink jobs. This end-to-end observability ensures that users are promptly informed of any issues that occur.</p>
-</li>
-<li>
-<p><strong>Detailed Error Messages</strong>: The operator now captures and surfaces more granular error messages for deployment and reconciliation failures. These messages are visible in the custom resource status and help users understand and address problems more effectively.</p>
-</li>
-<li>
-<p><strong>Automatic Kubernetes Event Generation</strong>: Whenever a job enters the <code>FAILED</code> state or restarts unexpectedly, the operator emits corresponding Kubernetes events. These events can be consumed by external monitoring systems or used directly in <code>kubectl</code> to monitor job health.</p>
-</li>
-<li>
-<p><strong>Improved Operator Diagnostics</strong>: Controller-level errors, which were previously difficult to trace, are now clearly reported and contextualized with helpful messages, allowing users and developers to better trace the root cause of failures.</p>
-</li>
+<li><strong>Zero-downtime upgrades</strong>: Continuous data processing without interruption</li>
+<li><strong>State preservation</strong>: Maintaining application state across deployments through savepoints</li>
+<li><strong>Safe rollback capability</strong>: Quick reversion to the previous version if issues arise</li>
+<li><strong>Validation before traffic switch</strong>: Ensuring the new deployment is running stable before it becomes active</li>
</ul>
-<p>These improvements make the Flink Kubernetes Operator more robust, transparent, and easier to operate, especially in complex or large-scale production environments.</p>
-<h3 id="helm-chart-improvements">
- Helm Chart Improvements
- <a class="anchor" href="#helm-chart-improvements">#</a>
-</h3>
+<p>The following diagrams illustrate how Blue/Green deployments work with the Flink Kubernetes Operator:</p>
+<div style="text-align: center; margin: 20px 0;">
+ <img src="/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-1.png" alt="Blue/Green deployment flow" style="max-width: 100%; height: auto;" />
+</div>
+<div style="text-align: center; margin: 20px 0;">
+ <img src="/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-2.png" alt="Blue/Green deployment architecture" style="max-width: 100%; height: auto;" />
+</div>
+<h4 id="getting-started-with-bluegreen-deployments">
+ Getting Started with Blue/Green Deployments
+ <a class="anchor" href="#getting-started-with-bluegreen-deployments">#</a>
+</h4>
+<p>Converting an existing <code>FlinkDeployment</code> to use Blue/Green deployments requires minimal changes to your resource definition. The following diagram illustrates the three key modifications needed:</p>
+<div style="text-align: center; margin: 20px 0;">
+ <img src="/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-modifications.png" alt="Key modifications for Blue/Green deployment" style="max-width: 100%; height: auto;" />
+</div>
+<p>The new <code>FlinkBlueGreenDeployment</code> custom resource provides a declarative way to manage Blue/Green deployments. Simply define your desired Flink application configuration in the <code>spec.template</code> section, and the operator handles the rest—including savepoint management, deployment coordination, and traffic switching.</p>
+<h4 id="example-scenarios">
+ Example Scenarios
+ <a class="anchor" href="#example-scenarios">#</a>
+</h4>
+<p>To help you understand how Blue/Green deployments behave in different situations, we’ve prepared baseline <code>FlinkBlueGreenDeployment</code> specifications that you can use to explore three common scenarios. <a href="https://github.com/apache/flink-kubernetes-operator/blob/main/e2e-tests/data/bluegreen-ingress.yaml">This example</a>, as well as any of the <code>bluegreen-*.yaml</code> specs in that location, is as great starting point.</p>
+<p>By modifying the spec and reapplying (via <code>kubectl apply</code> or editing the CR directly with <code>kubectl edit</code>), you can observe the different behaviors:</p>
+<p><strong>1. Triggering Blue-Green Transition</strong></p>
+<p>Modify the <code>spec.template.spec.flinkConfiguration.taskmanager.numberOfTaskSlots</code> field to trigger a Blue-Green transition. You’ll see:</p>
<ul>
-<li><strong>Flink <code>config.yaml</code> Support</strong>: The operator adds compatibility with Flink’s <code>config.yaml</code> format, ensuring seamless integration with the latest Flink configurations.</li>
-<li><strong>Upfront YAML Configuration Validation</strong>: Introduced validation for Flink 2.x configurations, enabling early detection of misconfigurations before deployment.</li>
-<li><strong>Init and Sidecar Container Configuration</strong>: Users can now configure init and sidecar containers within their deployments, offering greater flexibility in customizing the Flink runtime environment.</li>
-<li><strong>Observer Optimization</strong>: The observer component has been refined to avoid checking all JobManager replicas, reducing unnecessary overhead and improving performance.</li>
+<li>A new “green” FlinkDeployment spins up alongside the existing “blue” deployment</li>
+<li>Once the green deployment reaches a ready state, traffic switches over</li>
+<li>The previous “blue” FlinkDeployment is gracefully terminated</li>
+<li>The ingress automatically switches from blue to green service</li>
</ul>
-<h3 id="bug-fixes-and-stability-enhancements">
- Bug Fixes and Stability Enhancements
- <a class="anchor" href="#bug-fixes-and-stability-enhancements">#</a>
-</h3>
+<p><strong>2. In-Place Modification</strong></p>
+<p>Not all changes require a full Blue-Green transition. Modify the <code>spec.template.spec.flinkConfiguration.kubernetes.operator.savepoint.history.max.age</code> value to see an in-place update:</p>
+<ul>
+<li>No Blue-Green transition occurs</li>
+<li>The active FlinkDeployment picks up the configuration change directly</li>
+<li>Suitable for non-critical configuration updates</li>
+</ul>
+<p><strong>3. Suspend and Resume</strong></p>
+<p>Control your Flink job’s lifecycle by modifying <code>spec.template.spec.job.state</code> between <code>suspended</code> and <code>running</code>:</p>
<ul>
-<li><strong>Batch Job Completion Handling</strong>: Resolved an issue where finished batch jobs threw <code>ReconciliationException</code> and did not reach the FINISHED state in the custom resource.</li>
-<li><strong>Savepoint Information Update</strong>: Fixed a bug where upgrade savepoints were not added to the deprecated <code>savepointInfo</code>, ensuring accurate tracking of savepoints during upgrades.</li>
-<li><strong>Last-State Upgrade Mode for Flink 2.0</strong>: Addressed a problem where the last-state upgrade mode was broken for Flink 2.0, restoring expected behavior during upgrades.</li>
-<li><strong>Helm Chart Correction</strong>: Corrected the Helm chart to reference the valid image repository, preventing deployment issues related to incorrect image paths.</li>
+<li>Setting to <code>suspended</code> gracefully suspends the running FlinkDeployment</li>
+<li>The FlinkBlueGreenDeployment enters a suspended state</li>
+<li>Changing back to <code>running</code> restarts the Flink pipeline from the last savepoint</li>
</ul>
<h2 id="release-notes">
Release Notes
<a class="anchor" href="#release-notes">#</a>
</h2>
-<p>The full release notes can be found <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12355683">here</a>.</p>
+<p>The release notes can be found <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12356278">here</a>.</p>
<h2 id="release-resources">
Release Resources
<a class="anchor" href="#release-resources">#</a>
</h2>
-<p>The source artifacts and helm chart are available on the Downloads page of the Flink website. You can easily try out the new features shipped in the official 1.12.0 release by adding the Helm chart to your own local registry:</p>
-<pre tabindex="0"><code>$ helm repo add flink-kubernetes-operator-1.12.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.12.0/
-$ helm install flink-kubernetes-operator flink-kubernetes-operator-1.12.0/flink-kubernetes-operator --set webhook.create=false
+<p>The source artifacts and helm chart are available on the Downloads page of the Flink website. You can easily try out the new features shipped in the official 1.14.0 release by adding the Helm chart to your own local registry:</p>
+<pre tabindex="0"><code>$ helm repo add flink-kubernetes-operator-1.14.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.14.0/
+$ helm install flink-kubernetes-operator flink-kubernetes-operator-1.14.0/flink-kubernetes-operator --set webhook.create=false
</code></pre><p>You can also find official Kubernetes Operator Docker images of the new version on <a href="https://hub.docker.com/r/apache/flink-kubernetes-operator">Dockerhub</a>.</p>
-<p>For more details, check the <a href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.12/">updated documentation</a> and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.</p>
+<p>For more details, check the <a href="https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-release-1.14/">updated documentation</a> and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.</p>
<h2 id="list-of-contributors">
List of Contributors
<a class="anchor" href="#list-of-contributors">#</a>
</h2>
-<p>Andrea, Daren, David Kornel, Eduardas Kazakas, Gyula Fora, Nick Caballero, Rodrigo, Santwana Verma, Thomas Weise, ctrlaltdilj, pchoudhury22, siddr</p>
+<p>The Apache Flink community would like to thank all contributors who made this release possible:</p>
+<p>Arda Kuyumcu, Attila Mészáros, big face cat, Daniel Rossos, Ferenc Csaky, Gyula Fora, James Kan, Maksim Aniskov, Martijn Visser, Maximilian Michels, wang377</p>
</p>
</article>
@@ -602,7 +619,7 @@ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.12.0/flink-
<a href="https://cwiki.apache.org/confluence/display/FLINK/Flink+Translation+Specifications">Want to contribute translation?</a>
</p>
<p>
- <a href="//github.com/apache/flink-web/edit/asf-site/docs/content/posts/2025-06-03-release-kubernetes-operator-1.12.0.md">
+ <a href="//github.com/apache/flink-web/edit/asf-site/docs/content/posts/2026-02-16-release-kubernetes-operator-1.14.0.md">
Edit This Page<i class="fa fa-edit fa-fw"></i>
</a>
</p>
@@ -620,9 +637,7 @@ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.12.0/flink-
<ul>
<li><a href="#highlights">Highlights</a>
<ul>
- <li><a href="#enhanced-error-visibility-and-event-reporting">Enhanced Error Visibility and Event Reporting</a></li>
- <li><a href="#helm-chart-improvements">Helm Chart Improvements</a></li>
- <li><a href="#bug-fixes-and-stability-enhancements">Bug Fixes and Stability Enhancements</a></li>
+ <li><a href="#bluegreen-deployments-for-flink-in-kubernetes">Blue/Green Deployments for Flink in Kubernetes</a></li>
</ul>
</li>
<li><a href="#release-notes">Release Notes</a></li>
diff --git a/content/404.html b/content/404.html
index b2155c5b3b..20798e7221 100644
--- a/content/404.html
+++ b/content/404.html
@@ -15,7 +15,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/404.html" title="404 Page not found">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/categories/index.html b/content/categories/index.html
index 1bf7c47445..6004eb3c58 100644
--- a/content/categories/index.html
+++ b/content/categories/index.html
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/categories/" title="Categories">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/categories/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
diff --git a/content/documentation/flink-agents-master/index.html b/content/documentation/flink-agents-master/index.html
index f388a3a6a0..23ed4de04b 100644
--- a/content/documentation/flink-agents-master/index.html
+++ b/content/documentation/flink-agents-master/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-agents-master/" title="Agents Main (snapshot)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-agents-stable/index.html b/content/documentation/flink-agents-stable/index.html
index a74720603e..56aa24e302 100644
--- a/content/documentation/flink-agents-stable/index.html
+++ b/content/documentation/flink-agents-stable/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-agents-stable/" title="Agents 0.2 (latest)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-cdc-master/index.html b/content/documentation/flink-cdc-master/index.html
index 546e272cf2..da732087b9 100644
--- a/content/documentation/flink-cdc-master/index.html
+++ b/content/documentation/flink-cdc-master/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-cdc-master/" title="CDC Master (snapshot)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-cdc-stable/index.html b/content/documentation/flink-cdc-stable/index.html
index c9d0db43d5..b2580aa5c9 100644
--- a/content/documentation/flink-cdc-stable/index.html
+++ b/content/documentation/flink-cdc-stable/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-cdc-stable/" title="CDC 3.5 (stable)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-kubernetes-operator-master/index.html b/content/documentation/flink-kubernetes-operator-master/index.html
index 6dd6202efa..24ef4717c5 100644
--- a/content/documentation/flink-kubernetes-operator-master/index.html
+++ b/content/documentation/flink-kubernetes-operator-master/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-kubernetes-operator-master/" title="Kubernetes Operator Main (snapshot)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-kubernetes-operator-stable/index.html b/content/documentation/flink-kubernetes-operator-stable/index.html
index b4d8ffb7ad..a4264b1d53 100644
--- a/content/documentation/flink-kubernetes-operator-stable/index.html
+++ b/content/documentation/flink-kubernetes-operator-stable/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-kubernetes-operator-stable/" title="Kubernetes Operator 1.14 (latest)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-lts/index.html b/content/documentation/flink-lts/index.html
index 9fac76c3b6..e02d583ed4 100644
--- a/content/documentation/flink-lts/index.html
+++ b/content/documentation/flink-lts/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-lts/" title="Flink 1.20 (LTS)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-master/index.html b/content/documentation/flink-master/index.html
index 89e3b5470d..97913b5a17 100644
--- a/content/documentation/flink-master/index.html
+++ b/content/documentation/flink-master/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-master/" title="Flink Master (snapshot)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-stable/index.html b/content/documentation/flink-stable/index.html
index fbfc723bfc..b10a828453 100644
--- a/content/documentation/flink-stable/index.html
+++ b/content/documentation/flink-stable/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-stable/" title="Flink 2.2 (stable)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-stateful-functions-master/index.html b/content/documentation/flink-stateful-functions-master/index.html
index 0d0a2a8bfa..51b3612eb3 100644
--- a/content/documentation/flink-stateful-functions-master/index.html
+++ b/content/documentation/flink-stateful-functions-master/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-stateful-functions-master/" title="Stateful Functions Master (snapshot)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flink-stateful-functions-stable/index.html b/content/documentation/flink-stateful-functions-stable/index.html
index c29f0f4597..9f39e7687c 100644
--- a/content/documentation/flink-stateful-functions-stable/index.html
+++ b/content/documentation/flink-stateful-functions-stable/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flink-stateful-functions-stable/" title="Stateful Functions 3.3 (stable)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flinkml-master/index.html b/content/documentation/flinkml-master/index.html
index 0d5bee7fa6..fe5e741e86 100644
--- a/content/documentation/flinkml-master/index.html
+++ b/content/documentation/flinkml-master/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flinkml-master/" title="ML Master (snapshot)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/flinkml-stable/index.html b/content/documentation/flinkml-stable/index.html
index 2d45b37882..8c37766f4c 100644
--- a/content/documentation/flinkml-stable/index.html
+++ b/content/documentation/flinkml-stable/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/flinkml-stable/" title="ML 2.3 (stable)">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/documentation/index.html b/content/documentation/index.html
index ee11e5ec37..874bff7972 100644
--- a/content/documentation/index.html
+++ b/content/documentation/index.html
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/documentation/" title="Documentation">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/documentation/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
diff --git a/content/downloads/index.html b/content/downloads/index.html
index 4ae9219bc9..f73136ab90 100644
--- a/content/downloads/index.html
+++ b/content/downloads/index.html
@@ -42,7 +42,7 @@ Apache Flink 1.20.3 # Apache Flink 1." />
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/downloads/" title="Downloads">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/en.search-data.min.9245c94f5099aae1ac85e0a756bf0f8c255c31f98803db967bbaf76fe3d757d2.js b/content/en.search-data.min.3862d580c763015bcd440ab225f28e0bcaf0e73f6a7fe4edd3f6f1aeda453bfc.js
similarity index 99%
rename from content/en.search-data.min.9245c94f5099aae1ac85e0a756bf0f8c255c31f98803db967bbaf76fe3d757d2.js
rename to content/en.search-data.min.3862d580c763015bcd440ab225f28e0bcaf0e73f6a7fe4edd3f6f1aeda453bfc.js
index 02f6c32586..7e4b0d4fc3 100644
--- a/content/en.search-data.min.9245c94f5099aae1ac85e0a756bf0f8c255c31f98803db967bbaf76fe3d757d2.js
+++ b/content/en.search-data.min.3862d580c763015bcd440ab225f28e0bcaf0e73f6a7fe4edd3f6f1aeda453bfc.js
@@ -511,7 +511,29 @@ By default, Flink takes 10% of the JVM heap size for network buffers, with a min
Please refer to the Configuration Reference for details.
My job fails with various exceptions from the HDFS/Hadoop code. What can I do? # The most common cause for that is that the Hadoop version in Flink’s classpath is different than the Hadoop version of the cluster you want to connect to (HDFS / YARN).
The easiest way to fix that is to pick a Hadoop-free Flink version and simply export the Hadoop path and classpath from the cluster.
-`}),e.add({id:41,href:"/2026/02/06/apache-flink-agents-0.2.0-release-announcement/",title:"Apache Flink Agents 0.2.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is excited to announce the release of Apache Flink Agents 0.2.0.
+`}),e.add({id:41,href:"/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.14.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
+This release introduces a major new capability for production deployments: native Blue/Green deployment support. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.
+We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
+Highlights # Blue/Green Deployments for Flink in Kubernetes # This new deployment strategy allows you to minimize risk and downtime when updating your streaming applications by maintaining two identical production environments.
+For Flink applications, Blue/Green deployments are particularly valuable for stateful streaming applications that require:
+Zero-downtime upgrades: Continuous data processing without interruption State preservation: Maintaining application state across deployments through savepoints Safe rollback capability: Quick reversion to the previous version if issues arise Validation before traffic switch: Ensuring the new deployment is running stable before it becomes active The following diagrams illustrate how Blue/Green deployments work with the Flink Kubernetes Operator:
+Getting Started with Blue/Green Deployments # Converting an existing FlinkDeployment to use Blue/Green deployments requires minimal changes to your resource definition. The following diagram illustrates the three key modifications needed:
+The new FlinkBlueGreenDeployment custom resource provides a declarative way to manage Blue/Green deployments. Simply define your desired Flink application configuration in the spec.template section, and the operator handles the rest—including savepoint management, deployment coordination, and traffic switching.
+Example Scenarios # To help you understand how Blue/Green deployments behave in different situations, we’ve prepared baseline FlinkBlueGreenDeployment specifications that you can use to explore three common scenarios. This example, as well as any of the bluegreen-*.yaml specs in that location, is as great starting point.
+By modifying the spec and reapplying (via kubectl apply or editing the CR directly with kubectl edit), you can observe the different behaviors:
+1. Triggering Blue-Green Transition
+Modify the spec.template.spec.flinkConfiguration.taskmanager.numberOfTaskSlots field to trigger a Blue-Green transition. You’ll see:
+A new “green” FlinkDeployment spins up alongside the existing “blue” deployment Once the green deployment reaches a ready state, traffic switches over The previous “blue” FlinkDeployment is gracefully terminated The ingress automatically switches from blue to green service 2. In-Place Modification
+Not all changes require a full Blue-Green transition. Modify the spec.template.spec.flinkConfiguration.kubernetes.operator.savepoint.history.max.age value to see an in-place update:
+No Blue-Green transition occurs The active FlinkDeployment picks up the configuration change directly Suitable for non-critical configuration updates 3. Suspend and Resume
+Control your Flink job’s lifecycle by modifying spec.template.spec.job.state between suspended and running:
+Setting to suspended gracefully suspends the running FlinkDeployment The FlinkBlueGreenDeployment enters a suspended state Changing back to running restarts the Flink pipeline from the last savepoint Release Notes # The release notes can be found here.
+Release Resources # The source artifacts and helm chart are available on the Downloads page of the Flink website. You can easily try out the new features shipped in the official 1.14.0 release by adding the Helm chart to your own local registry:
+$ helm repo add flink-kubernetes-operator-1.14.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.14.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.14.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
+For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
+List of Contributors # The Apache Flink community would like to thank all contributors who made this release possible:
+Arda Kuyumcu, Attila Mészáros, big face cat, Daniel Rossos, Ferenc Csaky, Gyula Fora, James Kan, Maksim Aniskov, Martijn Visser, Maximilian Michels, wang377
+`}),e.add({id:42,href:"/2026/02/06/apache-flink-agents-0.2.0-release-announcement/",title:"Apache Flink Agents 0.2.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is excited to announce the release of Apache Flink Agents 0.2.0.
Get access to Flink Agents 0.2.0 now:
Download the release here. Find documentation and quickstart examples here. Note Agents 0.2.0 is a preview version, which means: Some functionalities may contain known or unknown issues. You can check the list of known issues and their resolution status via the Github Issues. The current APIs and configuration options are experimental and may undergo non-backward compatible changes in future versions. We greatly appreciate any feedback you can provide, whether it’s sharing how you& [...]
You may reach out to us via:
@@ -540,11 +562,11 @@ Flink Agents 0.2 now supports a wider range of Flink versions: 1.20, 2.0, 2.1, a
Note: We recommend always using the latest bugfix version (x.y.z) of your chosen Flink minor version (x.y), as it typically includes fixes for more known issues.
Breaking Changes # Python API The API for creating ResourceDescriptor has changed. In the previous version, users should indicate the resource provider by clazz=Type[Resource] In Flink Agents 0.2, users should indicate by clazz=ResourceName, and we provide constant strings for using built-in integrations. The execute_async method of RunnerContext has been changed to durable_execute_async. MCPTool, MCPPrompt and MCPServer are no longer considered as APIs, and have been moved out from the [...]
Alan Z., Eugene, Ioannis Stavrakantonakis, Liu Jiangang, Marcelo Colomer, Shekharrajak, Weiqing Yang, Wenjin Xie, Xiang Li, Xintong Song, Xuannan, Yash Anand, chouc, dependabot[bot], tsaiggo, twosom
-`}),e.add({id:42,href:"/2025/12/09/apache-flink-agents-0.1.1-release-announcement/",title:"Apache Flink Agents 0.1.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink-Agents 0.1 series.
+`}),e.add({id:43,href:"/2025/12/09/apache-flink-agents-0.1.1-release-announcement/",title:"Apache Flink Agents 0.1.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink-Agents 0.1 series.
This release includes 11 bug fixes, vulnerability fixes, and minor improvements for Flink-Agents 0.1. Below you will find a list of all bug fixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes, please see: ISSUE.
We highly recommend all users upgrade to Flink-Agents 0.1.1.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-agents-api</artifactId> <version>0.1.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-agents-integrations-chat-models-ollama</artifactId> <version>0.1.1</version> </dependency> Binaries # You can find the binaries on the updated downloads page.
-PyPi # flink-agents==0.1.1 Release Notes # Release Notes - Flink-Agents - Version 0.1.1 Bug [276] - Python code under e2e_test cannot import the mcp module [284] - Tongyi model failed to handle tool calls [293] - The test case fails to run on Windows [296] - Failed to load Flink legacy yaml config [297] - PythonActionTask failed to serialize for Flink state [323] - Ollama4j can't work with ollama v0.12.10 and above [325] - Invalid JSON in product_review.txt line 2488 [336] - Tool call do [...]
+PyPi # flink-agents==0.1.1 Release Notes # Release Notes - Flink-Agents - Version 0.1.1 Bug [276] - Python code under e2e_test cannot import the mcp module [284] - Tongyi model failed to handle tool calls [293] - The test case fails to run on Windows [296] - Failed to load Flink legacy yaml config [297] - PythonActionTask failed to serialize for Flink state [323] - Ollama4j can't work with ollama v0.12.10 and above [325] - Invalid JSON in product_review.txt line 2488 [336] - Tool call do [...]
Apache Flink 2.2 ushers in the AI era by seamlessly integrating real-time data processing with artificial intelligence. It introduces ML_PREDICT for large language model inference and VECTOR_SEARCH for real-time vector similarity search, empowering streaming AI applications. Enhanced features like Materialized Tables, Delta Joins, balanced task scheduling, and smarter connectors (including rate limiting and skew-aware split assignment) significantly boost performance, scalability, and re [...]
Let’s dive into the highlights.
Flink SQL Improvements # Realtime AI Function # Apache Flink has supported leveraging LLM capabilities through the ML_PREDICT function in Flink SQL since version 2.1, enabling users to perform semantic analysis in a simple and efficient way. In Flink 2.2, the Table API also supports model inference operations that allow you to integrate machine learning models directly into your data processing pipelines. You can create models with specific providers (like OpenAI) and use them to make pr [...]
@@ -592,7 +614,7 @@ More Information
FLINK-38547 Upgrade Notes # The Flink community tries to ensure that upgrades are as seamless as possible. However, certain changes may require users to make adjustments to certain parts of the program when upgrading to version 2.2. Please refer to the release notes for a comprehensive list of adjustments to make and issues to check during the upgrading process.
List of Contributors # The Apache Flink community would like to express gratitude to all the contributors who made this release possible:
Alan Sheinberg, Aleksandr Iushmanov, AlexYinHan, Arvid Heise, CuiYanxiang, David Hotham, David Radley, Dawid Wysakowicz, Dian Fu, Etienne Chauchot, Ferenc Csaky, Gabor Somogyi, Gustavo de Morais, Hang Ruan, Hao Li, Hongshun Wang, Jackeyzhe, Jakub Stejskal, Jiaan Geng, Jinkun Liu, Juntao Zhang, Kaiqi Dong, Khaled Hammouda, Kumar Mallikarjuna, Kunni, Laffery, Mario Petruccelli, Martijn Visser, Mate Czagany, Maximilian Michels, Mika Naylor, Mingliang Liu, Myracle, Naci Simsek, Natea Eshetu [...]
-`}),e.add({id:44,href:"/2025/11/11/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/",title:"From Stream to Lakehouse: Kafka Ingestion with the Flink Dynamic Iceberg Sink",section:"Flink Blog",content:`Ingesting thousands of evolving Kafka topics into a lakehouse often creates complex, brittle pipelines that require constant manual intervention as its write patterns change. But what if your ingestion pipeline could adapt on its own, with zero downtime?
+`}),e.add({id:45,href:"/2025/11/11/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/",title:"From Stream to Lakehouse: Kafka Ingestion with the Flink Dynamic Iceberg Sink",section:"Flink Blog",content:`Ingesting thousands of evolving Kafka topics into a lakehouse often creates complex, brittle pipelines that require constant manual intervention as its write patterns change. But what if your ingestion pipeline could adapt on its own, with zero downtime?
Enter the Flink Dynamic Iceberg Sink, a powerful pattern for Apache Flink that allows users to write streaming data into multiple Iceberg tables—dynamically, efficiently, and with full schema evolution support. The sink can create and write to new tables based on instructions within the records themselves. As the schema of incoming records evolves, the dynamic sink automatically evolves the Iceberg table schema in the lakehouse. It can even adapt to changes in the table’s partition [...]
In this post, we’ll guide you through building this exact system. We will start by exploring the limitations of traditional, static pipelines and then demonstrate how the dynamic sink pattern provides a robust, scalable solution. We’ll focus on a common use case: ingesting Kafka data with dynamic Avro schemas sourced from a Confluent Schema Registry. By the end, you’ll have a blueprint for building a scalable, self-adapting ingestion layer that eliminates operational to [...]
The Building Block: A Simple Kafka-to-Iceberg Pipeline # Let’s start with the basics. Our goal is to get data from a single Kafka topic into a corresponding Iceberg table.
@@ -627,11 +649,11 @@ Major development efforts were led by Maximilian Michels, with contributions fro
Conclusion # In conclusion, the choice between a dynamic and a static Iceberg sink represents a trade-off between operational agility and the performance benefits of static bindings. While a simple, static Kafka-to-Iceberg sink is a performant and straightforward solution for stable data environments, the Dynamic Iceberg Sink pattern helps manage the complexity and velocity of frequently changing data.
The most significant advantage of the Dynamic Sink is its ability to reduce operational burden by automating schema evolution. By leveraging a central schema registry, new schema versions can be published without any direct intervention in the Flink application. The dynamic sink detects these changes and adapts the downstream Iceberg table schema on the fly, eliminating the need for manual code changes, configuration updates, and disruptive job restarts. This creates a truly resilient an [...]
Furthermore, the dynamic sink enables powerful, data-driven logic, such as routing records to different tables based on signals within the data itself. This facilitates advanced use cases like multi-tenant data segregation or event-type-based routing without needing to pre-configure every possible outcome.
-`}),e.add({id:45,href:"/2025/11/10/apache-flink-2.0.1-release-announcement/",title:"Apache Flink 2.0.1 Release Announcement",section:"Flink Blog",content:"The Apache Flink Community is pleased to announce the first bug fix release of the Flink 2.0 series.\nThis release includes 51 bug fixes, vulnerability fixes, and minor improvements for Flink 2.0. Below you will find a list of all bug fixes and improvements (excluding improvements to the build infrastructure and build stability). For a [...]
+`}),e.add({id:46,href:"/2025/11/10/apache-flink-2.0.1-release-announcement/",title:"Apache Flink 2.0.1 Release Announcement",section:"Flink Blog",content:"The Apache Flink Community is pleased to announce the first bug fix release of the Flink 2.0 series.\nThis release includes 51 bug fixes, vulnerability fixes, and minor improvements for Flink 2.0. Below you will find a list of all bug fixes and improvements (excluding improvements to the build infrastructure and build stability). For a [...]
This release includes 25 bug fixes, vulnerability fixes, and minor improvements for Flink 2.1. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 2.1.1 or higher.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>2.1.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-client [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==2.1.1 Release Notes # Release Notes - Flink - Version 2.1.1 Bug [FLINK-34094] - Document new AsyncScalarFunction [FLINK-38149] - Convert COLUMN_LIST to DescriptorType [FLINK-38219] - Manipulate state in MultiJoin with fixed row kind [FLINK-38220] - Adjust JoinToMultiJoinRule to support different types of source [FLINK-16686] - [State TTL] Make user class loader available in native RocksDB c [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==2.1.1 Release Notes # Release Notes - Flink - Version 2.1.1 Bug [FLINK-34094] - Document new AsyncScalarFunction [FLINK-38149] - Convert COLUMN_LIST to DescriptorType [FLINK-38219] - Manipulate state in MultiJoin with fixed row kind [FLINK-38220] - Adjust JoinToMultiJoinRule to support different types of source [FLINK-16686] - [State TTL] Make user class loader available in native RocksDB c [...]
What is Apache Flink Agents # Apache Flink Agents is a new sub-project of Apache Flink for building event-driven AI agents directly on Flink’s streaming runtime. It unifies stream processing and autonomous agents in one framework, combining Flink’s proven strengths – scale, low latency, fault tolerance, and state management – with agent capabilities – LLMs, tools, memory, and dynamic orchestration.
Why Apache Flink Agents Matters # While AI agents have made rapid progress in interactive applications like chatbots and copilots, these systems typically operate in synchronous, one-off interactions. Many business use cases cannot wait for a user to prompt them into action. In industrial settings such as e-commerce, finance, IoT, and logistics, critical decisions must be made instantly in response to live events like a payment failure, a sensor anomaly, or a user click.
To succeed in production, enterprise agents must be capable of:
@@ -646,7 +668,7 @@ Some functionalities may contain known or unknown issues. You can check the list
You may reach out to us via:
Join the Apache Flink Slack and ask for help in #flink-agents-user. Post feature requirements and bug reports at Github Issues. Share your use case and ideas at Github Discussions. List of Contributors # The Apache Flink community would like to thank each and every one of the contributors that have made this release possible:
Adem Amen Thabti, Alan Z., Eugene, Hao Li, HuangXingBo, Kavishankarks, KeGu-069, Letao Jiang, Qingsheng Ren, Richard, Wenjin Xie, Xintong Song, Xu Huang, Xuannan, twosom, yanand0909, zhaomin1423
-`}),e.add({id:48,href:"/2025/10/14/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/",title:"From Stream to Lakehouse: Kafka Ingestion with the Flink Dynamic Iceberg Sink",section:"Flink Blog",content:`Ingesting thousands of evolving Kafka topics into a lakehouse often creates complex, brittle pipelines that require constant manual intervention as its write patterns change. But what if your ingestion pipeline could adapt on its own, with zero downtime?
+`}),e.add({id:49,href:"/2025/10/14/from-stream-to-lakehouse-kafka-ingestion-with-the-flink-dynamic-iceberg-sink/",title:"From Stream to Lakehouse: Kafka Ingestion with the Flink Dynamic Iceberg Sink",section:"Flink Blog",content:`Ingesting thousands of evolving Kafka topics into a lakehouse often creates complex, brittle pipelines that require constant manual intervention as its write patterns change. But what if your ingestion pipeline could adapt on its own, with zero downtime?
Enter the Flink Dynamic Iceberg Sink, a powerful pattern for Apache Flink that allows users to write streaming data into multiple Iceberg tables—dynamically, efficiently, and with full schema evolution support. The sink can create and write to new tables based on instructions within the records themselves. As the schema of incoming records evolves, the dynamic sink automatically evolves the Iceberg table schema in the lakehouse. It can even adapt to changes in the table’s partition [...]
In this post, we’ll guide you through building this exact system. We will start by exploring the limitations of traditional, static pipelines and then demonstrate how the dynamic sink pattern provides a robust, scalable solution. We’ll focus on a common use case: ingesting Kafka data with dynamic Avro schemas sourced from a Confluent Schema Registry. By the end, you’ll have a blueprint for building a scalable, self-adapting ingestion layer that eliminates operational to [...]
The Building Block: A Simple Kafka-to-Iceberg Pipeline # Let’s start with the basics. Our goal is to get data from a single Kafka topic into a corresponding Iceberg table.
@@ -681,11 +703,11 @@ Major development efforts were led by Maximilian Michels, with contributions fro
Conclusion # In conclusion, the choice between a dynamic and a static Iceberg sink represents a trade-off between operational agility and the performance benefits of static bindings. While a simple, static Kafka-to-Iceberg sink is a performant and straightforward solution for stable data environments, the Dynamic Iceberg Sink pattern helps manage the complexity and velocity of frequently changing data.
The most significant advantage of the Dynamic Sink is its ability to reduce operational burden by automating schema evolution. By leveraging a central schema registry, new schema versions can be published without any direct intervention in the Flink application. The dynamic sink detects these changes and adapts the downstream Iceberg table schema on the fly, eliminating the need for manual code changes, configuration updates, and disruptive job restarts. This creates a truly resilient an [...]
Furthermore, the dynamic sink enables powerful, data-driven logic, such as routing records to different tables based on signals within the data itself. This facilitates advanced use cases like multi-tenant data segregation or event-type-based routing without needing to pre-configure every possible outcome.
-`}),e.add({id:49,href:"/2025/10/09/apache-flink-1.20.3-release-announcement/",title:"Apache Flink 1.20.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.20 series.
+`}),e.add({id:50,href:"/2025/10/09/apache-flink-1.20.3-release-announcement/",title:"Apache Flink 1.20.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.20 series.
This release includes 16 bug fixes, vulnerability fixes, and minor improvements for Flink 1.20. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.20.3 or higher.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.20.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.20.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.20.3 Release Notes # Release Notes - Flink - Version 1.20.3 Bug [FLINK-37181] - Failed to validate Maven wrapper SHA-256 on MacOS with mvnw [FLINK-37747] - GlobalCommitterOperator cannot commit after scaling writer/committer [FLINK-38035] - Security Vulnerability in PyFlink Logging Mechanism (PythonEnvUtils.java) [FLINK-38098] - When submitting a task with the flink run command, adding th [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.20.3 Release Notes # Release Notes - Flink - Version 1.20.3 Bug [FLINK-37181] - Failed to validate Maven wrapper SHA-256 on MacOS with mvnw [FLINK-37747] - GlobalCommitterOperator cannot commit after scaling writer/committer [FLINK-38035] - Security Vulnerability in PyFlink Logging Mechanism (PythonEnvUtils.java) [FLINK-38098] - When submitting a task with the flink run command, adding th [...]
We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
Highlights # Flink 2.1 Support # The Flink Kubernetes Operator and Autoscaler 1.13.0 brings support for Flink 2.1 version.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: image: flink:2.1 flinkVersion: v2_1 # ... Structured YAML Configuration Support # Starting with Flink Kubernetes Operator 1.13.0, it is possible to define the flinkConfiguration in a structured YAML format as well. This feature operates independently of Flink’s core configuration handling and is therefore not affected by the defined Flink version.
@@ -694,12 +716,12 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.13.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.13.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.13.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Andrei Kaigorodov, Attila Mészáros, David Kornel, Ferenc Csaky, Gabor Somogyi, GuoYu, Gyula Fora, Kumar Mallikarjuna, Mate Czagany, Michał Fijołek, nishita-09, Santwana Verma, schongloo, Yi Chen
-`}),e.add({id:51,href:"/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/",title:"Apache Flink CDC 3.5.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is excited to announce the release of Flink CDC 3.5.0!
+`}),e.add({id:52,href:"/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/",title:"Apache Flink CDC 3.5.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is excited to announce the release of Flink CDC 3.5.0!
This release introduces new pipeline connectors for Apache Fluss and PostgreSQL, and improves usability in multi-tables (with frequent table structure changes) synchronization scenario, many issues encountered in the transform and Schema evolution frameworks have also been fixed.
Flink CDC release packages are available at Releases Page, and documentations are available at Flink CDC documentation page. Looking forward to any feedback from the community through the Flink mailing lists or JIRA!
Highlights # Pipeline Core # Schema Evolution Optimization # [FLINK-38045] During job failover, reissue the schema information stored in the state of Source to enhance the correctness of handling schema changes and make transform operator stateless. [FLINK-38243][FLINK-38244] Properly handle schema evolution for case-sensitive table and column names. Transform Enhancement # FLINK-38079] Enhance precision support for DATE and TIME types to improve temporal handling in built-in and user-de [...]
Sachin Mittal, suhwan, Lanny Boarts, hql0312, yuanoOo, gongzhongqiang, Kunni, North Lin, suntectec, SeungMin, ChengJie1053, kangzai, Ihor Mielientiev, Vinh Pham, wudi, Marta Paes, Shawn Huang, zhangchao.doovvv, linjc13, Sergei Morozov, MOBIN, Junbo Wang, junmuz, lvyanquan, Thorne, zhuxt2015, Xin Gong, linjianchang, tbpure, Tianzhu Wen, yuxiqian.yxq, Naci Simsek, Мухутдинов Артур, Hongshun Wang, proletarians, wangjunbo, Chao Zhang, ouyangwulin, Hang Ruan, Junbo wang, yuxiqian, wuzexian
-`}),e.add({id:52,href:"/2025/07/31/apache-flink-2.1.0-ushers-in-a-new-era-of-unified-real-time-data--ai-with-comprehensive-upgrades/",title:"Apache Flink 2.1.0: Ushers in a New Era of Unified Real-Time Data + AI with Comprehensive Upgrades",section:"Flink Blog",content:`The Apache Flink PMC is proud to announce the release of Apache Flink 2.1.0. This marks a significant milestone in the evolution of the real-time data processing engine into a unified Data + AI platform. This release brin [...]
+`}),e.add({id:53,href:"/2025/07/31/apache-flink-2.1.0-ushers-in-a-new-era-of-unified-real-time-data--ai-with-comprehensive-upgrades/",title:"Apache Flink 2.1.0: Ushers in a New Era of Unified Real-Time Data + AI with Comprehensive Upgrades",section:"Flink Blog",content:`The Apache Flink PMC is proud to announce the release of Apache Flink 2.1.0. This marks a significant milestone in the evolution of the real-time data processing engine into a unified Data + AI platform. This release brin [...]
Breakthroughs in Real-Time AI:
Introduces AI Model DDL, enabling flexible management of AI models through Flink SQL and the Table API.
Extends the ML_PREDICT Table-Valued Function (TVF), empowering real-time invocation of AI models within Flink SQL, laying the foundation for building end-to-end real-time AI workflows.
@@ -756,19 +778,19 @@ More Information
FLINK-37760 Upgrade Notes # The Flink community tries to ensure that upgrades are as seamless as possible. However, certain changes may require users to make adjustments to certain parts of the program when upgrading to version 2.1. Please refer to the release notes for a comprehensive list of adjustments to make and issues to check during the upgrading process.
List of Contributors # The Apache Flink community would like to express gratitude to all the contributors who made this release possible:
Ahmed Hamdy, Alan Sheinberg, Aleksandr Iushmanov, Aleksandr Savonin, AlexYinHan, Ammu Parvathy, Anupam Aggarwal, Ao Li, Arvid Heise, Au-Miner, Benchao Li, Bonnie Varghese, Chris, David Moravek, David Radley, David Wang, Dawid Wysakowicz, Dian Fu, Efrat Levitan, Feng Jin, Ferenc Csaky, Francesco Di Chiara, Gabor Somogyi, Gunnar Morling, Gustavo de Morais, Hangxiang Yu, Hao Li, Hongjia Liang, HuangXingBo, Jiaan Geng, Jiabao Sun, Jiangjie (Becket) Qin, Joery, JunRuiLee, Junrui Lee, Juntao Z [...]
-`}),e.add({id:53,href:"/2025/07/10/apache-flink-1.19.3-release-announcement/",title:"Apache Flink 1.19.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the third bug fix release of the Flink 1.19 series.
+`}),e.add({id:54,href:"/2025/07/10/apache-flink-1.19.3-release-announcement/",title:"Apache Flink 1.19.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the third bug fix release of the Flink 1.19 series.
This release includes 14 bug fixes, vulnerability fixes, and minor improvements for Flink 1.19. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.19.3 or higher.
Note: This release contains an improvement regarding how the Adaptive Scheduler works by default on Kubernetes deployments. Beforehand, in case of a downscaling, the Adaptive Scheduler was not striving to minimize the active TaskManager number, and free up resources even if it would have been possible. This logic is now changed and by default the Adaptive Scheduler will try to maximize TaskManager utilization during a downscale event to be able to minimize the necessary TaskManager number.
Although this behavioral change pushes the boundaries of a patch release, the community agreed that the applied default is expected in the vast majority of use-cases. To keep the previous strategy, make sure you set the jobmanager.adaptive-scheduler.prefer-minimal-taskmanagers configuration option to false. For more details, please see FLINK-33977.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.19.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.19.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.19.3 Release Notes # Release Notes - Flink - Version 1.19.3 Bug [FLINK-34227] - Job doesn't disconnect from ResourceManager [FLINK-36549] - Using the ignore-parse-errors parameter in Debezium/Canal/Maxwell/Ogg JSON results in unexpected data loss. [FLINK-37505] - Pyflink is not able to handle the new YAML based configs [FLINK-37605] - SinkWriter may incorrectly infer end of input duri [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.19.3 Release Notes # Release Notes - Flink - Version 1.19.3 Bug [FLINK-34227] - Job doesn't disconnect from ResourceManager [FLINK-36549] - Using the ignore-parse-errors parameter in Debezium/Canal/Maxwell/Ogg JSON results in unexpected data loss. [FLINK-37505] - Pyflink is not able to handle the new YAML based configs [FLINK-37605] - SinkWriter may incorrectly infer end of input duri [...]
This release includes 25 bug fixes, vulnerability fixes, and minor improvements for Flink 1.20. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.20.2 or higher.
Note: This release contains an improvement regarding how the Adaptive Scheduler works by default on Kubernetes deployments. Beforehand, in case of a downscaling, the Adaptive Scheduler was not striving to minimize the active TaskManager number, and free up resources even if it had been possible. This logic is now changed and by default the Adaptive Scheduler will try to maximize TaskManager utilization during a downscale event to be able to minimize the necessary TaskManager number.
Although this behavioral change pushes the boundaries of a patch release, the community agreed that the applied default is expected in the vast majority of use cases. To keep the previous strategy, make sure you set the jobmanager.adaptive-scheduler.prefer-minimal-taskmanagers configuration option to false. For more details, please see FLINK-33977.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.20.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.20.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.20.2 Release Notes # Release Notes - Flink - Version 1.20.2 Bug [FLINK-30687] - FILTER not effect in count(*) [FLINK-34227] - Job doesn't disconnect from ResourceManager [FLINK-35117] - AsyncScalarFunction has a dependency issue. [FLINK-35687] - JSON_QUERY should return a well formatted nested objects/arrays for ARRAY<STRING> [FLINK-36549] - Using the ignore-parse-errors paramet [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.20.2 Release Notes # Release Notes - Flink - Version 1.20.2 Bug [FLINK-30687] - FILTER not effect in count(*) [FLINK-34227] - Job doesn't disconnect from ResourceManager [FLINK-35117] - AsyncScalarFunction has a dependency issue. [FLINK-35687] - JSON_QUERY should return a well formatted nested objects/arrays for ARRAY<STRING> [FLINK-36549] - Using the ignore-parse-errors paramet [...]
We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
Highlights # Enhanced Error Visibility and Event Reporting # This release places a strong emphasis on improving the visibility and transparency of errors across the entire Flink Kubernetes Operator stack. These improvements aim to significantly enhance the user experience by making error diagnosis and resolution faster and more intuitive.
Comprehensive Event Reporting: Events are now emitted across all critical stages of the job lifecycle-from controller errors within the operator itself, to failures during job startup, and even runtime exceptions within Flink jobs. This end-to-end observability ensures that users are promptly informed of any issues that occur.
@@ -781,7 +803,7 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.12.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.12.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.12.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Andrea, Daren, David Kornel, Eduardas Kazakas, Gyula Fora, Nick Caballero, Rodrigo, Santwana Verma, Thomas Weise, ctrlaltdilj, pchoudhury22, siddr
-`}),e.add({id:56,href:"/2025/05/16/apache-flink-cdc-3.4.0-release-announcement/",title:"Apache Flink CDC 3.4.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is excited to announce the release of Flink CDC 3.4.0! This release introduces a new pipeline Connector for Apache Iceberg, and provides support for batch execution mode, many issues encountered in the transform and Schema evolution frameworks have also been fixed.
+`}),e.add({id:57,href:"/2025/05/16/apache-flink-cdc-3.4.0-release-announcement/",title:"Apache Flink CDC 3.4.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is excited to announce the release of Flink CDC 3.4.0! This release introduces a new pipeline Connector for Apache Iceberg, and provides support for batch execution mode, many issues encountered in the transform and Schema evolution frameworks have also been fixed.
Flink CDC release packages are available at Releases Page, and documentations are available at Flink CDC documentation page. Looking forward to any feedback from the community through the Flink mailing lists or JIRA!
Highlights # Pipeline Core # Schema Evolution Optimization # Optimized the situation where a large number of CreateTableEvents were sent and processed when a job is started. Optimized the situation where it takes a long time to wait when processing multiple SchemaChangeEvents. Transform Enhancement # Transform arithmetic functions support parameters of null and more numerical types. Fix failure of adding a new column that has the same column name with source table using transform. Batch [...]
Yarn Application Mode # Users can submit job though Cli with command ./bin/flink-cdc.sh -t yarn-application to run job in YARN application mode.
@@ -789,13 +811,13 @@ Pipeline Connectors # Apache Iceberg # Flink CDC 3.4.0 introduces 1 new pipeline
Iceberg sink. Iceberg is a high-performance format for huge analytic tables. Iceberg brings the reliability and simplicity of SQL tables to big data, while making it possible for engines like Spark, Trino, Flink, Presto, Hive and Impala to safely work with the same tables, at the same time. In this version, Iceberg is supported to be the downstream for Pipeline jobs. Apache Paimon # Bump Paimon version to 1.0.1. Add support for writing to Append Only table. Write full changelog to Paimon [...]
List of Contributors # We would like to express gratitude to all the contributors working on this release:
911432, chenhongyu, ConradJam, Ferenc Csaky, gongzhongqiang, Hang Ruan, He Wang, hiliuxg, Hongshun Wang, Jason Zhang, Jiabao Sun, Junbo Wang, Jzjsnow, Kevin Caesar, Kevin Wang, Kunni, Leonard Xu, lidoudou1993, linjianchang, liuxiaodong, lvyanquan, lzshlzsh, MOBIN-F, moses, North Lin, Olivier, ouyangwulin, Petrichor, proletarians, qinghuanwang, Qingsheng Ren, Robin Moffatt, Runkang He, Sergei Morozov, Seung-Min Lee, Shawn Huang, stayrascal, Thorne, Timi, Umesh Dangat, Vincent-Woo, Vinh Ph [...]
-`}),e.add({id:57,href:"/2025/04/30/introducing-the-externalized-kudu-connector/",title:"Introducing the Externalized Kudu Connector",section:"Flink Blog",content:`We are pleased to announce the revival of a connector that makes it possible for Flink to interact with Apache Kudu. The original connector existed as part of the Apache Bahir project, which was moved into the attic. Despite this, we saw interest to keep the Kudu connector updated, hence the community agreed to externalize it a [...]
+`}),e.add({id:58,href:"/2025/04/30/introducing-the-externalized-kudu-connector/",title:"Introducing the Externalized Kudu Connector",section:"Flink Blog",content:`We are pleased to announce the revival of a connector that makes it possible for Flink to interact with Apache Kudu. The original connector existed as part of the Apache Bahir project, which was moved into the attic. Despite this, we saw interest to keep the Kudu connector updated, hence the community agreed to externalize it a [...]
Highlights # The connector is built on the already existing Apache Bahir code. The existing DataStream connector is updated to Sink V2 API. New DataStream Source API connector implementation. The Table API source and sink connectors are now using the new Schema stack. The first released connector version is 2.0.0, and it supports Flink 1.19, and 1.20. DataStream Source API # The Source API implementation is a net new addition to the externalized connector, and it brings some interesting [...]
KuduSource<Row> source = KuduSource.<Row>builder() .setTableInfo(...) .setReaderConfig(...) .setRowResultConverter(new RowResultRowConverter()) .setBoundedness(Boundedness.CONTINUOUS_UNBOUNDED) .setDiscoveryPeriod(Duration.ofMinutes(1)) .build(); For more details and examples, see the DataStream connector documentation
Table API Catalog # The connector includes a catalog implementation designed to manage metadata for your Kudu setup and facilitate table operations. With the Kudu catalog, you can access all existing Kudu tables directly through Flink SQL queries. Such catalog can be defined in Flink SQL, as part of the Java application, or via a YAML catalog descriptor as well. The below example shows a minimal example in Filnk SQL.
CREATE CATALOG my_kudu_catalog WITH( 'type' = 'kudu', 'masters' = 'localhost:7051', 'default-database' = 'default_database' ); USE CATALOG my_kudu_catalog; For other Table API related topics and examples, see the Table API connector documentation
Release Notes # Sub-task # [FLINK-34929] - Create “flink-connector-kudu” repository [FLINK-34930] - Move existing Kudu connector code from Bahir repo to dedicated repo [FLINK-34931] - Update Kudu DataStream connector to use Sink V2 [FLINK-35114] - Remove old Table API implementations, update Schema stack [FLINK-35350] - Add documentation for Kudu connector [FLINK-37389] - Add “flink-sql-connector-kudu” module New Feature # [FLINK-36855] - Implement Source API in K [...]
-`}),e.add({id:58,href:"/2025/03/24/apache-flink-2.0.0-a-new-era-of-real-time-data-processing/",title:"Apache Flink 2.0.0: A new Era of Real-Time Data Processing",section:"Flink Blog",content:`Today, the Flink PMC is proud to announce the official release of Apache Flink 2.0.0! This marks the first release in the Flink 2.x series and is the first major release since Flink 1.0 launched nine years ago. This version is the culmination of two years of meticulous preparation and collaboration, [...]
+`}),e.add({id:59,href:"/2025/03/24/apache-flink-2.0.0-a-new-era-of-real-time-data-processing/",title:"Apache Flink 2.0.0: A new Era of Real-Time Data Processing",section:"Flink Blog",content:`Today, the Flink PMC is proud to announce the official release of Apache Flink 2.0.0! This marks the first release in the Flink 2.x series and is the first major release since Flink 1.0 launched nine years ago. This version is the culmination of two years of meticulous preparation and collaboration, [...]
In this release, 165 contributors have come together to complete 25 FLIPs (Flink Improvement Proposals) and 369 issues. We extend our heartfelt gratitude to all contributors for their invaluable contributions to this milestone release!
Over the past decade, Apache Flink has undergone transformative evolution. In the 1.0 era, Flink pioneered Stateful Computations over Data Streams, making end-to-end exactly-once stateful stream processing a reality. Today, real-time processing with sub-second latency has become a standard expectation. However, users of real-time computing now face new challenges that hinder broader adoption. The costs of real-time computing have remained prohibitively high, both in terms of expensive re [...]
In the 2.0 release, Flink introduces several innovative features that address key challenges in real-time data processing and align with the growing demands of modern applications, including AI-driven workflows.
@@ -853,7 +875,7 @@ Appendix # List of breaking change programming APIs # Removed Classes # org.apac
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex/attempts/:attempt
/jobs/:jobid/vertices/:vertexid/subtasktimes
/jobs/:jobid/vertices/:vertexid/taskmanagers
-/jobs/:jobid/taskmanagers/:taskmanagerid/log-url In their responses, the “host”, “subtasks.host” or “taskmanagers.host” property is removed. List of removed CLI options # sql-client.sh: -u,--update <SQL update statement> is removed flink-client: run-application action is removed: Please use run -t kubernetes-application to run Kubernetes Application mode `}),e.add({id:59,href:"/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announceme [...]
+/jobs/:jobid/taskmanagers/:taskmanagerid/log-url In their responses, the “host”, “subtasks.host” or “taskmanagers.host” property is removed. List of removed CLI options # sql-client.sh: -u,--update <SQL update statement> is removed flink-client: run-application action is removed: Please use run -t kubernetes-application to run Kubernetes Application mode `}),e.add({id:60,href:"/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announceme [...]
We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
Highlights # Flink 2.0 Preview Support # The Flink Kubernetes Operator and Autoscaler 1.11.0 brings support for Flink 2.0 preview version. This should help users to try out and verify the latest features in Flink planned for the 2.0 release.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: image: flink:2.0 flinkVersion: v2_0 ... Make sure to update the operator CRD to be able to deploy Flink 2.0 pipelines.
@@ -870,26 +892,26 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.11.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.11.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.11.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Alan Zhang, Anupam Aggarwal, Dao Thanh Tung, Gunnar Morling, Gyula Fora, Keith Wall, Luca Castelli, Luke Chen, Matyas Orhidi, Maximilian Michels, Rui Fan, Sam Barker, Shuyi Chen, Thomas Cooper, big face cat, dsaisharath, fqaiser94, huyuanfeng, mateczagany, sharath1709, timsn, yangjf2019
-`}),e.add({id:60,href:"/2025/02/12/apache-flink-1.19.2-release-announcement/",title:"Apache Flink 1.19.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.19 series.
+`}),e.add({id:61,href:"/2025/02/12/apache-flink-1.19.2-release-announcement/",title:"Apache Flink 1.19.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.19 series.
This release includes 73 bug fixes, vulnerability fixes, and minor improvements for Flink 1.19. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.19.2.
Note: Flink uses Apache Pekko for RPC communication, which in turn depends on Netty. In a recent Pekko update, its Netty dependency was upgraded from Netty 3 to Netty 4, allowing Flink to drop Netty 3 entirely. This change is important and desireable because Netty 3 has been end-of-life for several years and has a large number of known security vulnerabilities (CVEs). The Flink community agreed to include this update in a patch release, despite minor differences in default memory allocat [...]
For a detailed overview of these differences and available configuration options, please refer to the relevant section of the Flink documentation.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.19.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.19.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.19.2 Release Notes # Release Notes - Flink - Version 1.19.2 Bug [FLINK-30899] - FileSystemTableSource with CSV format incorrectly selects fields if filtering for partition [FLINK-33117] - a wrong scala example in udfs page [FLINK-33192] - State memory leak in the Window Operator due to unregistered cleanup timer [FLINK-33571] - Bump json-path from 2.7.0 to 2.9.0 [FLINK-33936] - Outputting [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.19.2 Release Notes # Release Notes - Flink - Version 1.19.2 Bug [FLINK-30899] - FileSystemTableSource with CSV format incorrectly selects fields if filtering for partition [FLINK-33117] - a wrong scala example in udfs page [FLINK-33192] - State memory leak in the Window Operator due to unregistered cleanup timer [FLINK-33571] - Bump json-path from 2.7.0 to 2.9.0 [FLINK-33936] - Outputting [...]
This release includes 75 bug fixes, vulnerability fixes, and minor improvements for Flink 1.20. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.20.1.
Note: Flink uses Apache Pekko for RPC communication, which in turn depends on Netty. In a recent Pekko update, its Netty dependency was upgraded from Netty 3 to Netty 4, allowing Flink to drop Netty 3 entirely. This change is important and desireable because Netty 3 has been end-of-life for several years and has a large number of known security vulnerabilities (CVEs). The Flink community agreed to include this update in a patch release, despite minor differences in default memory allocat [...]
For a detailed overview of these differences and available configuration options, please refer to the relevant section of the Flink documentation.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.20.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.20.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.20.1 Release Notes # Release Notes - Flink - Version 1.20.1 Bug [FLINK-29065] - Flink v1.15.1 contains netty(version:3.10.6). There are many vulnerabilities, like CVE-2021-21409 etc. please confirm these version and fix. thx [FLINK-29797] - can't run a job on yarn, if set fs.default-scheme [FLINK-30899] - FileSystemTableSource with CSV format incorrectly selects fields if filtering fo [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.20.1 Release Notes # Release Notes - Flink - Version 1.20.1 Bug [FLINK-29065] - Flink v1.15.1 contains netty(version:3.10.6). There are many vulnerabilities, like CVE-2021-21409 etc. please confirm these version and fix. thx [FLINK-29797] - can't run a job on yarn, if set fs.default-scheme [FLINK-30899] - FileSystemTableSource with CSV format incorrectly selects fields if filtering fo [...]
Flink CDC release packages are available at Releases Page, and documentations are available at Flink CDC documentation page. Looking forward to any feedback from the community through the Flink mailing lists or JIRA!
Highlights # Connectors # New Pipeline Connectors # Flink CDC 3.3.0 introduces 2 new pipeline connectors:
OceanBase sink MaxCompute sink MySQL # Support parsing gh-ost and pt-osc generated schema changes. Parse array-typed key index binlog created between 8.0.17 and 8.0.18 rightly. Support passing op_ts to meta field in Event. Support parsing the comments of table and column. Fixed deadlock after adding new tables. Fixed a bug that works with FLOAT type with precision. Apache Paimon # Apply default value options when apply add column change. Reuse sequence number when schema evolution happen [...]
Cdcup: quickly start a testing job # Flink CDC 3.3.0 comes with a cdc-up utility script to set up a data integration PoC pipeline and required environment easily. Follow the latest quickstart steps to get started.
Transform # Support timestampdiff, timestampadd, unix_timestamp function. Support to add metadata columns for data in the meta fields of DataChangeEvent at transform. Support to convert delete events as insert events. Add “OpType” metadata column in transform. Support for AI Model Integration for Data Processing. Improve get source field value by column name in PreTransformProcessor. Deduce primary key column types to be NOT NULL. List of Contributors # We would like to expre [...]
ConradJam, Hang Ruan, Hongshun Wang, Jason Zhang, Junbo wang, Jzjsnow, Kunni, Leonard Xu, MOBIN, North Lin, Olivier, Petrichor, Robin Moffatt, Runkang He, Sergei Morozov, Seung-Min Lee, Shawn Huang, Thorne, Timi, Umesh Dangat, Wink, Xin Gong, hiliuxg, liuxiaodong, moses, ouyangwulin, stayrascal, wenmo, wudi, yuanoOo, yuxiqian, MOBIN-F, helloliuxg, jzjsnow, molin.lxd, wuzhiping, zhangchaoming.zcm
-`}),e.add({id:63,href:"/2024/12/05/introducing-the-new-prometheus-connector/",title:"Introducing the new Prometheus connector",section:"Flink Blog",content:`We are excited to announce a new sink connector that enables writing data to Prometheus (FLIP-312). This articles introduces the main features of the connector, and the reasoning behind design decisions.
+`}),e.add({id:64,href:"/2024/12/05/introducing-the-new-prometheus-connector/",title:"Introducing the new Prometheus connector",section:"Flink Blog",content:`We are excited to announce a new sink connector that enables writing data to Prometheus (FLIP-312). This articles introduces the main features of the connector, and the reasoning behind design decisions.
This connector allows writing data to Prometheus using the Remote-Write push interface, which lets you write time-series data to Prometheus at scale.
Motivations for a Prometheus connector # Prometheus is an efficient time-series database optimized for building real-time dashboards and alerts, typically in combination with Grafana or other visualization tools.
Prometheus is commonly used for observability, to monitor compute resources, Kubernetes clusters, and applications. It can also be used to observe Flink clusters and jobs. The Flink Metric Reporter has exactly this purpose.
@@ -943,13 +965,13 @@ Considerations about data validation # Data validation would be a convenient fea
However, validating well-formed input would come with a significant performance cost. It would require checking every Label with a regular expression, and checking the ordering of the list of Labels, on every single input record.
Additionally, checking Sample ordering in the sink would not allow reordering, unless you introduce some form of longer windowing that would inevitably increase latency. If latency is not a problem, some form of reordering can be implemented by the user, upstream of the connector.
List of Contributors # Lorenzo Nicora, Hong Teoh, Francisco Morillo, Karthi Thyagarajan
-`}),e.add({id:64,href:"/2024/11/27/apache-flink-cdc-3.2.1-release-announcement/",title:"Apache Flink CDC 3.2.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink CDC 3.2 series.
+`}),e.add({id:65,href:"/2024/11/27/apache-flink-cdc-3.2.1-release-announcement/",title:"Apache Flink CDC 3.2.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink CDC 3.2 series.
The release contains fixes for several critical issues and improves compatibilities with Apache Flink. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink CDC 3.2.1.
Release Notes # Sub-task # [FLINK-36221] Add specification about CAST … AS … built-in functions Bug # [FLINK-35980] Add transform test coverage in Integrated / E2e tests [FLINK-35982] Transform metadata config doesn’t work if no projection block was provided [FLINK-35985] SUBSTRING function not available in transform rules [FLINK-36105] CDC pipeline job could not restore from state in Flink 1.20 [FLINK-36247] Potential transaction leak during MySQL snapshot phase [FLI [...]
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # yuxiqian, Xin Gong, Hang Ruan, wudi, qg-lin, Timi988, lvyanquan, ConradJam, Runkang He, Junbo wang, MOBIN, Leonard Xu, Sergei Morozov, liuzeshan
-`}),e.add({id:65,href:"/2024/11/25/introducing-the-new-amazon-kinesis-data-stream-and-amazon-dynamodb-stream-sources/",title:"Introducing the new Amazon Kinesis Data Stream and Amazon DynamoDB Stream sources",section:"Flink Blog",content:`We are pleased to introduce updated versions of the Amazon Kinesis Data Stream and Amazon DynamoDB Stream sources. Built on the FLIP-27 source interface, these newer connectors introduce 7 new features and are compatible with Flink 2.0.
+`}),e.add({id:66,href:"/2024/11/25/introducing-the-new-amazon-kinesis-data-stream-and-amazon-dynamodb-stream-sources/",title:"Introducing the new Amazon Kinesis Data Stream and Amazon DynamoDB Stream sources",section:"Flink Blog",content:`We are pleased to introduce updated versions of the Amazon Kinesis Data Stream and Amazon DynamoDB Stream sources. Built on the FLIP-27 source interface, these newer connectors introduce 7 new features and are compatible with Flink 2.0.
The new KinesisStreamsSource replaces the legacy FlinkKinesisConsumer; and the new DynamoDbStreamsSource replaces the legacy FlinkDynamoDBStreamsConsumer. The new connectors are available for Flink 1.19 onwards, and AWS Connector version 5.0.0 onwards. For more information, see the section on Dependencies.
In this blogpost, we will dive into the motivation for the new source connectors, the improvements introduced, and provide migration guidance for users.
Dependencies # Connector API Dependency Usage Amazon Kinesis Data Streams source DataStream
@@ -971,7 +993,7 @@ Fig. 1 - Illustration of uniform resharding event in Kinesis Data Stream from 2
The diagram below illustrates what could happen when records with a given ordering within the same partition key are written to the stream.
Fig. 2 - Illustration of record distribution within a Kinesis Data Stream after a resharding operation. As we can see, to ensure that records from the pk2 are read in order, we need to ensure that the shards are read in order of Shard 0, then Shard 3, then Shard 6. This can be more easily understood as: All parent shards must be fully read before children shards can be read.
The new KinesisStreamsSource ensures that parent shards are read completely before reading children shards, and so ensures that record ordering is maintained even after a resharding operation on the stream.
-`}),e.add({id:66,href:"/2024/10/25/apache-flink-kubernetes-operator-1.10.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.10.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.10.0!
+`}),e.add({id:67,href:"/2024/10/25/apache-flink-kubernetes-operator-1.10.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.10.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.10.0!
The release includes several improvements to the autoscaler, and introduces a new Kubernetes custom resource called FlinkStateSnapshot to manage job snapshots. The process of job upgrades has also been enhanced which makes it possible to now use the last-state upgrade mode with session jobs.
We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
Highlights # FlinkStateSnapshot # With this version comes also a new custom resource called FlinkStateSnapshot. This is used to describe savepoint or checkpoint for a Flink job. The savepoint/checkpoint fields found in FlinkDeployment and FlinkSessionJob status are therefore deprecated, and the operator will create new FlinkStateSnapshot resources for periodic, update and manual savepoints/checkpoints.
@@ -986,7 +1008,7 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.10.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.10.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.10.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Angela Chen, Ferenc Csaky, Gyula Fora, Mate Czagany, Matyas Orhidi, Naresh Kumar Reddy Gaddam, Roc Marshal, Rui Fan, Sam Barker, Yuepeng Pan, big face cat, chenyuzhi459, kartik-3513, r-sidd, 阿洋
-`}),e.add({id:67,href:"/2024/10/23/preview-release-of-apache-flink-2.0/",title:"Preview Release of Apache Flink 2.0",section:"Flink Blog",content:`The Apache Flink community is actively preparing Flink 2.0, the first major release since Flink 1.0 launched 8 years ago. As a significant milestone, Flink 2.0 is set to introduce numerous innovative features and improvements, along with some compatibility-breaking changes. To facilitate early adaptation to these changes for our users and part [...]
+`}),e.add({id:68,href:"/2024/10/23/preview-release-of-apache-flink-2.0/",title:"Preview Release of Apache Flink 2.0",section:"Flink Blog",content:`The Apache Flink community is actively preparing Flink 2.0, the first major release since Flink 1.0 launched 8 years ago. As a significant milestone, Flink 2.0 is set to introduce numerous innovative features and improvements, along with some compatibility-breaking changes. To facilitate early adaptation to these changes for our users and part [...]
NOTICE: Flink 2.0 Preview is not a stable release and should not be used in production environments. While this preview includes most of the breaking changes planned for Flink 2.0, the final release may still subject to additional modifications.
Breaking Changes # API # The following sets of APIs have been completely removed.
DataSet API. Please migrate to DataStream API, or Table API/SQL if applicable. See also How to Migrate from DataSet to DataStream. Scala DataStream and DataSet API. Please migrate to the Java DataStream API. SourceFuction, SinkFunction and Sink V1. Please migrate to Source and Sink V2. TableSoure and TableSink. Please migrate to DynamicTableSource and DynamicTableSink. See also User-defined Sources & Sinks. TableSchema, TableColumn and Types. Please migrate to Schema, Column and Data [...]
@@ -1013,7 +1035,7 @@ Appendix # List of breaking change programming APIs # Removed Classes # org.apac
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex/attempts/:attempt
/jobs/:jobid/vertices/:vertexid/subtasktimes
/jobs/:jobid/vertices/:vertexid/taskmanagers
-/jobs/:jobid/taskmanagers/:taskmanagerid/log-url In their responses, the “host”, “subtasks.host” or “taskmanagers.host” property is removed. List of removed CLI options # sql-client.sh: -u,--update <SQL update statement> is removed flink-client: run-application action is removed: Please use run -t kubernetes-application to run Kubernetes Application mode `}),e.add({id:68,href:"/2024/09/05/apache-flink-cdc-3.2.0-release-announcement/",title:"Apach [...]
+/jobs/:jobid/taskmanagers/:taskmanagerid/log-url In their responses, the “host”, “subtasks.host” or “taskmanagers.host” property is removed. List of removed CLI options # sql-client.sh: -u,--update <SQL update statement> is removed flink-client: run-application action is removed: Please use run -t kubernetes-application to run Kubernetes Application mode `}),e.add({id:69,href:"/2024/09/05/apache-flink-cdc-3.2.0-release-announcement/",title:"Apach [...]
Flink CDC release packages are available at Releases Page, and documentations are available at Flink CDC documentation page. Looking forward to any feedback from the community through the Flink mailing lists or JIRA!
Highlights # Connectors # New Pipeline Connectors # Flink CDC 3.2.0 introduces 1 new pipeline connector:
Elasticsearch sink (verified on Elasticsearch 6.8, 7.10, and 8.12) Apache Paimon # Paimon connector has bumped its dependency to an up-to-date version and could benefit from all bug fixes and improvements. Also, there are other improvements including:
@@ -1034,7 +1056,7 @@ transform: - source-table: db.tbl projection: "fmt('id -> %d', id
Complex Routing Rules # Route operator has been improved to allow declaring more complicated route topologies:
Routing one table to multiple sink tables (broadcasting) is supported now. One can define multiple parallel routing rules in batch with pattern replacing symbols. List of Contributors # We would like to express gratitude to all the contributors working on this release:
ChengJie1053, ConradJam, FangXiangmin, GOODBOY008, Hang Ruan, He Wang, Hongshun Wang, Jiabao Sun, Joao Boto, Junbo wang, Kunni, Laffery, Leonard Xu, MOBIN, Muhammet Orazov, North Lin, PONYLEE, Paul Lin, Qingsheng Ren, SeungMin, Shawn Huang, Thorne, Wink, Xie Yi, Xin Gong, Zhongmin Qiao, Zmm, gong, gongzhongqiang, hk__lrzy, joyCurry30, lipl, lvyanquan, ouyangwulin, skylines, wuzexian, yanghuaiGit, yux, yuxiqian, 鼎昕
-`}),e.add({id:69,href:"/2024/08/02/announcing-the-release-of-apache-flink-1.20/",title:"Announcing the Release of Apache Flink 1.20",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce the release of Apache Flink 1.20.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 142 people contributed to this release completing 13 FLIPs and 300+ issues. Thank you!
+`}),e.add({id:70,href:"/2024/08/02/announcing-the-release-of-apache-flink-1.20/",title:"Announcing the Release of Apache Flink 1.20",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce the release of Apache Flink 1.20.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 142 people contributed to this release completing 13 FLIPs and 300+ issues. Thank you!
Let’s dive into the highlights.
Standing on the Eve of Apache Flink 2.0 # Flink 1.0 was released eight years ago. Since several months, the community is actively planning and taking steps towards the next major release. The new 1.20 release is planned to be the last minor release before Flink 2.0, which is anticipated by the end of 2024.
Start from Flink 1.19, the community has decided to officially deprecate multiple APIs that were approaching end of life for a while. In 1.20, we further sorted through all relevant APIs that might need to be replaced or deprecated to clear the way for the 2.0 release:
@@ -1090,7 +1112,7 @@ More Information
FLINK-35461 FLINK-35473 Checkpointing Options Recovery Options State Backend Options State Changelog Options Latency-track Options Upgrade Notes # The Flink community tries to ensure that upgrades are as seamless as possible. However, certain changes may require users to make adjustments to certain parts of the program when upgrading to version 1.20. Please refer to the release notes for a comprehensive list of adjustments to make and issues to check during the upgrading process.
List of Contributors # The Apache Flink community would like to express gratitude to all the contributors who made this release possible:
Ahmed Hamdy, Alan Sheinberg, Aleksandr Pilipenko, Alexander Fedulov, Andrey Gaskov, Antonio Vespoli, Anupam Aggarwal, Barak Ben-Nathan, Benchao Li, Brad, Cheng Pan, Chesnay Schepler, DamonXue, Danny Cranmer, David Christle, David Moravek, David Schlosnagle, Dawid Wysakowicz, Dian Fu, Dmitriy Linevich, Elphas Toringepi, Emre Kartoglu, Fang Yong, Feng Jin, Ferenc Csaky, Frank Yin, Gabor Somogyi, Gyula Fora, HCTommy, Hangxiang Yu, Hanyu Zheng, Hao Li, Hong Liang Teoh, Hong Teoh, HuangXingBo [...]
-`}),e.add({id:70,href:"/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.9.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.9.0!
+`}),e.add({id:71,href:"/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.9.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.9.0!
The release includes many improvements to the autoscaler and standalone autoscaler, as well as memory optimizations to the operator. There was also a lot of progress made to translate documentation to Chinese.
We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
Highlights # Operator Optimizations # Many improvements and fixes are included in this release to reduce overall memory usage of the operator including the introduction of jemalloc as the default memory allocator to reduce memory fragmentation.
@@ -1104,17 +1126,17 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.9.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.9.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.9.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Alexander Fedulov, Anupam Aggarwal, Cancai Cai, ConradJam, Ferenc Csaky, Gabor Somogyi, Gyula Fora, Marton Balassi, Matt Braymer-Hayes, Maximilian Michels, Márton Balassi, Naci Simsek, Rui Fan, Sergey Nuyanzin, Xin Hao, Yarden Shoham, caicancai, chenyuzhi459, gengbiao.gb, luismacosta, nicolas.fraison@datadoghq.com, soulzz, timsn, wenbingshen, zhou-jiang
-`}),e.add({id:71,href:"/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/",title:"Apache Flink CDC 3.1.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink CDC 3.1 series.
+`}),e.add({id:72,href:"/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/",title:"Apache Flink CDC 3.1.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink CDC 3.1 series.
The release contains fixes for several critical issues and improves compatibilities with Apache Flink. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink CDC 3.1.1.
Release Notes # Bug # [FLINK-34908] Mysql pipeline to doris and starrocks will lost precision for timestamp [FLINK-35149] Fix DataSinkTranslator#sinkTo ignoring pre-write topology if not TwoPhaseCommittingSink [FLINK-35294] Use source config to check if the filter should be applied in timestamp starting mode [FLINK-35301] Fix deadlock when loading driver classes [FLINK-35323] Only the schema of the first hit table is recorded when the source-table of the transformer hits multiple tables [...]
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Hongshun Wang, Jiabao Sun, North Lin, Qingsheng Ren, Wink, Xin Gong, gongzhongqiang, joyCurry30, yux, yuxiqian
-`}),e.add({id:72,href:"/2024/06/14/apache-flink-1.19.1-release-announcement/",title:"Apache Flink 1.19.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.19 series.
+`}),e.add({id:73,href:"/2024/06/14/apache-flink-1.19.1-release-announcement/",title:"Apache Flink 1.19.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.19 series.
This release includes 44 bug fixes, vulnerability fixes, and minor improvements for Flink 1.19. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.19.1.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.19.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.19.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.19.1 Release Notes # Release Notes - Flink - Version 1.19.1 Bug [FLINK-26808] - [flink v1.14.2] Submit jobs via REST API not working after set web.submit.enable: false [FLINK-27741] - Fix NPE when use dense_rank() and rank() in over aggregation [FLINK-28693] - Codegen failed if the watermark is defined on a columnByExpression [FLINK-31223] - sql-client.sh fails to start with ssl enabled [ [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.19.1 Release Notes # Release Notes - Flink - Version 1.19.1 Bug [FLINK-26808] - [flink v1.14.2] Submit jobs via REST API not working after set web.submit.enable: false [FLINK-27741] - Fix NPE when use dense_rank() and rank() in over aggregation [FLINK-28693] - Codegen failed if the watermark is defined on a columnByExpression [FLINK-31223] - sql-client.sh fails to start with ssl enabled [ [...]
We’d like to invite you to check out Flink CDC documentation and have a try on the quickstart tutorial to explore the world of Flink CDC. Also we encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
Highlights # Transformation Support in Pipeline # Flink CDC 3.1.0 introduces the ability of making transformations in the CDC pipeline. By incorporating a transform section within the YAML pipeline definitions, users can now easily apply a variety of transformations to data change event from source, including projections, calculations, and addition of constant columns, enhancing the effectiveness of data integration pipelines. Leveraging an SQL-like syntax for defining these transformati [...]
You can find examples of using transformations in the Flink CDC documentation.
@@ -1129,7 +1151,7 @@ OceanBase # OceanBase CDC source now supports specifying the general DebeziumDes
Db2 # Db2 CDC source is now migrated to the unified incremental snapshot framework.
CLI # Flink CDC pipeline submission CLI now supports recovering a pipeline execution from a specific savepoint file by using command line argument --from-savepoint
List of Contributors # Check Null, FocusComputing, GOODBOY008, Hang Ruan, He Wang, Hongshun Wang, Jiabao Sun, Kunni, L, Laffery, Leonard Xu, Muhammet Orazov, Paul Lin, PengFei Li, Qingsheng Ren, Qishang Zhong, Shawn Huang, Thorne, TorinJie, Xianxun Ye, Xin Gong, Yaroslav Tkachenko, e-mhui, gongzhongqiang, joyCurry30, kunni, lzshlzsh, qwding, shikai93, sky, skylines, wenmo, wudi, xleoken, xuzifu666, yanghuaiGit, yux, yuxiqian, 张田
-`}),e.add({id:74,href:"/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.8.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.8.0!
+`}),e.add({id:75,href:"/2024/03/21/apache-flink-kubernetes-operator-1.8.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.8.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.8.0!
The release includes many improvements to the operator core, the autoscaler, and introduces new features like TaskManager memory auto-tuning.
We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
Highlights # Flink Autotuning # We’re excited to announce our latest addition to the autoscaling module: Flink Autotuning.
@@ -1161,7 +1183,7 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.8.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.8.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.8.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # 1996fanrui, Alexander Fedulov, AncyRominus, Caican Cai, Cancai Cai, ConradJam, Domenic Bove, Dominik Dębowczyk, Gabor Somogyi, Guillaume Vauvert, Gyula Fora, Hao Xin, Jerry Wang, Justin Chen, Máté Czagány, Maximilian Michels, Peter Huang, Rui Fan, Ryan van Huuksloot, Samrat, Tony Garrard, Yang-LI-CS, ensctom, fengfei02, flashJd, Nicolas Fraison
-`}),e.add({id:75,href:"/2024/03/18/announcing-the-release-of-apache-flink-1.19/",title:"Announcing the Release of Apache Flink 1.19",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce the release of Apache Flink 1.19.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 162 people contributed to this release completing 33 FLIPs and 600+ issues. Thank you!
+`}),e.add({id:76,href:"/2024/03/18/announcing-the-release-of-apache-flink-1.19/",title:"Announcing the Release of Apache Flink 1.19",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce the release of Apache Flink 1.19.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 162 people contributed to this release completing 33 FLIPs and 600+ issues. Thank you!
Let’s dive into the highlights.
Flink SQL Improvements # Custom Parallelism for Table/SQL Sources # Now in Flink 1.19, you can set a custom parallelism for performance tuning via the scan.parallelism option. The first available connector is DataGen (Kafka connector is on the way). Here is an example using SQL Client:
-- set parallelism within the ddl CREATE TABLE Orders ( order_number BIGINT, price DECIMAL(32,2), buyer ROW<first_name STRING, last_name STRING>, order_time TIMESTAMP(3) ) WITH ( 'connector' = 'datagen', 'scan.parallelism' = '4' ); -- or set parallelism via dynamic table option SELECT * FROM Orders /*+ OPTIONS('scan.parallelism'='4') */; More Information
@@ -1216,20 +1238,20 @@ Migrate RuntimeContext#getExecutionConfig.getGlobalJobParameters to RuntimeConte
Migrate RuntimeContext#getExecutionConfig.isObjectReuseEnabled() to RuntimeContext#isObjectReuseEnabled org.apache.flink.api.common.functions.RichFunction#open(Configuration parameters) method has been deprecated and will be removed in future versions. Users are encouraged to migrate to the new RichFunction#open(OpenContext openContext). org.apache.flink.configuration.AkkaOptions is deprecated and replaced with RpcOptions. Upgrade Notes # The Flink community tries to ensure that upgrades [...]
List of Contributors # The Apache Flink community would like to express gratitude to all the contributors who made this release possible:
Adi Polak, Ahmed Hamdy, Akira Ajisaka, Alan Sheinberg, Aleksandr Pilipenko, Alex Wu, Alexander Fedulov, Archit Goyal, Asha Boyapati, Benchao Li, Bo Cui, Cheena Budhiraja, Chesnay Schepler, Dale Lane, Danny Cranmer, David Moravek, Dawid Wysakowicz, Deepyaman Datta, Dian Fu, Dmitriy Linevich, Elkhan Dadashov, Eric Brzezenski, Etienne Chauchot, Fang Yong, Feng Jiajie, Feng Jin, Ferenc Csaky, Gabor Somogyi, Gyula Fora, Hang Ruan, Hangxiang Yu, Hanyu Zheng, Hjw, Hong Liang Teoh, Hongshun Wang [...]
-`}),e.add({id:76,href:"/2024/01/19/apache-flink-1.18.1-release-announcement/",title:"Apache Flink 1.18.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.18 series.
+`}),e.add({id:77,href:"/2024/01/19/apache-flink-1.18.1-release-announcement/",title:"Apache Flink 1.18.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.18 series.
This release includes 47 bug fixes, vulnerability fixes, and minor improvements for Flink 1.18. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.18.1.
Note: Users that have state compression should not migrate to 1.18.1 (nor 1.18.0) due to a critical bug that could lead to data loss. Please refer to FLINK-34063 for more information.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.18.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.18.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.18.1 Release Notes # Release Notes - Flink - Version 1.18.1 Bug [FLINK-31650] - Incorrect busyMsTimePerSecond metric value for FINISHED task [FLINK-33158] - Cryptic exception when there is a StreamExecSort in JsonPlan [FLINK-33171] - Consistent implicit type coercion support for equal and non-equal comparisons for codegen [FLINK-33223] - MATCH_RECOGNIZE AFTER MATCH clause can not be deser [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.18.1 Release Notes # Release Notes - Flink - Version 1.18.1 Bug [FLINK-31650] - Incorrect busyMsTimePerSecond metric value for FINISHED task [FLINK-33158] - Cryptic exception when there is a StreamExecSort in JsonPlan [FLINK-33171] - Consistent implicit type coercion support for equal and non-equal comparisons for codegen [FLINK-33223] - MATCH_RECOGNIZE AFTER MATCH clause can not be deser [...]
This release includes 52 bug fixes, vulnerability fixes, and minor improvements for Flink 1.16. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.16.3.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.16.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.16.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.16.3 Release Notes # Release Notes - Flink - Version 1.16.3 Bug [FLINK-32316] - Duplicated announceCombinedWatermark task maybe scheduled if jobmanager failover [FLINK-32362] - SourceAlignment announceCombinedWatermark period task maybe lost [FLINK-32411] - SourceCoordinator thread leaks when job recovers from checkpoint [FLINK-32414] - Watermark alignment will cause flink jobs to hang fo [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.16.3 Release Notes # Release Notes - Flink - Version 1.16.3 Bug [FLINK-32316] - Duplicated announceCombinedWatermark task maybe scheduled if jobmanager failover [FLINK-32362] - SourceAlignment announceCombinedWatermark period task maybe lost [FLINK-32411] - SourceCoordinator thread leaks when job recovers from checkpoint [FLINK-32414] - Watermark alignment will cause flink jobs to hang fo [...]
This release includes 82 bug fixes, vulnerability fixes, and minor improvements for Flink 1.17. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.17.2.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.17.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.17.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.17.2 Release Notes # Release Notes - Flink - Version 1.17.2 Bug [FLINK-27415] - Read empty csv file throws exception in FileSystem table connector [FLINK-28513] - Flink Table API CSV streaming sink throws SerializedThrowable exception [FLINK-29913] - Shared state would be discarded by mistake when maxConcurrentCheckpoint>1 [FLINK-30559] - May get wrong result for \`if\` expression if i [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.17.2 Release Notes # Release Notes - Flink - Version 1.17.2 Bug [FLINK-27415] - Read empty csv file throws exception in FileSystem table connector [FLINK-28513] - Flink Table API CSV streaming sink throws SerializedThrowable exception [FLINK-29913] - Shared state would be discarded by mistake when maxConcurrentCheckpoint>1 [FLINK-30559] - May get wrong result for \`if\` expression if i [...]
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
Flink Version Support Policy Change # Previously the operator only added more and more supported Flink versions without a policy to remove support for these in the future. This resulted in a lot of legacy codepaths already in the core logic.
To keep technical debt at reasonable levels, the community decided to adopt a new Flink version support policy for the operator.
@@ -1251,14 +1273,14 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.7.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.7.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.7.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Alexander Fedulov, Clara Xiong, Daren Wong, Dongwoo Kim, Gabor Somogyi, Gyula Fora, Manan Mangal, Maximilian Michels, Nicolas Fraison, Peter Huang, Praneeth Ramesh, Rui Fan, Sergey Nuyanzin, SteNicholas, Zhanghao, Zhenqiu Huang, mehdid93
-`}),e.add({id:80,href:"/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/",title:"Apache Flink Kubernetes Operator 1.6.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink Kubernetes Operator 1.6 series.
+`}),e.add({id:81,href:"/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/",title:"Apache Flink Kubernetes Operator 1.6.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink Kubernetes Operator 1.6 series.
The release contains fixes for several critical issues, and some doc improvements for the autoscaler.
We highly recommend all users to upgrade to Flink Kubernetes Operator 1.6.1.
Release Notes # Bug # [FLINK-32890] Correct HA patch check for zookeeper metadata store [FLINK-33011] Never accidentally delete HA metadata for last state deployments Documentation improvement # [FLINK-32868][docs] Document the need to backport FLINK-30213 for using autoscaler with older version Flinks [docs][autoscaler] Autoscaler docs and default config improvement Release Resources # The source artifacts and helm chart are available on the Downloads page of the Flink website. You can [...]
$ helm repo add flink-kubernetes-operator-1.6.1 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.6.1/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.6.1/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Gyula Fora, Nicolas Fraison, Zhanghao
-`}),e.add({id:81,href:"/2023/10/24/announcing-the-release-of-apache-flink-1.18/",title:"Announcing the Release of Apache Flink 1.18",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce the release of Apache Flink 1.18.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 174 people contributed to this release completing 18 FLIPS and 700+ issues. Thank you!
+`}),e.add({id:82,href:"/2023/10/24/announcing-the-release-of-apache-flink-1.18/",title:"Announcing the Release of Apache Flink 1.18",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce the release of Apache Flink 1.18.0. As usual, we are looking at a packed release with a wide variety of improvements and new features. Overall, 174 people contributed to this release completing 18 FLIPS and 700+ issues. Thank you!
Let’s dive into the highlights.
Towards a Streaming Lakehouse # Flink SQL Improvements # Introduce Flink JDBC Driver For SQL Gateway # Flink 1.18 comes with a JDBC Driver for the Flink SQL Gateway. So, you can now use any SQL Client that supports JDBC to interact with your tables via Flink SQL. Here is an example using SQLLine.
sqlline> !connect jdbc:flink://localhost:8083 sqlline version 1.12.0 sqlline> !connect jdbc:flink://localhost:8083 Enter username for jdbc:flink://localhost:8083: Enter password for jdbc:flink://localhost:8083: 0: jdbc:flink://localhost:8083> CREATE TABLE T( . . . . . . . . . . . . . . .)> a INT, . . . . . . . . . . . . . . .)> b VARCHAR(10) . . . . . . . . . . . . . . .)> ) WITH ( . . . . . . . . . . . . . . .)> 'connector' = 'filesystem', . . . . . [...]
@@ -1315,7 +1337,7 @@ FLINK-27998 FLINK-28744 FLINK-29319 Important Deprecations # In preparation for
SourceFunction is now officially deprecated and will be dropped in Flink 2.0. If you are still using a connector that is built on top of SourceFunction please migrate it to Source. SinkFunction is not officially deprecated, but it is also approaching end-of-life and will be superseded by SinkV2. Queryable State is now officially deprecated and will be dropped in Flink 2.0. The DataSet API is now officially deprecated. Users are recommended to migrate to the DataStream API with execution [...]
List of Contributors # The Apache Flink community would like to express gratitude to all the contributors who made this release possible:
Aitozi, Akinfolami Akin-Alamu, Alain Brown, Aleksandr Pilipenko, Alexander Fedulov, Anton Kalashnikov, Archit Goyal, Bangui Dunn, Benchao Li, BoYiZhang, Chesnay Schepler, Chris Nauroth, Colten Pilgreen, Danny Cranmer, David Christle, David Moravek, Dawid Wysakowicz, Deepyaman Datta, Dian Fu, Dian Qi, Dong Lin, Eric Xiao, Etienne Chauchot, Feng Jin, Ferenc Csaky, Fruzsina Nagy, Gabor Somogyi, Gunnar Morling, Gyula Fora, HaiYang Chen, Hang Ruan, Hangxiang Yu, Hanyu Zheng, Hong Liang Teoh, [...]
-`}),e.add({id:82,href:"/2023/09/19/stateful-functions-3.3.0-release-announcement/",title:"Stateful Functions 3.3.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Stateful Functions 3.3.0!
+`}),e.add({id:83,href:"/2023/09/19/stateful-functions-3.3.0-release-announcement/",title:"Stateful Functions 3.3.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Stateful Functions 3.3.0!
Stateful Functions is a cross-platform stack for building Stateful Serverless applications, making it radically simpler to develop scalable, consistent, and elastic distributed applications. This new release upgrades the Flink runtime to 1.16.2.
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Java SDK, Python SDK,, GoLang SDK and JavaScript SDK distributions are available on Maven, PyPI, Github, and npm respectively. You can also find official StateFun Docker images of the new version on Dockerhub.
For more details, check the complete release notes and the updated documentation. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA!
@@ -1325,7 +1347,7 @@ Upgraded Flink dependency to 1.16.2 # Stateful Functions 3.3.0 runtime uses Flin
Release Notes # Please review the release notes for a detailed list of changes and new features if you plan to upgrade your setup to Stateful Functions 3.3.0.
List of Contributors # Till Rohrmann, Mingmin Xu, Igal Shilman, Martijn Visser, Chesnay Schepler, SiddiqueAhmad, Galen Warren, Seth Wiesman, FilKarnicki, Tzu-Li (Gordon) Tai
If you’d like to get involved, we’re always looking for new contributors.
-`}),e.add({id:83,href:"/2023/08/15/apache-flink-kubernetes-operator-1.6.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.6.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.6.0! The release features a large number of improvements all across the operator.
+`}),e.add({id:84,href:"/2023/08/15/apache-flink-kubernetes-operator-1.6.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.6.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.6.0! The release features a large number of improvements all across the operator.
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
Highlights # Improved and simplified rollback mechanism # Previously the rollback mechanism had some serious limitations always requiring the presence of HA metadata. This prevented rollbacks in many cases for instance when the new application terminally failed after the upgrade.
1.6.0 introduces several core improvements to the rollback mechanism to leverage the robust upgrade flow and cover a much wider range of failure scenarios.
@@ -1343,7 +1365,7 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.6.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.6.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.6.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Alexander Fedulov, ConradJam, Fangbin Sun, Gyula Fora, James Busche, Mate Czagany, Matyas Orhidi, Maximilian Michels, Nicolas Fraison, Oleksandr Nitavskyi, Tamir Sagi, Thomas, Xin Hao, Xingcan Cui, Daren Wong, Fabio Wanner, kenankule, llussy, yangjf2019,
-`}),e.add({id:84,href:"/2023/08/04/announcing-three-new-apache-flink-connectors-the-new-connector-versioning-strategy-and-externalization/",title:"Announcing three new Apache Flink connectors, the new connector versioning strategy and externalization",section:"Flink Blog",content:` New connectors # We’re excited to announce that Apache Flink now supports three new connectors: Amazon DynamoDB, MongoDB and OpenSearch! The connectors are available for both the DataStream and Table/SQL APIs.
+`}),e.add({id:85,href:"/2023/08/04/announcing-three-new-apache-flink-connectors-the-new-connector-versioning-strategy-and-externalization/",title:"Announcing three new Apache Flink connectors, the new connector versioning strategy and externalization",section:"Flink Blog",content:` New connectors # We’re excited to announce that Apache Flink now supports three new connectors: Amazon DynamoDB, MongoDB and OpenSearch! The connectors are available for both the DataStream and Table/SQL APIs.
Amazon DynamoDB - This connector includes a sink that provides at-least-once delivery guarantees. MongoDB connector - This connector includes a source and sink that provide at-least-once guarantees. OpenSearch sink - This connector includes a sink that provides at-least-once guarantees. Connector Date Released Supported Flink Versions Amazon DynamoDB sink 2022-12-02 1.15+ MongoDB connector 2023-03-31 1.16+ OpenSearch sink 2022-12-21 1.16+ List of Contributors # The Apache Flink community [...]
Andriy Redko, Chesnay Schepler, Danny Cranmer, darenwkt, Hong Liang Teoh, Jiabao Sun, Leonid Ilyevsky, Martijn Visser, nir.tsruya, Sergey Nuyanzin, Weijie Guo, Yuri Gusev, Yuxin Tan
Externalized connectors # The community has externalized connectors from Flink’s main repository. This was driven to realise the following benefits:
@@ -1352,19 +1374,19 @@ Kafka / Upsert-Kafka Cassandra Elasticsearch MongoDB OpenSearch RabbitMQ Google
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-dynamodb</artifactId> <version>4.1.0-1.17</version> </dependency> You can find the maven dependency for a connector in the Flink connectors documentation for a specific Flink version. Use the Flink Downloads page to verify which version your connector is compatible with.
Contributing # Similarly, when creating JIRAs to report issues or to contribute to externalized connectors, the Affects Version/s and Fix Version/s fields should now use the connector version instead of a Flink version. The format should be <connector-name>-<major>.<minor>.<patch>. For example, use opensearch-1.1.0 for the OpenSearch connector. All other fields in the JIRA like Component/s remain the same.
For more information on how to contribute to externalized connectors, see the Externalized Connector development wiki.
-`}),e.add({id:85,href:"/2023/07/03/sigmod-systems-award-for-apache-flink/",title:"SIGMOD Systems Award for Apache Flink",section:"Flink Blog",content:`Apache Flink received the 2023 SIGMOD Systems Award, which is awarded to an individual or set of individuals to recognize the development of a software or hardware system whose technical contributions have had significant impact on the theory or practice of large-scale data management systems:
+`}),e.add({id:86,href:"/2023/07/03/sigmod-systems-award-for-apache-flink/",title:"SIGMOD Systems Award for Apache Flink",section:"Flink Blog",content:`Apache Flink received the 2023 SIGMOD Systems Award, which is awarded to an individual or set of individuals to recognize the development of a software or hardware system whose technical contributions have had significant impact on the theory or practice of large-scale data management systems:
The 2023 SIGMOD Systems Award goes to Apache Flink:
“Apache Flink greatly expanded the use of stream data-processing.”
Winning of SIGMOD Systems Award indicates the high recognition of Flink’s technological advancement and industry influence from academia. This is a significant achievement by the whole community in Apache Flink, including the over 1,400 contributors and many others who contributed in ways beyond code.
-`}),e.add({id:86,href:"/2023/05/25/apache-flink-1.16.2-release-announcement/",title:"Apache Flink 1.16.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.16 series.
+`}),e.add({id:87,href:"/2023/05/25/apache-flink-1.16.2-release-announcement/",title:"Apache Flink 1.16.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.16 series.
This release includes 104 bug fixes, vulnerability fixes, and minor improvements for Flink 1.16. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.16.2.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.16.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.16.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.16.2 Release Notes # Bug [FLINK-27246] - Code of method "processElement(Lorg/apache/flink/streaming/runtime/streamrecord/StreamRecord;)V" of class "HashAggregateWithKeys$9211" grows beyond 64 KB [FLINK-27800] - addInEdge check state error [FLINK-27848] - ZooKeeperLeaderElectionDriver keeps writing leader information, using up zxid [FLINK-28786] - Cannot run PyFlink 1.1 [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.16.2 Release Notes # Bug [FLINK-27246] - Code of method "processElement(Lorg/apache/flink/streaming/runtime/streamrecord/StreamRecord;)V" of class "HashAggregateWithKeys$9211" grows beyond 64 KB [FLINK-27800] - addInEdge check state error [FLINK-27848] - ZooKeeperLeaderElectionDriver keeps writing leader information, using up zxid [FLINK-28786] - Cannot run PyFlink 1.1 [...]
This release includes 75 bug fixes, vulnerability fixes, and minor improvements for Flink 1.17. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.17.1.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.17.1 Release Notes # Release Notes - Flink - Version 1.17.1 Bug [FLINK-28786] - Cannot run PyFlink 1.16 on MacOS with M1 chip [FLINK-30989] - Configuration table.exec.spill-compression.block-size not take effect in batch job [FLINK-31131] - The INITIALIZING of ExecutionState is missed in the state_machine doc [FLINK-31165] - Over Agg: The window rank function without order by error in top [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.17.1 Release Notes # Release Notes - Flink - Version 1.17.1 Bug [FLINK-28786] - Cannot run PyFlink 1.16 on MacOS with M1 chip [FLINK-30989] - Configuration table.exec.spill-compression.block-size not take effect in batch job [FLINK-31131] - The INITIALIZING of ExecutionState is missed in the state_machine doc [FLINK-31165] - Over Agg: The window rank function without order by error in top [...]
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
Autoscaler improvements # Algorithm improvements and better scale down behaviour # The release contains important improvements to the core autoscaling logic. This includes improved stability of scaling decisions (leading to less parallelism oscillations) and better handling of slow or idle streams.
There are also some fixes related to output ratio computation and propagation that greatly improves the autoscaler on more complex streaming pipelines.
@@ -1382,7 +1404,7 @@ apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: canar
$ helm repo add flink-kubernetes-operator-1.5.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.5.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.5.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Gyula Fora, Marton Balassi, Mate Czagany, Maximilian Michels, Rafał Boniecki, Rodrigo Meneses, Tamir Sagi, Xin Hao, Xin Li, Zhanghao Chen, Zhenqiu Huang, Daren Wong, Gaurav Miglani, Peter Vary, Tan Kim, yangjf2019
-`}),e.add({id:89,href:"/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/",title:"Howto test a batch source with the new Source framework",section:"Flink Blog",content:` Introduction # The Flink community has designed a new Source framework based on FLIP-27 lately. This article is the continuation of the howto create a batch source with the new Source framework article . Now it is time to test the created source ! As the previous article, this one was built while implem [...]
+`}),e.add({id:90,href:"/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/",title:"Howto test a batch source with the new Source framework",section:"Flink Blog",content:` Introduction # The Flink community has designed a new Source framework based on FLIP-27 lately. This article is the continuation of the howto create a batch source with the new Source framework article . Now it is time to test the created source ! As the previous article, this one was built while implem [...]
Unit testing the source # Testing the serializers # Example Cassandra SplitSerializer and SplitEnumeratorStateSerializer
In the previous article, we created serializers for Split and SplitEnumeratorState. We should now test them in unit tests. To test serde we create an object, serialize it using the serializer and then deserialize it using the same serializer and finally assert on the equality of the two objects. Thus, hascode() and equals() need to be implemented for the serialized objects.
Other unit tests # Of course, we also need to unit test low level processing such as query building for example or any processing that does not require a running backend.
@@ -1404,7 +1426,7 @@ It is linked to the ITCase through a factory of TestContext as shown below.
@TestContext TestContextFactory contextFactory = new TestContextFactory(testEnvironment); TestContext implements DataStreamSourceExternalContext:
We don’t connect to the backend at each test case, so the shared resources such as session are created by the backend test environment (test suite scoped). They are then passed to the test context by constructor. It is also in the constructor that we initialize test case backend resources such as test case table. close() : drop the created test case resources getProducedType(): specify the test output type of the source such as a test Pojo for example getConnectorJarPaths(): provid [...]
Conclusion # This concludes the series of articles about creating a batch source with the new Flink framework. This was needed as, apart from the javadocs, the documentation about testing is missing for now. I hope you enjoyed reading and I hope the Flink community will receive a source PR from you soon :)
-`}),e.add({id:90,href:"/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/",title:"Howto migrate a real-life batch pipeline from the DataSet API to the DataStream API",section:"Flink Blog",content:` Introduction # The Flink community has been deprecating the DataSet API since version 1.12 as part of the work on FLIP-131: Consolidate the user-facing Dataflow SDKs/APIs (and deprecate the DataSet API) . This blog article illustrates the migration [...]
+`}),e.add({id:91,href:"/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/",title:"Howto migrate a real-life batch pipeline from the DataSet API to the DataStream API",section:"Flink Blog",content:` Introduction # The Flink community has been deprecating the DataSet API since version 1.12 as part of the work on FLIP-131: Consolidate the user-facing Dataflow SDKs/APIs (and deprecate the DataSet API) . This blog article illustrates the migration [...]
What is TPCDS? # TPC-DS is a decision support benchmark that models several generally applicable aspects of a decision support system. The purpose of TPCDS benchmarks is to provide relevant, objective performance data of Big Data engines to industry users.
Chosen TPCDS query # The chosen query for this article is Query3 because it contains all the more common analytics operators (filter, join, aggregation, group by, order by, limit). It represents an analytic query on store sales. Its SQL code is presented here:
SELECT dt.d_year, item.i_brand_id brand_id, item.i_brand brand,SUM(ss_ext_sales_price) sum_agg FROM date_dim dt, store_sales, item WHERE dt.d_date_sk = store_sales.ss_sold_date_sk AND store_sales.ss_item_sk = item.i_item_sk AND item.i_manufact_id = 128 AND dt.d_moy=11 GROUP BY dt.d_year, item.i_brand, item.i_brand_id ORDER BY dt.d_year, sum_agg desc, brand_id LIMIT 100
@@ -1425,7 +1447,7 @@ Another thing: to be able to use Flink state, we need to key the datastream befo
Migrating the limit operation # As all the elements of the DataStream were keyed by the same “0” key, they are kept in the same " group". So we can implement the SQL LIMIT with a ProcessFunction with a counter that will output only the first 100 elements.
Migrating the sink operation # As with sources, there were big changes in sinks with recent versions of Flink. We now use the Sink interface that requires an Encoder . But the resulting code is very similar to the one using the DataSet API. It’s only that Encoder#encode() method writes bytes when TextOutputFormat.TextFormatter#format() wrote Strings.
Conclusion # As you saw for the migration of the join operation, the new unified DataStream API has some limitations left in batch mode. In addition, the order by and limit resulting code is quite manual and requires the help of the Flink state API for the migration. For all these reasons, the Flink community recommends to use Flink SQL for batch pipelines. It results in much simpler code, good performance and out-of-the-box analytics capabilities. You could find the equivalent Query3 co [...]
-`}),e.add({id:91,href:"/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/",title:"Howto create a batch source with the new Source framework",section:"Flink Blog",content:` Introduction # The Flink community has designed a new Source framework based on FLIP-27 lately. Some connectors have migrated to this new framework. This article is a how-to for creating a batch source using this new framework. It was built while implementing the Flink batch source for Cassandra. If [...]
+`}),e.add({id:92,href:"/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/",title:"Howto create a batch source with the new Source framework",section:"Flink Blog",content:` Introduction # The Flink community has designed a new Source framework based on FLIP-27 lately. Some connectors have migrated to this new framework. This article is a how-to for creating a batch source using this new framework. It was built while implementing the Flink batch source for Cassandra. If [...]
Implementing the source components # The source architecture is depicted in the diagrams below:
Source # Example Cassandra Source
The source interface only does the “glue” between all the other components. Its role is to instantiate all of them and to define the source Boundedness . We also do the source configuration here along with user configuration validation.
@@ -1455,7 +1477,7 @@ Using Java serialization is forbidden in Flink mainly for migration concerns. We
The initial stream size depends on the size of a split.
Testing the source # For the sake of concision of this article, testing the source will be the object of the next article. Stay tuned !
Conclusion # This article gathering the implementation field feedback was needed as the javadocs cannot cover all the implementation details for high-performance and maintainable sources. I hope you enjoyed reading and that it gave you the desire to contribute a new connector to the Flink project !
-`}),e.add({id:92,href:"/2023/04/19/apache-flink-ml-2.2.0-release-announcement/",title:"Apache Flink ML 2.2.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink ML 2.2.0! This release focuses on enriching Flink ML’s feature engineering algorithms. The library now includes 33 feature engineering algorithms, making it a more comprehensive library for feature engineering tasks.
+`}),e.add({id:93,href:"/2023/04/19/apache-flink-ml-2.2.0-release-announcement/",title:"Apache Flink ML 2.2.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink ML 2.2.0! This release focuses on enriching Flink ML’s feature engineering algorithms. The library now includes 33 feature engineering algorithms, making it a more comprehensive library for feature engineering tasks.
With the addition of these algorithms, we believe Flink ML library is ready for use in production jobs that require feature engineering capabilities, whose input can then be consumed by both offline and online machine learning tasks.
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
Notable Features # Introduced API and infrastructure for online serving # In machine learning, one of the main goals of model training is to deploy the trained model to perform online inference, where the model server must respond to incoming requests with millisecond-level latency. However, prior releases of Flink ML only supported nearline inference using the Flink runtime, which may not meet the requirements of online inference use-cases.
@@ -1472,7 +1494,7 @@ Release Notes and Resources # Please take a look at the release notes for a deta
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent distribution of Flink ML Python package is available on PyPI.
List of Contributors # The Apache Flink community would like to thank each one of the contributors that have made this release possible:
Zhipeng Zhang, Dong Lin, Fan Hong, JiangXin, Zsombor Chikan, huangxingbo, taosiyuan163, vacaly, weibozhao, yunfengzhou-hub
-`}),e.add({id:93,href:"/2023/03/23/announcing-the-release-of-apache-flink-1.17/",title:"Announcing the Release of Apache Flink 1.17",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce Apache Flink release 1.17.0. Apache Flink is the leading stream processing standard, and the concept of unified stream and batch data processing is being successfully adopted in more and more companies. Thanks to our excellent community and contributors, Apache Flink continues to grow [...]
+`}),e.add({id:94,href:"/2023/03/23/announcing-the-release-of-apache-flink-1.17/",title:"Announcing the Release of Apache Flink 1.17",section:"Flink Blog",content:`The Apache Flink PMC is pleased to announce Apache Flink release 1.17.0. Apache Flink is the leading stream processing standard, and the concept of unified stream and batch data processing is being successfully adopted in more and more companies. Thanks to our excellent community and contributors, Apache Flink continues to grow [...]
Towards Streaming Warehouses # In order to achieve greater efficiency in the realm of streaming warehouse, Flink 1.17 contains substantial improvements to both the performance of batch processing and the semantics of streaming processing. These improvements represent a significant stride towards the creation of a more efficient and streamlined data warehouse, capable of processing large quantities of data in real-time.
For batch processing, this release includes several new features and improvements:
Streaming Warehouse API: FLIP-282 introduces the new Delete and Update API in Flink SQL which only works in batch mode. External storage systems like Flink Table Store can implement row-level modification via this new API. The ALTER TABLE syntax is enhanced by including the ability to ADD/MODIFY/DROP columns, primary keys, and watermarks, making it easier for users to maintain their table schema. Batch Execution Improvements: Execution of batch workloads has been significantly improved i [...]
@@ -1511,11 +1533,11 @@ Generalized Delegation Token Support # Previously, Flink supported Kerberos auth
Upgrade Notes # The Flink community tries to ensure that upgrades are as seamless as possible. However, certain changes may require users to make adjustments to certain parts of the program when upgrading to version 1.17. Please refer to the release notes for a comprehensive list of adjustments to make and issues to check during the upgrading process.
List of Contributors # The Apache Flink community would like to express gratitude to all the contributors who made this release possible:
Ahmed Hamdy, Aitozi, Aleksandr Pilipenko, Alexander Fedulov, Alexander Preuß, Anton Kalashnikov, Arvid Heise, Bo Cui, Brayno, Carlos Castro, ChangZhuo Chen (陳昌倬), Chen Qin, Chesnay Schepler, Clemens, ConradJam, Danny Cranmer, Dawid Wysakowicz, Dian Fu, Dong Lin, Dongjoon Hyun, Elphas Toringepi, Eric Xiao, Fabian Paul, Ferenc Csaky, Gabor Somogyi, Gen Luo, Gunnar Morling, Gyula Fora, Hangxiang Yu, Hong Liang Teoh, HuangXingBo, Jacky Lau, Jane Chan, Jark Wu, Jiale, Jin, Jing Ge, Jinzhong L [...]
-`}),e.add({id:94,href:"/2023/03/15/apache-flink-1.15.4-release-announcement/",title:"Apache Flink 1.15.4 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the fourth bug fix release of the Flink 1.15 series.
+`}),e.add({id:95,href:"/2023/03/15/apache-flink-1.15.4-release-announcement/",title:"Apache Flink 1.15.4 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the fourth bug fix release of the Flink 1.15 series.
This release includes 53 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.15.4.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.15.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.15.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.15.4 Release Notes # Bug [FLINK-27341] - TaskManager running together with JobManager are bind to 127.0.0.1 [FLINK-27800] - addInEdge check state error [FLINK-27944] - IO metrics collision happens if a task has union inputs [FLINK-28526] - Fail to lateral join with UDTF from Table with timstamp column [FLINK-28695] - Fail to send partition request to restarted taskmanager [FLINK-28742] - [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.15.4 Release Notes # Bug [FLINK-27341] - TaskManager running together with JobManager are bind to 127.0.0.1 [FLINK-27800] - addInEdge check state error [FLINK-27944] - IO metrics collision happens if a task has union inputs [FLINK-28526] - Fail to lateral join with UDTF from Table with timstamp column [FLINK-28695] - Fail to send partition request to restarted taskmanager [FLINK-28742] - [...]
Flink Streaming Job Autoscaler # A highly requested feature for Flink applications is the ability to scale the pipeline based on incoming data load and the utilization of the dataflow. While Flink has already provided some of the required building blocks, this feature has not yet been realized in the open source ecosystem.
With FLIP-271 the community set out to build such an autoscaler component as part of the Kubernetes Operator subproject. The Kubernetes Operator proved to be a great place for the autoscaler module as it already contains all the necessary bits for managing and upgrading production streaming applications.
Fast-forward to the 1.4.0 release, we now have the first fully functional autoscaler implementation in the operator, ready to be tested and used in production applications. For more, detailed information, please refer to the Autoscaler Documentation.
@@ -1534,14 +1556,14 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.4.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.4.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.4.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Anton Ippolitov, FabioWanner, Gabor Somogyi, Gyula Fora, James Busche, Kyle Ahn, Matyas Orhidi, Maximilian Michels, Mohemmad Zaid Khan, Márton Balassi, Navaneesh Kumar, Ottomata, Peter Huang, Rodrigo, Shang Yuanchun, Shipeng Xie, Swathi Chandrashekar, Tony Garrard, Usamah Jassat, Vincent Chenal, Zsombor Chikan, Peter Vary
-`}),e.add({id:96,href:"/2023/01/30/apache-flink-1.16.1-release-announcement/",title:"Apache Flink 1.16.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.16 series.
+`}),e.add({id:97,href:"/2023/01/30/apache-flink-1.16.1-release-announcement/",title:"Apache Flink 1.16.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.16 series.
This release includes 84 bug fixes, vulnerability fixes, and minor improvements for Flink 1.16. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.16.1.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.16.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.16.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.16.1 Upgrade Notes # FLINK-28988 - Incorrect result for filter after temporal join The filter will not be pushed down into both inputs of the event time temporal join. This may cause incompatible plan changes compared to Flink 1.16.0, e.g., when the left input is an upsert source (like upsert-kafka connector), the query plan will remove the ChangelogNormalize node in Flink 1.16.1, while i [...]
FLINK-29849 - Event time temporal join on an upsert source may produce incorrect execution plan This resolves the correctness issue when doing an event time temporal join with a versioned table backed by an upsert source. When the right input of the join is an upsert source, it no longer generates a ChangelogNormalize node for it. This is an incompatible plan change compared to 1.16.0
FLINK-30383 - UseLogicalIdentifier makes datadog consider metric as custom The Datadog reporter now adds a “flink.” prefix to metric identifiers if “useLogicalIdentifier” is enabled. This is required for these metrics to be recognized as Flink metrics, not custom ones.
-Release Notes # Bug [FLINK-16582] - NettyBufferPoolTest may have warns on NettyBuffer leak [FLINK-26037] - TaskManagerRunner may crash during shutdown sequence [FLINK-26890] - DynamoDB consumer error consuming partitions close to retention [FLINK-27341] - TaskManager running together with JobManager are bind to 127.0.0.1 [FLINK-27944] - IO metrics collision happens if a task has union inputs [FLINK-28102] - Flink AkkaRpcSystemLoader fails when temporary directory is a symlink [FLINK-2852 [...]
+Release Notes # Bug [FLINK-16582] - NettyBufferPoolTest may have warns on NettyBuffer leak [FLINK-26037] - TaskManagerRunner may crash during shutdown sequence [FLINK-26890] - DynamoDB consumer error consuming partitions close to retention [FLINK-27341] - TaskManager running together with JobManager are bind to 127.0.0.1 [FLINK-27944] - IO metrics collision happens if a task has union inputs [FLINK-28102] - Flink AkkaRpcSystemLoader fails when temporary directory is a symlink [FLINK-2852 [...]
Introduction # Authentication in distributed systems is not an easy task. Previously all worker nodes (TaskManagers) reading from or writing to an external system needed to authenticate on their own. In such a case several things can go wrong, including but not limited to:
Too many authentication requests (potentially resulting in rejected requests) Large number of retries on authentication failures Re-occurring propagation/update of temporary credentials in a timely manner Dependency issues when external system libraries are having the same dependency with different versions Each authentication/temporary credentials are different making standardization challenging … The aim of Delegation Token Framework is to solve the above challenges. The framewo [...]
New authentication providers can be added with small amount of code which is going to be loaded by Flink automatically. At the moment the following external systems are supported:
@@ -1554,7 +1576,7 @@ Check out the example implementation Change FlinkTestJavaDelegationTokenProvider
An example tutorial can be found here on external system authentication.
Summary # The Delegation Token Framework is feature complete on the master branch and is becoming generally available on the release of Flink 1.17. The framework obtains authentication tokens at a central location and propagates them to all workers on a re-occurring basis.
Any connector to an external system which supports authentication can be a potential user of this framework. To support authentication in your connector we encourage you to implement your own DelegationTokenProvider/DelegationTokenReceiver pair.
-`}),e.add({id:98,href:"/2023/01/13/apache-flink-table-store-0.3.0-release-announcement/",title:"Apache Flink Table Store 0.3.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the release of the Apache Flink Table Store (0.3.0).
+`}),e.add({id:99,href:"/2023/01/13/apache-flink-table-store-0.3.0-release-announcement/",title:"Apache Flink Table Store 0.3.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the release of the Apache Flink Table Store (0.3.0).
We highly recommend all users upgrade to Flink Table Store 0.3.0. 0.3.0 completed 150+ issues, which were completed by nearly 30 contributors.
Please check out the full documentation for detailed information and user guides.
Flink Table Store 0.3 completes many exciting features, enhances its ability as a data lake storage and greatly improves the availability of its stream pipeline. Some important features are described below.
@@ -1588,14 +1610,14 @@ What’s Next? # In the upcoming 0.4.0 release you can expect the following
Provides Flink decoupled independent Java APIs Spark: enhance batch write, provide streaming write and streaming read Flink: complete DDL & DML, providing more management operations Changelog producer: Lookup, the delay of stream reading each scenario is less than one minute Provide multi table consistent materialized views in real-time Data Integration: Schema Evolution integration, whole database integration. Please give the release a try, share your feedback on the Flink mailing l [...]
List of Contributors # The Apache Flink community would like to thank every one of the contributors that have made this release possible:
Feng Wang, Hannankan, Jane Chan, Jia Liu, Jingsong Lee, Jonathan Leitschuh, JunZhang, Kirill Listopad, Liwei Li, MOBIN-F, Nicholas Jiang, Wang Luning, WencongLiu, Yubin Li, gongzhongqiang, houhang1005, liuzhuang2017, openinx, tsreaper, wuyouwuyoulian, zhuangchong, zjureel (shammon), 吴祥平
-`}),e.add({id:99,href:"/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/",title:"Apache Flink Kubernetes Operator 1.3.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink Kubernetes Operator 1.3 series.
+`}),e.add({id:100,href:"/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/",title:"Apache Flink Kubernetes Operator 1.3.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink Kubernetes Operator 1.3 series.
The release contains fixes for several critical issues and some major stability improvements for the application upgrade mechanism.
We highly recommend all users to upgrade to Flink Kubernetes Operator 1.3.1.
Release Notes # Bug # [FLINK-30329] - flink-kubernetes-operator helm chart does not work with dynamic config because of use of volumeMount subPath [FLINK-30361] - Cluster deleted and created back while updating replicas [FLINK-30406] - Jobmanager Deployment error without HA metadata should not lead to unrecoverable error [FLINK-30437] - State incompatibility issue might cause state loss [FLINK-30527] - Last-state suspend followed by flinkVersion change may lead to state loss [FLINK-30528 [...]
$ helm repo add flink-kubernetes-operator-1.3.1 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.3.1/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.3.1/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Gyula Fora, Andrew Otto, Swathi Chandrashekar, Peter Vary
-`}),e.add({id:100,href:"/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.3.0 Release Announcement",section:"Flink Blog",content:`The Flink community is happy to announce that the latest Flink Kubernetes Operator version went live today. Beyond the regular operator improvements and fixes the 1.3.0 version also integrates better with some popular infrastructure management tools like OLM and Argo CD. These improvements are c [...]
+`}),e.add({id:101,href:"/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.3.0 Release Announcement",section:"Flink Blog",content:`The Flink community is happy to announce that the latest Flink Kubernetes Operator version went live today. Beyond the regular operator improvements and fixes the 1.3.0 version also integrates better with some popular infrastructure management tools like OLM and Argo CD. These improvements are c [...]
Release Highlights # Upgrade to Fabric8 6.x.x and JOSDK 4.x.x Restart unhealthy Flink clusters Contribute the Flink Kubernetes Operator to OperatorHub Publish flink-kubernetes-operator-api module separately Upgrade to Fabric8 6.x.x and JOSDK 4.x.x # Two important framework components were upgraded with the current operator release, the Fabric8 client to v6.2.0 and the JOSDK to v4.1.0. These upgrades among others contain important informer improvements that help lower or completely elimin [...]
With the new JOSDK version, the operator now supports leader election and allows users to run standby operator replicas to reduce downtime due to operator failures. Read more about this in the docs.
Restart unhealthy Flink clusters # Flink has its own restart strategies which are working fine in most of the cases, but there are certain circumstances when Flink can be stuck in restart loops often resulting in OutOfMemoryError: Metaspace type of state which the job cannot recover from. If the root cause is just a temporary outage of some external system, for example, the Flink job could be resurrected by simply performing a full restart on the application.
@@ -1608,7 +1630,7 @@ Release Resources # The source artifacts and helm chart are available on the Dow
$ helm repo add flink-kubernetes-operator-1.3.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.3.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.3.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Chesnay Schepler, Clara Xiong, Denis Nuțiu, Gabor Somogyi, Gyula Fora, James Busche, Jeesmon Jacob, Marton Balassi, Matyas Orhidi, Maximilian Michels, Sriram Ganesh, Steven Zhang, Thomas Weise, Tony Garrard, Usamah Jassat, Xin Hao, Yaroslav Tkachenko, Zezae Oh, Zhenqiu Huang, Zhiming, clarax, darenwkt, jiangzho, judy.zhu, pvary, ted chang, tison, yangjf2019, zhou-jiang
-`}),e.add({id:101,href:"/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/",title:"Optimising the throughput of async sinks using a custom RateLimitingStrategy",section:"Flink Blog",content:` Introduction # When designing a Flink data processing job, one of the key concerns is maximising job throughput. Sink throughput is a crucial factor because it can determine the entire job’s throughput. We generally want the highest possible write rate in the s [...]
+`}),e.add({id:102,href:"/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/",title:"Optimising the throughput of async sinks using a custom RateLimitingStrategy",section:"Flink Blog",content:` Introduction # When designing a Flink data processing job, one of the key concerns is maximising job throughput. Sink throughput is a crucial factor because it can determine the entire job’s throughput. We generally want the highest possible write rate in the s [...]
This post explains how you can optimise sink throughput by configuring a custom RateLimitingStrategy on a connector that builds on the AsyncSinkBase (FLIP-171). In the sections below, we cover the design logic behind the AsyncSinkBase and the RateLimitingStrategy, then we take you through two example implementations of rate limiting strategies, specifically the CongestionControlRateLimitingStrategy and TokenBucketRateLimitingStrategy.
Background of the AsyncSinkBase # When implementing the AsyncSinkBase, our goal was to simplify building new async sinks to custom destinations by providing common async sink functionality used with at least once processing. This has allowed users to more easily write sinks to custom destinations, such as Amazon Kinesis Data Streams and Amazon Kinesis Firehose. An additional async sink to Amazon DynamoDB (FLIP-252) is also being developed at the time of writing.
The AsyncSinkBase provides the core implementation which handles the mechanics of async requests and responses. This includes retrying failed messages, deciding when to flush records to the destination, and persisting un-flushed records to state during checkpointing. In order to increase throughput, the async sink also dynamically adjusts the request rate depending on the destination’s responses. Read more about this in our previous 1.15 release blog post or watch our FlinkForward talk r [...]
@@ -1637,11 +1659,11 @@ This would be useful if we know that our destination will failover ungracefully
Specifying a custom RateLimitingStrategy # To specify a custom RateLimitingStrategy, we have to specify it in the AsyncSinkWriterConfiguration which is passed into the constructor of the AsyncSinkWriter. For example:
class MyCustomSinkWriter<InputT> extends AsyncSinkWriter<InputT, MyCustomRequestEntry> { MyCustomSinkWriter( ElementConverter<InputT, MyCustomRequestEntry> elementConverter, Sink.InitContext context, Collection<BufferedRequestState<MyCustomRequestEntry>> states) { super( elementConverter, context, AsyncSinkWriterConfiguration.builder() // ... .setRateLimitingStrategy(new TokenBucketRateLimitingStrategy()) .build(), states); } } Summary # From Apache Flink 1. [...]
We hope this extension will be useful for you. If you have any feedback, feel free to reach out!
-`}),e.add({id:102,href:"/2022/11/10/apache-flink-1.15.3-release-announcement/",title:"Apache Flink 1.15.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the third bug fix release of the Flink 1.15 series.
+`}),e.add({id:103,href:"/2022/11/10/apache-flink-1.15.3-release-announcement/",title:"Apache Flink 1.15.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the third bug fix release of the Flink 1.15 series.
This release includes 59 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.15.3.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.15.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.15.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.15.3 Release Notes # Bug [FLINK-26726] - Remove the unregistered task from readersAwaitingSplit [FLINK-26890] - DynamoDB consumer error consuming partitions close to retention [FLINK-27384] - In the Hive dimension table, when the data is changed on the original partition, the create_time configuration does not take effect [FLINK-27400] - Pulsar connector subscribed the system topic when u [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.15.3 Release Notes # Bug [FLINK-26726] - Remove the unregistered task from readersAwaitingSplit [FLINK-26890] - DynamoDB consumer error consuming partitions close to retention [FLINK-27384] - In the Hive dimension table, when the data is changed on the original partition, the create_time configuration does not take effect [FLINK-27400] - Pulsar connector subscribed the system topic when u [...]
Flink has become the leading role and factual standard of stream processing, and the concept of the unification of stream and batch data processing is gradually gaining recognition and is being successfully implemented in more and more companies. Previously, the integrated stream and batch concept placed more emphasis on a unified API and a unified computing framework. This year, based on this, Flink proposed the next development direction of Flink-Streaming Warehouse (Streamhouse), whic [...]
In 1.16, the Flink community has completed many improvements for both batch and stream processing:
For batch processing, all-round improvements in ease of use, stability and performance have been completed. 1.16 is a milestone version of Flink batch processing and an important step towards maturity. Ease of use: with the introduction of SQL Gateway and full compatibility with Hive Server2, users can submit Flink SQL jobs and Hive SQL jobs very easily, and it is also easy to connect to the original Hive ecosystem. Functionality: Join hints let Flink SQL users manually specify join stra [...]
@@ -1686,11 +1708,11 @@ Introduce configurable RateLimitingStrategy for Async Sink # The Async Sink was
Upgrade Notes # We aim to make upgrades as smooth as possible, but some of the changes require users to adjust some parts of the program when upgrading to Apache Flink 1.16. Please take a look at the release notes for a list of adjustments to make and issues to check during upgrades.
List of Contributors # The Apache Flink community would like to thank each one of the contributors that have made this release possible:
1996fanrui, Ada Wang, Ada Wong, Ahmed Hamdy, Aitozi, Alexander Fedulov, Alexander Preuß, Alexander Trushev, Andriy Redko, Anton Kalashnikov, Arvid Heise, Ben Augarten, Benchao Li, BiGsuw, Biao Geng, Bobby Richard, Brayno, CPS794, Cheng Pan, Chengkai Yang, Chesnay Schepler, Danny Cranmer, David N Perkins, Dawid Wysakowicz, Dian Fu, DingGeGe, EchoLee5, Etienne Chauchot, Fabian Paul, Ferenc Csaky, Francesco Guardiani, Gabor Somogyi, Gen Luo, Gyula Fora, Haizhou Zhao, Hangxiang Yu, Hao Wang, [...]
-`}),e.add({id:104,href:"/2022/10/13/apache-flink-table-store-0.2.1-release-announcement/",title:"Apache Flink Table Store 0.2.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink Table Store 0.2 series.
+`}),e.add({id:105,href:"/2022/10/13/apache-flink-table-store-0.2.1-release-announcement/",title:"Apache Flink Table Store 0.2.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink Table Store 0.2 series.
This release includes 13 bug fixes, vulnerability fixes, and minor improvements for Flink Table Store 0.2. Below you will find a list of all bugfixes and improvements. For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink Table Store 0.2.1.
Release Artifacts # Binaries # You can find the binaries on the updated Downloads page.
-Release Notes # Bug [FLINK-29098] - StoreWriteOperator#prepareCommit should let logSinkFunction flush first before fetching offset [FLINK-29241] - Can not overwrite from empty input [FLINK-29273] - Page not enough Exception in SortBufferMemTable [FLINK-29278] - BINARY type is not supported in table store [FLINK-29295] - Clear RecordWriter slower to avoid causing frequent compaction conflicts [FLINK-29367] - Avoid manifest corruption for incorrect checkpoint recovery [FLINK-29369] - Commi [...]
+Release Notes # Bug [FLINK-29098] - StoreWriteOperator#prepareCommit should let logSinkFunction flush first before fetching offset [FLINK-29241] - Can not overwrite from empty input [FLINK-29273] - Page not enough Exception in SortBufferMemTable [FLINK-29278] - BINARY type is not supported in table store [FLINK-29295] - Clear RecordWriter slower to avoid causing frequent compaction conflicts [FLINK-29367] - Avoid manifest corruption for incorrect checkpoint recovery [FLINK-29369] - Commi [...]
Release Highlights # Standalone deployment mode support Improved upgrade flow Readiness and liveness probes Flexible job jar handling Standalone deployment mode support # Until now the operator relied exclusively on Flink’s built-in Native Kubernetes integration to deploy and manage Flink clusters. When using the Native deployment mode the Flink cluster communicates directly with Kubernetes to allocate/deallocate TaskManager resources on the fly. While this leads to a very simple deploym [...]
Flink Kubernetes Operator 1.2.0 brings Standalone mode support for FlinkDeployment resources.
When using the standalone mode, the operator itself sets up the Job and TaskManager resources for the Flink cluster. Flink processes then run without any need for Kubernetes access. In fact in this mode the Flink cluster itself is unaware that it is running in a Kubernetes environment. If unknown or external code is being executed on the Flink cluster then Standalone mode adds another layer of security.
@@ -1705,11 +1727,11 @@ This can be especially valuable in session deployments when multiple jobs, reusi
Release Resources # The source artifacts and helm chart are now available on the updated Downloads page of the Flink website.
$ helm repo add flink-kubernetes-operator-1.2.0 https://archive.apache.org/dist/flink/flink-kubernetes-operator-1.2.0/ $ helm install flink-kubernetes-operator flink-kubernetes-operator-1.2.0/flink-kubernetes-operator --set webhook.create=false You can also find official Kubernetes Operator Docker images of the new version on [Dockerhub](https://hub.docker.com/r/apache/flink-kubernetes-operator). For more details, check the updated documentation and the release notes. We encourage you to [...]
List of Contributors # Aitozi, Avocadomaster, ConradJam, Dylan Meissner, Gabor Somogyi, Gaurav Miglani, Gyula Fora, Jeesmon Jacob, Joao Ubaldo, Marton Balassi, Matyas Orhidi, Maximilian Michels, Nicholas Jiang, Peter Huang, Robson Roberto Souza Peixoto, Thomas Weise, Tim, Usamah Jassat, Xin Hao, Yaroslav Tkachenko
-`}),e.add({id:106,href:"/2022/09/28/apache-flink-1.14.6-release-announcement/",title:"Apache Flink 1.14.6 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce another bug fix release for Flink 1.14.
+`}),e.add({id:107,href:"/2022/09/28/apache-flink-1.14.6-release-announcement/",title:"Apache Flink 1.14.6 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce another bug fix release for Flink 1.14.
This release includes 34 bug fixes, vulnerability fixes and minor improvements for Flink 1.14. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.14.6.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.14.6</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.14.6</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.14.6 Release Notes # Bug [FLINK-24862] - The user-defined hive udaf/udtf cannot be used normally in hive dialect [FLINK-25454] - Negative time in throughput calculator [FLINK-27041] - KafkaSource in batch mode failing if any topic partition is empty [FLINK-27399] - Pulsar connector didn't set start consuming position correctly [FLINK-27418] - Flink SQL TopN result is wrong [FLINK-2768 [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.14.6 Release Notes # Bug [FLINK-24862] - The user-defined hive udaf/udtf cannot be used normally in hive dialect [FLINK-25454] - Negative time in throughput calculator [FLINK-27041] - KafkaSource in batch mode failing if any topic partition is empty [FLINK-27399] - Pulsar connector didn't set start consuming position correctly [FLINK-27418] - Flink SQL TopN result is wrong [FLINK-2768 [...]
Within a few hours of the announcement several people reached out to the Flink project, worrying about the impact this has on Flink, as we use Akka internally.
The purpose of this blogpost is to clarify our position on the matter.
Please be aware that this topic is still quite fresh, and things are subject to change.
@@ -1730,7 +1752,7 @@ Yes, critical security updates and critical bugs will be patched in Akka v2.6.x
How does Flink use Akka? # Akka is used in the coordination layer of Flink to
exchange status messages between processes/components (e.g., JobManager and TaskManager), enforce certain guarantees w.r.t. multi-threading (i.e., only one thread can make changes to the internal state of a component) observe components for unexpected crashes (i.e., notice and handle TaskManager thread crashes). What this means is that we are using very few functionalities of Akka.
Additionally, that we use Akka is an implementation detail that the vast majority of Flink code isn’t aware of, meaning that we can replace it with something else without having to change Flink significantly.
-`}),e.add({id:108,href:"/2022/08/29/apache-flink-table-store-0.2.0-release-announcement/",title:"Apache Flink Table Store 0.2.0 Release Announcement",section:"Flink Blog",content:` The Apache Flink community is pleased to announce the release of the Apache Flink Table Store (0.2.0).
+`}),e.add({id:109,href:"/2022/08/29/apache-flink-table-store-0.2.0-release-announcement/",title:"Apache Flink Table Store 0.2.0 Release Announcement",section:"Flink Blog",content:` The Apache Flink community is pleased to announce the release of the Apache Flink Table Store (0.2.0).
Please check out the full documentation for detailed information and user guides.
What is Flink Table Store # Flink Table Store is a data lake storage for streaming updates/deletes changelog ingestion and high-performance queries in real time.
As a new type of updatable data lake, Flink Table Store has the following features:
@@ -1746,12 +1768,12 @@ Streaming Changelog Concurrent Writes, the separation of Compaction. Aggregation
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # The Apache Flink community would like to thank every one of the contributors that have made this release possible:
Jane Chan, Jia Liu, Jingsong Lee, liliwei, Nicholas Jiang, openinx, tsreaper
-`}),e.add({id:109,href:"/2022/08/24/apache-flink-1.15.2-release-announcement/",title:"Apache Flink 1.15.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.15 series.
+`}),e.add({id:110,href:"/2022/08/24/apache-flink-1.15.2-release-announcement/",title:"Apache Flink 1.15.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.15 series.
This release includes 30 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.15.2.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.15.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.15.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.15.2 Upgrade Notes # For Table API: 1.15.0 and 1.15.1 generated non-deterministic UIDs for operators that make it difficult/impossible to restore state or upgrade to next patch version. A new table.exec.uid.generation config option (with correct default behavior) disables setting a UID for new pipelines from non-compiled plans. Existing pipelines can set table.exec.uid.generation=ALWAYS i [...]
-Release Notes # Bug [FLINK-23528] - stop-with-savepoint can fail with FlinkKinesisConsumer [FLINK-25097] - Bug in inner join when the filter condition is boolean type [FLINK-26931] - Pulsar sink's producer name should be unique [FLINK-27399] - Pulsar connector didn't set start consuming position correctly [FLINK-27570] - Checkpoint path error does not cause the job to stop [FLINK-27794] - The primary key obtained from MySQL is incorrect by using MysqlCatalog [FLINK-27856] - Addin [...]
+Release Notes # Bug [FLINK-23528] - stop-with-savepoint can fail with FlinkKinesisConsumer [FLINK-25097] - Bug in inner join when the filter condition is boolean type [FLINK-26931] - Pulsar sink's producer name should be unique [FLINK-27399] - Pulsar connector didn't set start consuming position correctly [FLINK-27570] - Checkpoint path error does not cause the job to stop [FLINK-27794] - The primary key obtained from MySQL is incorrect by using MysqlCatalog [FLINK-27856] - Addin [...]
With the release of Flink Kubernetes Operator 1.1.0 we are proud to announce a number of exciting new features improving the overall experience of managing Flink resources and the operator itself in production environments.
Release Highlights # A non-exhaustive list of some of the more exciting features added in the release:
Kubernetes Events on application and job state changes New operator metrics Unified and more robust reconciliation flow Periodic savepoints Custom Flink Resource Listeners Dynamic watched namespaces New built-in examples For Flink SQL and PyFlink Experimental autoscaling support Kubernetes Events for Application and Job State Changes # The operator now emits native Kubernetes Events on relevant Flink Deployment and Job changes. This includes status changes, custom resource specification [...]
@@ -1780,7 +1802,7 @@ Release Resources # The source artifacts and helm chart are available on the Dow
You can also find official Kubernetes Operator Docker images of the new version on Dockerhub.
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # Aitozi, Biao Geng, Chethan, ConradJam, Dora Marsal, Gyula Fora, Hao Xin, Hector Miuler Malpica Gallegos, Jaganathan Asokan, Jeesmon Jacob, Jim Busche, Maksim Aniskov, Marton Balassi, Matyas Orhidi, Nicholas Jiang, Peng Yuan, Peter Vary, Thomas Weise, Xin Hao, Yang Wang
-`}),e.add({id:111,href:"/2022/07/12/apache-flink-ml-2.1.0-release-announcement/",title:"Apache Flink ML 2.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink ML 2.1.0! This release focuses on improving Flink ML’s infrastructure, such as Python SDK, memory management, and benchmark framework, to facilitate the development of performant, memory-safe, and easy-to-use algorithm libraries. We validated the enhanc [...]
+`}),e.add({id:112,href:"/2022/07/12/apache-flink-ml-2.1.0-release-announcement/",title:"Apache Flink ML 2.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink ML 2.1.0! This release focuses on improving Flink ML’s infrastructure, such as Python SDK, memory management, and benchmark framework, to facilitate the development of performant, memory-safe, and easy-to-use algorithm libraries. We validated the enhanc [...]
With the improvements and performance benchmarks made in this release, we believe Flink ML’s infrastructure is ready for use by the interested developers in the community to build performant pythonic machine learning libraries.
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
Notable Features # API and Infrastructure # Supporting fine-grained per-operator memory management # Before this release, algorithm operators with internal states (e.g. the training data to be replayed for each round of iteration) store state data using the state-backend API (e.g. ListState). Such an operator either needs to store all data in memory, which risks OOM, or it needs to always store data on disk. In the latter case, it needs to read and de-serialize all data from disks repeat [...]
@@ -1801,7 +1823,7 @@ Release Notes and Resources # Please take a look at the release notes for a deta
The source artifacts is now available on the updated Downloads page of the Flink website, and the most recent distribution of Flink ML Python package is available on PyPI.
List of Contributors # The Apache Flink community would like to thank each one of the contributors that have made this release possible:
Yunfeng Zhou, Zhipeng Zhang, huangxingbo, weibo, Dong Lin, Yun Gao, Jingsong Li and mumuhhh.
-`}),e.add({id:112,href:"/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-one/",title:"FLIP-147: Support Checkpoints After Tasks Finished - Part One",section:"Flink Blog",content:` Motivation # Flink is a distributed processing engine for both unbounded and bounded streams of data. In recent versions, Flink has unified the DataStream API and the Table / SQL API to support both streaming and batch cases. Since most users require both types of data processing pipelines, th [...]
+`}),e.add({id:113,href:"/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-one/",title:"FLIP-147: Support Checkpoints After Tasks Finished - Part One",section:"Flink Blog",content:` Motivation # Flink is a distributed processing engine for both unbounded and bounded streams of data. In recent versions, Flink has unified the DataStream API and the Table / SQL API to support both streaming and batch cases. Since most users require both types of data processing pipelines, th [...]
Flink provides two execution modes under the unified programming API: the streaming mode and the batch mode. The streaming mode processes records incrementally based on the states, thus it supports both bounded and unbounded sources. The batch mode works with bounded sources and usually has a better performance for bounded jobs because it executes all the tasks in topological order and avoids random state access by pre-sorting the input records. Although batch mode is often the preferred [...]
Figure 1. A comparison of the Streaming mode and Batch mode for the example Count operator. For streaming mode, the arrived elements are not sorted, the operator would read / write the state corresponding to the element for computation. For batch mode, the arrived elements are first sorted as a whole and then processed. In streaming mode, checkpointing is the vital mechanism in supporting exactly-once guarantees. By periodically snapshotting the aligned states of operators, Flink can rec [...]
Furthermore, being unable to take checkpoints with finished tasks is a problem for jobs using two-phase-commit sinks to achieve end-to-end exactly-once processing. The two-phase-commit sinks first write data to temporary files or external transactions, and commit the data only after a checkpoint completes to ensure the data would not be replayed on failure. However, if a job contains bounded sources, committing the results would not be possible after the bounded sources finish. Also beca [...]
@@ -1821,7 +1843,7 @@ Therefore, we do not take the intuitive option. Instead, we decoupled “fin
Based on this thought, as shown in the right part of Figure 3, to decoupled the process of “finishing operator logic” and “finishing tasks”, we introduced a new EndOfData event. For each task, after executing all the operator logic it would first notify the descendants with an EndOfData event so that the descendants also have chances to finish executing the operator logic. Then all the tasks could wait for the next checkpoint or the specified savepoint concurrentl [...]
At last, it is also worthy to mention we have clarified and renamed the close() and dispose() methods in the operators’ lifecycle. The two methods are in fact different since close() is only called when the task finishes normally and dispose() is called in both cases of normal finishing and failover. However, this was not clear from their names. Therefore, we rename the two methods to finish() and close():
finish() marks the termination of the operator and no more records are allowed after finish() is called. It should only be called when sources are finished or when the -–drain parameter is specified. close() is used to do cleanup and release all the held resources. Conclusion # By supporting the checkpoints after tasks finished and revising the process of finishing, we can support checkpoints for jobs with both bounded and unbounded sources, and ensure the bounded job gets all output rec [...]
-`}),e.add({id:113,href:"/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-two/",title:"FLIP-147: Support Checkpoints After Tasks Finished - Part Two",section:"Flink Blog",content:`In the first part of this blog, we have briefly introduced the work to support checkpoints after tasks get finished and revised the process of finishing. In this part we will present more details on the implementation, including how we support checkpoints with finished tasks and the revised pro [...]
+`}),e.add({id:114,href:"/2022/07/11/flip-147-support-checkpoints-after-tasks-finished-part-two/",title:"FLIP-147: Support Checkpoints After Tasks Finished - Part Two",section:"Flink Blog",content:`In the first part of this blog, we have briefly introduced the work to support checkpoints after tasks get finished and revised the process of finishing. In this part we will present more details on the implementation, including how we support checkpoints with finished tasks and the revised pro [...]
Implementation of support Checkpointing with Finished Tasks # As described in part one, to support checkpoints after some tasks are finished, the core idea is to mark the finished operators in checkpoints and skip executing these operators after recovery. To implement this idea, we enhanced the checkpointing procedure to generate the flag and use the flag on recovery. This section presents more details on the process of taking checkpoints with finished tasks and recovery from such checkpoints.
Previously, checkpointing only worked when all tasks were running. As shown in the Figure 1, in this case the checkpoint coordinator first notify all the source tasks, and then the source tasks further notify the downstream tasks to take snapshots via barrier events. Similarly, if there are finished tasks, we need to find the new “source” tasks to initiate the checkpoint, namely those tasks that are still running but have no running precedent tasks. CheckpointCoordinator does [...]
There might be race conditions when triggering tasks: when the checkpoint coordinator decides to trigger one task and starts emitting the RPC, it is possible that the task is just finished and reporting the FINISHED status to JobManager. In this case, the RPC message would fail and the checkpoint would be aborted.
@@ -1844,16 +1866,16 @@ Task D finishes all the operators right after receiving the EndOfData event. Sin
Task E is a bit different in that it has two inputs. Task A might continue to run for a while and, thus, Task E needs to wait until it receives an EndOfData event also from the other input before finishing operators and its final checkpoint might be different.
On the other hand, when using stop-with-savepoint [--drain], the process is similar except that all the tasks need to wait for the exact savepoint before finishing instead of just any checkpoints. Moreover, since both Task C and Task A would finish at the same time, Task E would also be able to wait for this particular savepoint before finishing.
Conclusion # In this part we have presented more details of how the checkpoints are taken with finished tasks and the revised process of finishing. We hope the details could provide more insights of the thoughts and implementations for this part of work. Still, if you have any questions, please feel free to start a discussion or report an issue in the dev or user mailing list.
-`}),e.add({id:114,href:"/2022/07/06/apache-flink-1.15.1-release-announcement/",title:"Apache Flink 1.15.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.15 series.
+`}),e.add({id:115,href:"/2022/07/06/apache-flink-1.15.1-release-announcement/",title:"Apache Flink 1.15.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the first bug fix release of the Flink 1.15 series.
This release includes 62 bug fixes, vulnerability fixes, and minor improvements for Flink 1.15. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users upgrade to Flink 1.15.1.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.15.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java</artifactId> <version>1.15.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clie [...]
Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.15.1 Release Notes # The community is aware of 3 issues that were introduced with 1.15.0 that remain unresolved. Efforts are underway to fix these issues for Flink 1.15.2:
-[FLINK-28861] - Non-deterministic UID generation might cause issues during restore for Table/SQL API [FLINK-28060] - Kafka commit on checkpointing fails repeatedly after a broker restart [FLINK-28322] - DataStreamScanProvider's new method is not compatible Bug [FLINK-22984] - UnsupportedOperationException when using Python UDF to generate watermark [FLINK-24491] - ExecutionGraphInfo may not be archived when the dispatcher terminates [FLINK-24735] - SQL client crashes with \`Cannot add ex [...]
+[FLINK-28861] - Non-deterministic UID generation might cause issues during restore for Table/SQL API [FLINK-28060] - Kafka commit on checkpointing fails repeatedly after a broker restart [FLINK-28322] - DataStreamScanProvider's new method is not compatible Bug [FLINK-22984] - UnsupportedOperationException when using Python UDF to generate watermark [FLINK-24491] - ExecutionGraphInfo may not be archived when the dispatcher terminates [FLINK-24735] - SQL client crashes with \`Cannot add ex [...]
This release includes 67 bugs, vulnerability fixes and minor improvements for Flink 1.14. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.14.5.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.14.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.14.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.14.5 Release Notes # Sub-task [FLINK-25800] - Update wrong links in the datastream/execution_mode.md page. Bug [FLINK-22984] - UnsupportedOperationException when using Python UDF to generate watermark [FLINK-24491] - ExecutionGraphInfo may not be archived when the dispatcher terminates [FLINK-25227] - Comparing the equality of the same (boxed) numeric values returns false [FLINK-25440] - [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.14.5 Release Notes # Sub-task [FLINK-25800] - Update wrong links in the datastream/execution_mode.md page. Bug [FLINK-22984] - UnsupportedOperationException when using Python UDF to generate watermark [FLINK-24491] - ExecutionGraphInfo may not be archived when the dispatcher terminates [FLINK-25227] - Comparing the equality of the same (boxed) numeric values returns false [FLINK-25440] - [...]
To decide a proper parallelism, one needs to know how much data each operator needs to process. However, It can be hard to predict data volume to be processed by a job because it can be different everyday. And it can be harder or even impossible (due to complex operators or UDFs) to predict data volume to be processed by each operator.
To solve this problem, we introduced the adaptive batch scheduler in Flink 1.15. The adaptive batch scheduler can automatically decide parallelism of an operator according to the size of its consumed datasets. Here are the benefits the adaptive batch scheduler can bring:
Batch job users can be relieved from parallelism tuning. Parallelism tuning is fine grained considering different operators. This is particularly beneficial for SQL jobs which can only be set with a global parallelism previously. Parallelism tuning can better fit consumed datasets which have a varying volume size every day. Get Started # To automatically decide parallelism of operators, you need to:
@@ -1888,7 +1910,7 @@ Fig. 4 - How subpartitions serve consumer execution vertices with dynamic graph
The scheduler will try to decide the parallelism of all job vertices before handling each scheduling event, and the parallelism decision will be made for each job vertex in topological order:
For source vertices, the parallelism should have been decided before starting scheduling. For non-source vertices, the parallelism can be decided only when all its consumed results are fully produced. After deciding the parallelism, the scheduler will try to initialize the job vertices in topological order. A job vertex that can be initialized should meet the following conditions:
The parallelism of the job vertex has been decided and the job vertex has not been initialized yet. All upstream job vertices have been initialized. Future improvement # Auto-rebalancing of workloads # When running batch jobs, data skew may occur (a task needs to process much larger data than other tasks), which leads to long-tail tasks and further slows down the finish of jobs. Users usually hope that the system can automatically solve this problem. One typical data skew case is that so [...]
-Fig. 5 - Auto-rebalance with finer grained subpartitions `}),e.add({id:117,href:"/2022/06/05/apache-flink-kubernetes-operator-1.0.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.0.0 Release Announcement",section:"Flink Blog",content:`In the last two months since our initial preview release the community has been hard at work to stabilize and improve the core Flink Kubernetes Operator logic. We are now proud to announce the first production ready release of the operator [...]
+Fig. 5 - Auto-rebalance with finer grained subpartitions `}),e.add({id:118,href:"/2022/06/05/apache-flink-kubernetes-operator-1.0.0-release-announcement/",title:"Apache Flink Kubernetes Operator 1.0.0 Release Announcement",section:"Flink Blog",content:`In the last two months since our initial preview release the community has been hard at work to stabilize and improve the core Flink Kubernetes Operator logic. We are now proud to announce the first production ready release of the operator [...]
Release Highlights # The Flink Kubernetes Operator 1.0.0 version brings numerous improvements and new features to almost every aspect of the operator.
New v1beta1 API version & compatibility guarantees Session Job Management support Support for Flink 1.13, 1.14 and 1.15 Deployment recovery and rollback New Operator metrics Improved configuration management Custom validators Savepoint history and cleanup New API version and compatibility guarantees # The 1.0.0 release brings a new API version: v1beta1.
Don’t let the name confuse you, we consider v1beta1 the first production ready API release, and we will maintain backward compatibility for your applications going forward.
@@ -1911,7 +1933,7 @@ $ helm repo add flink-kubernetes-operator-1.0.0 https://archive.apache.org/dist/
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # The Apache Flink community would like to thank each and every one of the contributors that have made this release possible:
Aitozi, Biao Geng, ConradJam, Fuyao Li, Gyula Fora, Jaganathan Asokan, James Busche, liuzhuo, Márton Balassi, Matyas Orhidi, Nicholas Jiang, Ted Chang, Thomas Weise, Xin Hao, Yang Wang, Zili Chen
-`}),e.add({id:118,href:"/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/",title:"Improving speed and stability of checkpointing with generic log-based incremental checkpoints",section:"Flink Blog",content:` Introduction # One of the most important characteristics of stream processing systems is end-to-end latency, i.e. the time it takes for the results of processing an input record to reach the outputs. In the case of Flink, end-t [...]
+`}),e.add({id:119,href:"/2022/05/30/improving-speed-and-stability-of-checkpointing-with-generic-log-based-incremental-checkpoints/",title:"Improving speed and stability of checkpointing with generic log-based incremental checkpoints",section:"Flink Blog",content:` Introduction # One of the most important characteristics of stream processing systems is end-to-end latency, i.e. the time it takes for the results of processing an input record to reach the outputs. In the case of Flink, end-t [...]
Furthermore, сheckpoint duration also defines the reasonable interval with which checkpoints are made. A shorter interval provides the following advantages:
Lower latency for transactional sinks: Transactional sinks commit on checkpoints, so faster checkpoints mean more frequent commits. More predictable checkpoint intervals: Currently, the duration of a checkpoint depends on the size of the artifacts that need to be persisted in the checkpoint storage. Less work on recovery. The more frequently the checkpoint, the fewer events need to be re-processed after recovery. Following are the main factors affecting checkpoint duration in Flink:
Barrier travel time and alignment duration Time to take state snapshot and persist it onto the durable highly-available storage (such as S3) Recent improvements such as Unaligned checkpoints and Buffer debloating try to address (1), especially in the presence of back-pressure. Previously, Incremental checkpoints were introduced to reduce the size of a snapshot, thereby reducing the time required to store it (2).
@@ -1955,7 +1977,7 @@ Besides that, we are investigating other applications of Changelog, such as WAL
We encourage you to try out this feature and assess the pros and cons of using it in your setup. The simplest way to do this it is to add the following to your flink-conf.yaml:
state.backend.changelog.enabled: true state.backend.changelog.storage: filesystem dstl.dfs.base-path: <location similar to state.checkpoints.dir> Please see the full documentation here.
Acknowledgments # We thank Stephan Ewen for the initial idea of the project, and many other engineers including Piotr Nowojski, Yu Li and Yun Tang for design discussions and code reviews.
-References # FLIP-158 generic log-based incremental checkpoints documentation Unaligned checkpoints Buffer debloating Incremental checkpoints `}),e.add({id:119,href:"/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/",title:"Getting into Low-Latency Gears with Apache Flink - Part Two",section:"Flink Blog",content:`This series of blog posts present a collection of low-latency techniques in Flink. In part one, we discussed the types of latency in Flink and the way we me [...]
+References # FLIP-158 generic log-based incremental checkpoints documentation Unaligned checkpoints Buffer debloating Incremental checkpoints `}),e.add({id:120,href:"/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/",title:"Getting into Low-Latency Gears with Apache Flink - Part Two",section:"Flink Blog",content:`This series of blog posts present a collection of low-latency techniques in Flink. In part one, we discussed the types of latency in Flink and the way we me [...]
Direct latency optimization # Spread work across time # When you use timers or do windowing in a job, timer or window firing may create load spikes due to heavy computation or state access. If the allocated resources cannot cope with these load spikes, timer or window firing will take a long time to finish. This often results in high latency.
To avoid this situation, you should change your code to spread out the workload as much as possible such that you do not accumulate too much work to be done at a single point in time. In the case of windowing, you should consider using incremental window aggregation with AggregateFunction or ReduceFunction. In the case of timers in a ProcessFunction, the operations executed in the onTimer() method should be optimized such that the time spent there is reduced to a minimum. If you see late [...]
You can apply this optimization if you are using timer-based processing (e.g., timers, windowing) and an efficient aggregation can be applied whenever an event arrives instead of waiting for timers to fire.
@@ -1976,7 +1998,7 @@ Process events on arrival # In a stream processing pipeline, there often exists
You can apply this optimization if your job has a sub-second level latency requirement (e.g., hundreds of milliseconds) and the reduced watermarking interval still contributes a significant part of the latency.
Keep in mind that this may change your job logic considerably since you have to deal with out-of-order events by yourself.
Summary # Following part one, this blog post presented a few more latency optimization techniques with a focus on direct latency optimization. In the next part, we will focus on techniques that optimize latency by increasing throughput. Stay tuned!
-`}),e.add({id:120,href:"/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/",title:"Getting into Low-Latency Gears with Apache Flink - Part One",section:"Flink Blog",content:`Apache Flink is a stream processing framework well known for its low latency processing capabilities. It is generic and suitable for a wide range of use cases. As a Flink application developer or a cluster administrator, you need to find the right gear that is best for your application. In other w [...]
+`}),e.add({id:121,href:"/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/",title:"Getting into Low-Latency Gears with Apache Flink - Part One",section:"Flink Blog",content:`Apache Flink is a stream processing framework well known for its low latency processing capabilities. It is generic and suitable for a wide range of use cases. As a Flink application developer or a cluster administrator, you need to find the right gear that is best for your application. In other w [...]
In this multi-part series, we will present a collection of low-latency techniques in Flink. Part one starts with types of latency in Flink and the way we measure the end-to-end latency, followed by a few techniques that optimize latency directly. Part two continues with a few more direct latency optimization techniques. Further parts of this series will cover techniques that improve latencies by optimizing throughput. For each optimization technique, we will clarify what it is, when to u [...]
This series of blog posts is a write-up of our talk in Flink Forward Global 2021 and includes additional latency optimization techniques and details.
Latency # Types of latency # Latency can refer to different things. LatencyMarkers in Flink measure the time it takes for the markers to travel from each source operator to each downstream operator. As LatencyMarkers bypass user functions in operators, the measured latencies do not reflect the entire end-to-end latency but only a part of it. Flink also supports tracking the state access latency, which measures the response latency when state is read/written. One can also manually measure [...]
@@ -2001,7 +2023,7 @@ You can apply this optimization if you are aiming for sub-second latencies.
Keep in mind that network buffer timeout that is too low may reduce throughput.
As seen in the following experiment results, by using execution.buffer-timeout: 10 ms in WindowingJob, we again reduced the latency (now to 370ms).
Summary # In part one of this multi-part series, we discussed types of latency in Flink and the way we measure end-to-end latency. Then we presented a few latency optimization techniques with a focus on direct latency optimization. For each technique, we explained what it is, when to use it, and what to keep in mind when using it. Part two will continue with a few more direct latency optimization techniques. Stay tuned!
-`}),e.add({id:121,href:"/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/",title:"Apache Flink Table Store 0.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the preview release of the Apache Flink Table Store (0.1.0).
+`}),e.add({id:122,href:"/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/",title:"Apache Flink Table Store 0.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the preview release of the Apache Flink Table Store (0.1.0).
Please check out the full documentation for detailed information and user guides.
Note: Flink Table Store is still in beta status and undergoing rapid development. We do not recommend that you use it directly in a production environment.
What is Flink Table Store # In the past years, thanks to our numerous contributors and users, Apache Flink has established itself as one of the best distributed computing engines, especially for stateful stream processing at large scale. However, there are still a few challenges people are facing when they try to obtain insights from their data in real-time. Among these challenges, one prominent problem is lack of storage that caters to all the computing patterns.
@@ -2019,7 +2041,7 @@ Release Resources # The source artifacts and binaries are now available on the u
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # The Apache Flink community would like to thank every one of the contributors that have made this release possible:
Jane Chan, Jiangjie (Becket) Qin, Jingsong Lee, Leonard Xu, Nicholas Jiang, Shen Zhu, tsreaper, Yubin Li
-`}),e.add({id:122,href:"/2022/05/06/exploring-the-thread-mode-in-pyflink/",title:"Exploring the thread mode in PyFlink",section:"Flink Blog",content:`PyFlink was introduced in Flink 1.9 which purpose is to bring the power of Flink to Python users and allow Python users to develop Flink jobs in Python language. The functionality becomes more and more mature through the development in the past releases.
+`}),e.add({id:123,href:"/2022/05/06/exploring-the-thread-mode-in-pyflink/",title:"Exploring the thread mode in PyFlink",section:"Flink Blog",content:`PyFlink was introduced in Flink 1.9 which purpose is to bring the power of Flink to Python users and allow Python users to develop Flink jobs in Python language. The functionality becomes more and more mature through the development in the past releases.
Before Flink 1.15, Python user-defined functions will be executed in separate Python processes (based on the Apache Beam Portability Framework). It will bring additional serialization/deserialization overhead and also communication overhead. In scenarios where the data size is big, e.g. image processing, etc, this overhead becomes non-negligible. Besides, since it involves inter-process communication, the processing latency is also non-negligible, which is unacceptable in scenarios where [...]
In Flink 1.15, we have introduced a new execution mode named ’thread’ mode (based on PEMJA) where the Python user-defined functions will be executed in the JVM as a thread instead of a separate Python process. In this article, we will dig into the details about this execution mode and also share some benchmark data to give users a basic understanding of how it works and which scenarios it’s applicable for.
Process Mode # Fig. 1 - PyFlink Architecture Overview From Fig. 1, we can see the architecture of PyFlink. As shown on the left side of Fig.1, users could use PyFlink API(Python Table API & SQL or Python DataStream API) to declare the logic of jobs, which will be finally translated into JobGraph (DAG of the job) which could be recognized by Flink’s execution framework. It should be noted that Python operators (Flink operators whose purpose is to execute Python user-defined functions) [...]
@@ -2061,7 +2083,7 @@ Thread mode can bring better performance than process mode when data serializati
When the performance of Python UDF is close to that of Java UDF, the end-to-end performance of thread mode will be close to that of Java UDF.
Summary & Future work # In this article, we have introduced the ’thread’ execution mode in PyFlink which is a new feature introduced in Flink 1.15. Compared with the ‘process’ execution mode, users will get better performance, lower latency, less checkpoint time in ’thread’ mode. However, there are also some limitations about ’thread’ mode, e.g. poor support for session deployment mode, etc.
It should be noted that since this is still the first release of ’thread’ mode, currently there are still many limitations about it, e.g. it only supports Python ScalarFunction of Python Table API & SQL. We’re planning to extend it to other places where Python user-defined functions could be used in next releases.
-`}),e.add({id:123,href:"/2022/05/06/improvements-to-flink-operations-snapshots-ownership-and-savepoint-formats/",title:"Improvements to Flink operations: Snapshots Ownership and Savepoint Formats",section:"Flink Blog",content:`Flink has become a well established data streaming engine and a mature project requires some shifting of priorities from thinking purely about new features towards improving stability and operational simplicity. In the last couple of releases, the Flink community h [...]
+`}),e.add({id:124,href:"/2022/05/06/improvements-to-flink-operations-snapshots-ownership-and-savepoint-formats/",title:"Improvements to Flink operations: Snapshots Ownership and Savepoint Formats",section:"Flink Blog",content:`Flink has become a well established data streaming engine and a mature project requires some shifting of priorities from thinking purely about new features towards improving stability and operational simplicity. In the last couple of releases, the Flink community h [...]
This post will outline the journey of improving snapshotting in past releases and the upcoming improvements in Flink 1.15, which includes making it possible to take savepoints in the native state backend specific format as well as clarifying snapshots ownership.
Past improvements to the snapshotting process # Flink 1.13 was the first release where we announced unaligned checkpoints to be production-ready. We encouraged people to use them if their jobs are backpressured to a point where it causes issues for checkpoints. We also unified the binary format of savepoints across all different state backends, which enables stateful switching of savepoints.
Flink 1.14 also brought additional improvements. As an alternative and as a complement to unaligned checkpoints, we introduced a feature called “buffer debloating”. This is built around the concept of automatically adjusting the amount of in-flight data that needs to be aligned while snapshotting. We also fixed another long-standing problem and made it possible to continue checkpointing even if there are finished tasks in a JobGraph.
@@ -2086,7 +2108,7 @@ You can choose the savepoint format when triggering the savepoint like this:
Having additional dimensions of properties in each of the two main snapshots category does not make it easier, therefore we try to list what you can achieve with every type of snapshot.
The following table gives an overview of capabilities and limitations for the various types of savepoints and checkpoints.
✓ - Flink fully supports this type of snapshot x - Flink doesn’t support this type of snapshot Operation Canonical Savepoint Native Savepoint Aligned Checkpoint Unaligned Checkpoint State backend change ✓ x x x State Processor API(writing) ✓ x x x State Processor API(reading) ✓ ✓ ✓ x Self-contained and relocatable ✓ ✓ x x Schema evolution ✓ ✓ ✓ ✓ Arbitrary job upgrade ✓ ✓ ✓ x Non-arbitrary job upgrade ✓ ✓ ✓ x Flink minor version upgrade ✓ ✓ ✓ x Flink bug/patch version upgrade ✓ ✓ ✓ [...]
-`}),e.add({id:124,href:"/2022/05/05/announcing-the-release-of-apache-flink-1.15/",title:"Announcing the Release of Apache Flink 1.15",section:"Flink Blog",content:`Thanks to our well-organized and open community, Apache Flink continues to grow as a technology and remain one of the most active projects in the Apache community. With the release of Flink 1.15, we are proud to announce a number of exciting changes.
+`}),e.add({id:125,href:"/2022/05/05/announcing-the-release-of-apache-flink-1.15/",title:"Announcing the Release of Apache Flink 1.15",section:"Flink Blog",content:`Thanks to our well-organized and open community, Apache Flink continues to grow as a technology and remain one of the most active projects in the Apache community. With the release of Flink 1.15, we are proud to announce a number of exciting changes.
One of the main concepts that makes Apache Flink stand out is the unification of batch (aka bounded) and stream (aka unbounded) data processing, which helps reduce the complexity of development. A lot of effort went into this unification in the previous releases, and you can expect more efforts in this direction.
Apache Flink is not only growing when it comes to contributions and users, but also out of the original use cases. We are seeing a trend towards more business/analytics use cases implemented in low-/no-code. Flink SQL is the feature in the Flink ecosystem that enables such uses cases and this is why its popularity continues to grow.
Apache Flink is an essential building block in data pipelines/architectures and is used with many other technologies in order to drive all sorts of use cases. While new ideas/products may appear in this domain, existing technologies continue to establish themselves as standards for solving mission-critical problems. Knowing that we have such a wide reach and play a role in the success of many projects, it is important that the experience of integrating Apache Flink with the cloud infrast [...]
@@ -2141,7 +2163,7 @@ Moving forward, the community will continue to focus on making Apache Flink a tr
Upgrade Notes # While we aim to make upgrades as smooth as possible, some of the changes require users to adjust some parts of the program when upgrading to Apache Flink 1.15. Please take a look at the release notes for a list of applicable adjustments and issues during upgrades. The one big thing worth mentioning when upgrading is the updated dependencies without the Scala version. Get the details here.
List of Contributors # The Apache Flink community would like to thank each and every one of the contributors that have made this release possible:
Ada Wong, Ahmed Hamdy, Aitozi, Alexander Fedulov, Alexander Preuß, Alexander Trushev, Ali Bahadir Zeybek, Anton Kalashnikov, Arvid Heise, Bernard Joseph Jean Bruno, Bo Cui, Brian Zhou, Camile, ChangLi, Chengkai Yang, Chesnay Schepler, Daisy T, Danny Cranmer, David Anderson, David Moravek, David N Perkins, Dawid Wysakowicz, Denis-Cosmin Nutiu, Dian Fu, Dong Lin, Eelis Kostiainen, Etienne Chauchot, Fabian Paul, Francesco Guardiani, Gabor Somogyi, Galen Warren, Gao Yun, Gen Luo, GitHub, Gyu [...]
-`}),e.add({id:125,href:"/2022/04/03/apache-flink-kubernetes-operator-0.1.0-release-announcement/",title:"Apache Flink Kubernetes Operator 0.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the preview release of the Apache Flink Kubernetes Operator (0.1.0)
+`}),e.add({id:126,href:"/2022/04/03/apache-flink-kubernetes-operator-0.1.0-release-announcement/",title:"Apache Flink Kubernetes Operator 0.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce the preview release of the Apache Flink Kubernetes Operator (0.1.0)
The Flink Kubernetes Operator allows users to easily manage their Flink deployment lifecycle using native Kubernetes tooling.
The operator takes care of submitting, savepointing, upgrading and generally managing Flink jobs using the built-in Flink Kubernetes integration. This way users do not have to use the Flink Clients (e.g. CLI) or interact with the Flink jobs manually, they only have to declare the desired deployment specification and the operator will take care of the rest. It also make it easier to integrate Flink job management with CI/CD tooling.
Core Features
@@ -2161,7 +2183,7 @@ $ helm repo add flink-kubernetes-operator-0.1.0 https://archive.apache.org/dist/
For more details, check the updated documentation and the release notes. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
List of Contributors # The Apache Flink community would like to thank each and every one of the contributors that have made this release possible:
Aitozi, Biao Geng, Gyula Fora, Hao Xin, Jaegu Kim, Jaganathan Asokan, Junfan Zhang, Marton Balassi, Matyas Orhidi, Nicholas Jiang, Sandor Kelemen, Thomas Weise, Yang Wang, 愚鲤
-`}),e.add({id:126,href:"/2022/03/16/the-generic-asynchronous-base-sink/",title:"The Generic Asynchronous Base Sink",section:"Flink Blog",content:`Flink sinks share a lot of similar behavior. Most sinks batch records according to user-defined buffering hints, sign requests, write them to the destination, retry unsuccessful or throttled requests, and participate in checkpointing.
+`}),e.add({id:127,href:"/2022/03/16/the-generic-asynchronous-base-sink/",title:"The Generic Asynchronous Base Sink",section:"Flink Blog",content:`Flink sinks share a lot of similar behavior. Most sinks batch records according to user-defined buffering hints, sign requests, write them to the destination, retry unsuccessful or throttled requests, and participate in checkpointing.
This is why for Flink 1.15 we have decided to create the AsyncSinkBase (FLIP-171), an abstract sink with a number of common functionalities extracted.
This is a base implementation for asynchronous sinks, which you should use whenever you need to implement a sink that doesn’t offer transactional capabilities. Adding support for a new destination now only requires a lightweight shim that implements the specific interfaces of the destination using a client that supports async requests.
This common abstraction will reduce the effort required to maintain individual sinks that extend from this abstract sink, with bug fixes and improvements to the sink core benefiting all implementations that extend it. The design of AsyncSinkBase focuses on extensibility and a broad support of destinations. The core of the sink is kept generic and free of any connector-specific dependencies.
@@ -2186,11 +2208,11 @@ Metrics # There are three metrics that automatically exist when you implement si
CurrentSendTime Gauge - returns the amount of time in milliseconds it took for the most recent request to write records to complete, whether successful or not. NumBytesOut Counter - counts the total number of bytes the sink has tried to write to the destination, using the method getSizeInBytes to determine the size of each record. This will double count failures that may need to be retried. NumRecordsOut Counter - similar to above, this counts the total number of records the sink has tri [...]
int maxBatchSize - maximum number of elements that may be passed in the list to submitRequestEntries to be written downstream. int maxInFlightRequests - maximum number of uncompleted calls to submitRequestEntries that the SinkWriter will allow at any given point. Once this point has reached, writes and callbacks to add elements to the buffer may block until one or more requests to submitRequestEntries completes. int maxBufferedRequests - maximum buffer length. Callbacks to add elements t [...]
Summary # The AsyncSinkBase is a new abstraction that makes creating and maintaining async sinks easier. This will be available in Flink 1.15 and we hope that you will try it out and give us feedback on it.
-`}),e.add({id:127,href:"/2022/03/11/apache-flink-1.14.4-release-announcement/",title:"Apache Flink 1.14.4 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce another bug fix release for Flink 1.14.
+`}),e.add({id:128,href:"/2022/03/11/apache-flink-1.14.4-release-announcement/",title:"Apache Flink 1.14.4 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce another bug fix release for Flink 1.14.
This release includes 51 bug and vulnerability fixes and minor improvements for Flink 1.14. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.14.4.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.14.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.14.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.14.4 Release Notes # Sub-task [FLINK-21788] - Throw PartitionNotFoundException if the partition file has been lost for blocking shuffle [FLINK-24954] - Reset read buffer request timeout on buffer recycling for sort-shuffle [FLINK-25653] - Move buffer recycle in SortMergeSubpartitionReader out of lock to avoid deadlock [FLINK-25654] - Remove the redundant lock in SortMergeResultPartition [ [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.14.4 Release Notes # Sub-task [FLINK-21788] - Throw PartitionNotFoundException if the partition file has been lost for blocking shuffle [FLINK-24954] - Reset read buffer request timeout on buffer recycling for sort-shuffle [FLINK-25653] - Move buffer recycle in SortMergeSubpartitionReader out of lock to avoid deadlock [FLINK-25654] - Remove the redundant lock in SortMergeResultPartition [ [...]
Fig.1 Flink 1.15 Scala 3 Example This blog will discuss what has historically made supporting multiple Scala versions so complex, how we achieved this milestone, and the future of Scala in Apache Flink.
TLDR: All Scala dependencies are now isolated to the flink-scala jar. To remove Scala from the user-code classpath, remove this jar from the lib directory of the Flink distribution. $ rm flink-dist/lib/flink-scala* The Classpath and Scala # If you have worked with a JVM-based application, you have probably heard the term classpath. The classpath defines where the JVM will search for a given classfile when it needs to be loaded. There may only be one instance of a classfile on each classp [...]
The Apache Flink runtime is primarily written in Java but contains critical components that forced Scala on the default classpath. And because Scala does not maintain binary compatibility across minor releases, this historically required cross-building components for all versions of Scala. But due to many reasons - breaking changes in the compiler, a new standard library, and a reworked macro system - this was easier said than done.
@@ -2209,11 +2231,11 @@ https://nightlies.apache.org/flink/flink-docs-master/docs/dev/configuration/adva
https://github.com/ariskk/flink4s ↩︎
https://github.com/flink-extended/flink-scala-api ↩︎
https://github.com/sjwiesman/flink-scala-3 ↩︎
-`}),e.add({id:129,href:"/2022/02/18/apache-flink-1.13.6-release-announcement/",title:"Apache Flink 1.13.6 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce another bug fix release for Flink 1.13.
+`}),e.add({id:130,href:"/2022/02/18/apache-flink-1.13.6-release-announcement/",title:"Apache Flink 1.13.6 Release Announcement",section:"Flink Blog",content:`The Apache Flink Community is pleased to announce another bug fix release for Flink 1.13.
This release includes 99 bug and vulnerability fixes and minor improvements for Flink 1.13 including another upgrade of Apache Log4j (to 2.17.1). Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.13.6.
Release Artifacts # Maven Dependencies # <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.13.6</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.13.6</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink [...]
-Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.13.6 Release Notes # Bug [FLINK-15987] - SELECT 1.0e0 / 0.0e0 throws NumberFormatException [FLINK-17914] - HistoryServer deletes cached archives if archive listing fails [FLINK-20195] - Jobs endpoint returns duplicated jobs [FLINK-20370] - Result is wrong when sink primary key is not the same with query [FLINK-21289] - Application mode ignores the pipeline.classpaths configuration [FLINK- [...]
+Docker Images # library/flink (official images) apache/flink (ASF repository) PyPi # apache-flink==1.13.6 Release Notes # Bug [FLINK-15987] - SELECT 1.0e0 / 0.0e0 throws NumberFormatException [FLINK-17914] - HistoryServer deletes cached archives if archive listing fails [FLINK-20195] - Jobs endpoint returns duplicated jobs [FLINK-20370] - Result is wrong when sink primary key is not the same with query [FLINK-21289] - Application mode ignores the pipeline.classpaths configuration [FLINK- [...]
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Java SDK, Python SDK,, GoLang SDK and JavaScript SDK distributions are available on Maven, PyPI, Github, and npm respectively. You can also find official StateFun Docker images of the new version on Dockerhub.
For more details, check the complete release changelog and the updated documentation. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA!
New Features # A brand new JavaScript SDK for NodeJS # Stateful Functions provides a unified model for building stateful applications across various programming languages and deployment environments. The community is thrilled to release an official JavaScript SDK as part of the 3.2.0 release.
@@ -2229,7 +2251,7 @@ Upgraded Flink dependency to 1.14.3 # Stateful Functions 3.2.0 runtime uses Flin
Release Notes # Please review the release notes for a detailed list of changes and new features if you plan to upgrade your setup to Stateful Functions 3.2.0.
List of Contributors # Seth Wiesman, Igal Shilman, Till Rohrmann, Stephan Ewen, Tzu-Li (Gordon) Tai, Ingo Bürk, Evans Ye, neoXfire, Galen Warren
If you’d like to get involved, we’re always looking for new contributors.
-`}),e.add({id:131,href:"/2022/01/20/pravega-flink-connector-101/",title:"Pravega Flink Connector 101",section:"Flink Blog",content:`Pravega, which is now a CNCF sandbox project, is a cloud-native storage system based on abstractions for both batch and streaming data consumption. Pravega streams (a new storage abstraction) are durable, consistent, and elastic, while natively supporting long-term data retention. In comparison, Apache Flink is a popular real-time computing engine that provi [...]
+`}),e.add({id:132,href:"/2022/01/20/pravega-flink-connector-101/",title:"Pravega Flink Connector 101",section:"Flink Blog",content:`Pravega, which is now a CNCF sandbox project, is a cloud-native storage system based on abstractions for both batch and streaming data consumption. Pravega streams (a new storage abstraction) are durable, consistent, and elastic, while natively supporting long-term data retention. In comparison, Apache Flink is a popular real-time computing engine that provi [...]
That’s also the main reason why Pravega has chosen to use Flink as the first integrated execution engine among the various distributed computing engines on the market. With the help of Flink, users can use flexible APIs for windowing, complex event processing (CEP), or table abstractions to process streaming data easily and enrich the data being stored. Since its inception in 2016, Pravega has established communication with Flink PMC members and developed the connector together.
In 2017, the Pravega Flink connector module started to move out of the Pravega main repository and has been maintained in a new separate repository since then. During years of development, many features have been implemented, including:
exactly-once processing guarantees for both Reader and Writer, supporting end-to-end exactly-once processing pipelines seamless integration with Flink’s checkpoints and savepoints parallel Readers and Writers supporting high throughput and low latency processing support for Batch, Streaming, and Table API to access Pravega Streams These key features make streaming pipeline applications easier to develop without worrying about performance and correctness which are the common pain po [...]
@@ -2270,12 +2292,12 @@ Summary # The Pravega Flink connector enables Pravega to connect to Flink and al
Future plans # FlinkPravegaInputFormat and FlinkPravegaOutputFormat are now provided to support batch reads and writes in Flink, but these are under the legacy DataSet API. Since Flink is now making efforts to unify batch and streaming, it is improving its APIs and providing new interfaces for the source and sink APIs in the Flink 1.11 and 1.12 releases. We will continue to work with the Flink community and integrate with the new APIs.
We will also put more effort into SQL / Table API support in order to provide a better user experience since it is simpler to understand and even more powerful to use in some cases.
Note: the original blog post can be found here.
-`}),e.add({id:132,href:"/2022/01/17/apache-flink-1.14.3-release-announcement/",title:"Apache Flink 1.14.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.14 series. The first bugfix release was 1.14.2, being an emergency release due to an Apache Log4j Zero Day (CVE-2021-44228). Flink 1.14.1 was abandoned. That means that this Flink release is the first bugfix release of the Flink 1.14 series which con [...]
+`}),e.add({id:133,href:"/2022/01/17/apache-flink-1.14.3-release-announcement/",title:"Apache Flink 1.14.3 Release Announcement",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.14 series. The first bugfix release was 1.14.2, being an emergency release due to an Apache Log4j Zero Day (CVE-2021-44228). Flink 1.14.1 was abandoned. That means that this Flink release is the first bugfix release of the Flink 1.14 series which con [...]
This release includes 164 fixes and minor improvements for Flink 1.14.0. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.14.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.14.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.14.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
-Release Notes - Flink - Version 1.14.3 Sub-task [FLINK-24355] - Expose the flag for enabling checkpoints after tasks finish in the Web UI Bug [FLINK-15987] - SELECT 1.0e0 / 0.0e0 throws NumberFormatException [FLINK-17914] - HistoryServer deletes cached archives if archive listing fails [FLINK-19142] - Local recovery can be broken if slot hijacking happened during a full restart [FLINK-20195] - Jobs endpoint returns duplicated jobs [FLINK-20370] - Result is wrong when sink primary key is [...]
+Release Notes - Flink - Version 1.14.3 Sub-task [FLINK-24355] - Expose the flag for enabling checkpoints after tasks finish in the Web UI Bug [FLINK-15987] - SELECT 1.0e0 / 0.0e0 throws NumberFormatException [FLINK-17914] - HistoryServer deletes cached archives if archive listing fails [FLINK-19142] - Local recovery can be broken if slot hijacking happened during a full restart [FLINK-20195] - Jobs endpoint returns duplicated jobs [FLINK-20370] - Result is wrong when sink primary key is [...]
This release involves a major refactor of the earlier Flink ML library and introduces major features that extend the Flink ML API and the iteration runtime, such as supporting stages with multi-input multi-output, graph-based stage composition, and a new stream-batch unified iteration library. Moreover, we added five algorithm implementations in this release, which is the start of a long-term initiative to provide a large number of off-the-shelf algorithms in Flink ML with state-of-the-a [...]
We believe this release is an important step towards extending Apache Flink to a wide range of machine learning use cases, especially the real-time machine learning scenarios.
We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA! We hope you like the new release and we’d be eager to learn about your experience with it.
@@ -2317,14 +2339,14 @@ Release Notes and Resources # Please take a look at the release notes for a deta
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent distribution of Flink ML Python package is available on PyPI.
List of Contributors # The Apache Flink community would like to thank each one of the contributors that have made this release possible:
Yun Gao, Dong Lin, Zhipeng Zhang, huangxingbo, Yunfeng Zhou, Jiangjie (Becket) Qin, weibo, abdelrahman-ik.
-`}),e.add({id:134,href:"/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-one/",title:"How We Improved Scheduler Performance for Large-scale Jobs - Part One",section:"Flink Blog",content:` Introduction # When scheduling large-scale jobs in Flink 1.12, a lot of time is required to initialize jobs and deploy tasks. The scheduler also requires a large amount of heap memory in order to store the execution topology and host temporary deployment descriptors. For examp [...]
+`}),e.add({id:135,href:"/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-one/",title:"How We Improved Scheduler Performance for Large-scale Jobs - Part One",section:"Flink Blog",content:` Introduction # When scheduling large-scale jobs in Flink 1.12, a lot of time is required to initialize jobs and deploy tasks. The scheduler also requires a large amount of heap memory in order to store the execution topology and host temporary deployment descriptors. For examp [...]
Furthermore, task deployment may block the JobManager’s main thread for a long time and the JobManager will not be able to respond to any other requests from TaskManagers. This could lead to heartbeat timeouts that trigger a failover. In the worst case, this will render the Flink cluster unusable because it cannot deploy the job.
To improve the performance of the scheduler for large-scale jobs, we’ve implemented several optimizations in Flink 1.13 and 1.14:
Introduce the concept of consuming groups to optimize procedures related to the complexity of topologies, including the initialization, scheduling, failover, and partition release. This also reduces the memory required to store the topology; Introduce a cache to optimize task deployment, which makes the process faster and requires less memory; Leverage characteristics of the logical topology and the scheduling topology to speed up the building of pipelined regions. Benchmarking Results # [...]
Table 1 - The comparison of time cost between Flink 1.12 and 1.14 Procedure 1.12 1.14 Reduction(%) Job Initialization 11,431ms 627ms 94.51% Task Deployment 63,118ms 17,183ms 72.78% Computing tasks to restart when failover 37,195ms 170ms 99.55% In addition to quicker speeds, the memory usage is significantly reduced. It requires 30 GiB heap memory for a JobManager to deploy the test job and keep it running stably with Flink 1.12, while the minimum heap memory required by the JobManager wi [...]
In our experiment, it took more than 4 minutes for the large-scale job with Flink 1.12 to transition to running (excluding the time spent on allocating resources). With Flink 1.14, it took no more than 30 seconds (excluding the time spent on allocating resources). The time cost is reduced by 87%. Thus, for users who are running large-scale jobs for production and want better scheduling performance, please consider upgrading Flink to 1.14.
In part two of this blog post, we are going to talk about these improvements in detail.
-`}),e.add({id:135,href:"/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-two/",title:"How We Improved Scheduler Performance for Large-scale Jobs - Part Two",section:"Flink Blog",content:`Part one of this blog post briefly introduced the optimizations we’ve made to improve the performance of the scheduler; compared to Flink 1.12, the time cost and memory usage of scheduling large-scale jobs in Flink 1.14 is significantly reduced. In part two, we will elaborate o [...]
+`}),e.add({id:136,href:"/2022/01/04/how-we-improved-scheduler-performance-for-large-scale-jobs-part-two/",title:"How We Improved Scheduler Performance for Large-scale Jobs - Part Two",section:"Flink Blog",content:`Part one of this blog post briefly introduced the optimizations we’ve made to improve the performance of the scheduler; compared to Flink 1.12, the time cost and memory usage of scheduling large-scale jobs in Flink 1.14 is significantly reduced. In part two, we will elaborate o [...]
Reducing complexity with groups # A distribution pattern describes how consumer tasks are connected to producer tasks. Currently, there are two distribution patterns in Flink: pointwise and all-to-all. When the distribution pattern is pointwise between two vertices, the computational complexity of traversing all edges is O(n). When the distribution pattern is all-to-all, the complexity of traversing all edges is O(n2), which means that complexity increases rapidly when the scale goes up.
Fig. 1 - Two distribution patterns in Flink In Flink 1.12, the ExecutionEdge class is used to store the information of connections between tasks. This means that for the all-to-all distribution pattern, there would be O(n2) ExecutionEdges, which would take up a lot of memory for large-scale jobs. For two JobVertices connected with an all-to-all edge and a parallelism of 10K, it would take more than 4 GiB memory to store 100M ExecutionEdges. Since there can be multiple all-to-all connecti [...]
As we can see in Fig. 1, for two JobVertices connected with the all-to-all distribution pattern, all IntermediateResultPartitions produced by upstream ExecutionVertices are isomorphic, which means that the downstream ExecutionVertices they connect to are exactly the same. The downstream ExecutionVertices belonging to the same JobVertex are also isomorphic, as the upstream IntermediateResultPartitions they connect to are the same too. Since every JobEdge has exactly one distribution type, [...]
@@ -2354,22 +2376,22 @@ If there are any all-to-all distribution patterns inside the region, the entire
If there are only pointwise distribution patterns inside a region, Tarjan’s strongly connected components algorithm is still used to ensure no cyclic dependencies. Since there are only pointwise distribution patterns, the number of edges in the topology is O(n), and the computational complexity of the algorithm will be O(n).
Fig. 6 - How to convert a LogicalPipelinedRegion to ScheduledPipelinedRegions After the optimization, the overall computational complexity of building pipelined regions decreases from O(n2) to O(n). In our experiments, for the job which contains two vertices connected with a blocking all-to-all edge, when their parallelisms are both 10K, the time of building pipelined regions decreases by 99%, from 8,257 ms to 120 ms.
Summary # All in all, we’ve done several optimizations to improve the scheduler’s performance for large-scale jobs in Flink 1.13 and 1.14. The optimizations involve procedures including job initialization, scheduling, task deployment, and failover. If you have any questions about them, please feel free to start a discussion in the dev mail list.
-`}),e.add({id:136,href:"/2021/12/22/apache-flink-statefun-log4j-emergency-release/",title:"Apache Flink StateFun Log4j emergency release",section:"Flink Blog",content:`The Apache Flink community has released an emergency bugfix version of Apache Flink Stateful Function 3.1.1.
+`}),e.add({id:137,href:"/2021/12/22/apache-flink-statefun-log4j-emergency-release/",title:"Apache Flink StateFun Log4j emergency release",section:"Flink Blog",content:`The Apache Flink community has released an emergency bugfix version of Apache Flink Stateful Function 3.1.1.
This release include a version upgrade of Apache Flink to 1.13.5, for log4j to address CVE-2021-44228 and CVE-2021-45046.
We highly recommend all users to upgrade to the latest patch release.
You can find the source and binaries on the updated Downloads page, and Docker images in the apache/flink-statefun dockerhub repository.
-`}),e.add({id:137,href:"/2021/12/16/apache-flink-log4j-emergency-releases/",title:"Apache Flink Log4j emergency releases",section:"Flink Blog",content:`The Apache Flink community has released emergency bugfix versions of Apache Flink for the 1.11, 1.12, 1.13 and 1.14 series.
+`}),e.add({id:138,href:"/2021/12/16/apache-flink-log4j-emergency-releases/",title:"Apache Flink Log4j emergency releases",section:"Flink Blog",content:`The Apache Flink community has released emergency bugfix versions of Apache Flink for the 1.11, 1.12, 1.13 and 1.14 series.
These releases only include a version upgrade for Log4j to address CVE-2021-44228 and CVE-2021-45046.
We highly recommend all users to upgrade to the respective patch release.
You can find the source and binaries on the updated Downloads page, and Docker images in the apache/flink dockerhub repository.
We are publishing this announcement earlier than usual to give users access to the updated source/binary releases as soon as possible. As a result of that certain artifacts are not yet available:
Maven artifacts are currently being synced to Maven central and will become available over the next 24 hours. The 1.11.6/1.12.7 Python binaries will be published at a later date. This post will be continously updated to reflect the latest state.
The newly released versions are: 1.14.2 1.13.5 1.12.7 1.11.6 To clarify and avoid confusion: The 1.14.1 / 1.13.4 / 1.12.6 / 1.11.5 releases, which were supposed to only contain a Log4j upgrade to 2.15.0, were skipped because CVE-2021-45046 was discovered during the release publication. Some artifacts were published to Maven Central, but no source/binary releases nor Docker images are available for those versions.
-`}),e.add({id:138,href:"/2021/12/10/advise-on-apache-log4j-zero-day-cve-2021-44228/",title:"Advise on Apache Log4j Zero Day (CVE-2021-44228)",section:"Flink Blog",content:` Please see [this](/news/2021/12/16/log4j-patch-releases) for our updated recommendation regarding this CVE. Yesterday, a new Zero Day for Apache Log4j was reported. It is by now tracked under CVE-2021-44228.
+`}),e.add({id:139,href:"/2021/12/10/advise-on-apache-log4j-zero-day-cve-2021-44228/",title:"Advise on Apache Log4j Zero Day (CVE-2021-44228)",section:"Flink Blog",content:` Please see [this](/news/2021/12/16/log4j-patch-releases) for our updated recommendation regarding this CVE. Yesterday, a new Zero Day for Apache Log4j was reported. It is by now tracked under CVE-2021-44228.
Apache Flink is bundling a version of Log4j that is affected by this vulnerability. We recommend users to follow the advisory of the Apache Log4j Community. For Apache Flink this currently translates to setting the following property in your flink-conf.yaml:
env.java.opts: -Dlog4j2.formatMsgNoLookups=true If you are already setting env.java.opts.jobmanager, env.java.opts.taskmanager, env.java.opts.client, or env.java.opts.historyserver you should instead add the system change to those existing parameter lists.
As soon as Log4j has been upgraded to 2.15.0 in Apache Flink, this is not necessary anymore. This effort is tracked in FLINK-25240. It will be included in Flink 1.15.0, Flink 1.14.1 and Flink 1.13.3. We expect Flink 1.14.1 to be released in the next 1-2 weeks. The other releases will follow in their regular cadence.
-`}),e.add({id:139,href:"/2021/11/03/flink-backward-the-apache-flink-retrospective/",title:"Flink Backward - The Apache Flink Retrospective",section:"Flink Blog",content:`It has now been a month since the community released Apache Flink 1.14 into the wild. We had a comprehensive look at the enhancements, additions, and fixups in the release announcement blog post, and now we will look at the development cycle from a different angle. Based on feedback collected from contributors involved i [...]
+`}),e.add({id:140,href:"/2021/11/03/flink-backward-the-apache-flink-retrospective/",title:"Flink Backward - The Apache Flink Retrospective",section:"Flink Blog",content:`It has now been a month since the community released Apache Flink 1.14 into the wild. We had a comprehensive look at the enhancements, additions, and fixups in the release announcement blog post, and now we will look at the development cycle from a different angle. Based on feedback collected from contributors involved i [...]
A retrospective on the release cycle # From the team, we collected emotions that have been attributed to points in time of the 1.14 release cycle:
The overall sentiment seems to be quite good. A ship crushed a robot two times, someone felt sick towards the end, an octopus causing negative emotions appeared in June…
We looked at the origin of these emotions and analyzed what went well and what could be improved. We also incorporated some feedback gathered from the community.
@@ -2394,7 +2416,7 @@ With FLINK-2491, we closed the third most watched issue in the Apache Flink Jira
:heart:
An open source community is more than just working on software. Apache Flink is the perfect example of software that is collaborated on in all parts of the world. The active mailing list, the discussions on FLIPs, and the interactions on Jira tickets all document how people work together to build something great. We should never forget that.
In the meantime, the community is already working towards Apache Flink 1.15. If you would like to become a contributor, please reach out via the dev mailing list. We are happy to help you find a ticket to get started on.
-`}),e.add({id:140,href:"/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/",title:"Sort-Based Blocking Shuffle Implementation in Flink - Part One",section:"Flink Blog",content:`Part one of this blog post will explain the motivation behind introducing sort-based blocking shuffle, present benchmark results, and provide guidelines on how to use this new feature.
+`}),e.add({id:141,href:"/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/",title:"Sort-Based Blocking Shuffle Implementation in Flink - Part One",section:"Flink Blog",content:`Part one of this blog post will explain the motivation behind introducing sort-based blocking shuffle, present benchmark results, and provide guidelines on how to use this new feature.
How data gets passed around between operators # Data shuffling is an important stage in batch processing applications and describes how data is sent from one operator to the next. In this phase, output data of the upstream operator will spill over to persistent storages like disk, then the downstream operator will read the corresponding data and process it. Blocking shuffle means that intermediate results from operator A are not sent immediately to operator B until operator A has complet [...]
The hash-based and sort-based blocking shuffle are two main blocking shuffle implementations widely adopted by existing distributed data processing frameworks:
Hash-Based Approach: The core idea behind the hash-based approach is to write data consumed by different consumer tasks to different files and each file can then serve as a natural boundary for the partitioned data. Sort-Based Approach: The core idea behind the sort-based approach is to write all the produced data together first and then leverage sorting to cluster data belonging to different data partitions or even keys. The sort-based blocking shuffle was introduced in Flink 1.12 and f [...]
@@ -2413,7 +2435,7 @@ taskmanager.memory.framework.off-heap.batch-shuffle.size: This configuration def
For more information about blocking shuffle in Flink, please refer to the official documentation.
Note: From the optimization mechanism in part two, we can see that the IO scheduling relies on the concurrent data read requests of the downstream consumer tasks for more sequential reads. As a result, if the downstream consumer task is running one by one (for example, because of limited resources), the advantage brought by IO scheduling disappears, which can influence performance. We may further optimize this scenario in future versions.
What’s next? # For details on the design and implementation of this feature, please refer to the second part of this blog!
-`}),e.add({id:141,href:"/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/",title:"Sort-Based Blocking Shuffle Implementation in Flink - Part Two",section:"Flink Blog",content:`Part one of this blog post explained the motivation behind introducing sort-based blocking shuffle, presented benchmark results, and provided guidelines on how to use this new feature.
+`}),e.add({id:142,href:"/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/",title:"Sort-Based Blocking Shuffle Implementation in Flink - Part Two",section:"Flink Blog",content:`Part one of this blog post explained the motivation behind introducing sort-based blocking shuffle, presented benchmark results, and provided guidelines on how to use this new feature.
Like sort-merge shuffle implemented by other distributed data processing frameworks, the whole sort-based shuffle process in Flink consists of several important stages, including collecting data in memory, sorting the collected data in memory, spilling the sorted data to files, and reading the shuffle data from these spilled files. However, Flink’s implementation has some core differences, including the multiple data region file structure, the removal of file merge, and IO scheduling.
In part two of this blog post, we will give you insight into some core design considerations and implementation details of the sort-based blocking shuffle in Flink and list several ideas for future improvement.
Design considerations # There are several core objectives we want to achieve for the new sort-based blocking shuffle to be implemented Flink:
@@ -2441,7 +2463,7 @@ Future improvements # TCP Connection Reuse: This improvement is also useful for
Multi-Disks Load Balance: Multi-Disks Load Balance: In production environments, there are usually multiple disks per node, better load balance can lead to better performance, the relevant issues are FLINK-21790 and FLINK-21789.
External/Remote Shuffle Service: Implementing an external/remote shuffle service can further improve the shuffle io performance because as a centralized service, it can collect more information leading to more optimized decisions. For example, further merging of data to the same downstream task, better node-level load balance, handling of stragglers, shared resources and so on. There are several relevant issues: FLINK-13247, FLINK-22672, FLINK-19551 and FLINK-10653.
Enable the Choice of SSD/HDD: In production environments, there are usually both SSD and HDD storage. Some jobs may prefer SSD for the faster speed, some jobs may prefer HDD for larger space and cheaper price. Enabling the choice of SSD/HDD can improve the usability of Flink’s blocking shuffle.
-`}),e.add({id:142,href:"/2021/10/19/apache-flink-1.13.3-released/",title:"Apache Flink 1.13.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.13 series.
+`}),e.add({id:143,href:"/2021/10/19/apache-flink-1.13.3-released/",title:"Apache Flink 1.13.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.13 series.
This release includes 136 fixes and minor improvements for Flink 1.13.2. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.13.3.
Updated Maven dependencies:
@@ -2452,7 +2474,7 @@ Table API ‘Primary Key’ feature was not working correctly (FLINK-238
Clarify SourceFunction#cancel() contract about interrupting (FLINK-23527) # The contract of the SourceFunction#cancel() method with respect to interruptions has been clarified:
The source itself shouldn’t interrupt the source thread. The source can expect to not be interrupted during a clean cancellation procedure. taskmanager.slot.timeout falls back to akka.ask.timeout (FLINK-22002) # The config option taskmanager.slot.timeout falls now back to akka.ask.timeout if no value has been configured.
Increase akka.ask.timeout for tests using the MiniCluster (FLINK-23906) # The default akka.ask.timeout used by the MiniCluster has been increased to 5 minutes. If you want to use a smaller value, then you have to set it explicitly in the passed configuration. The change is due to the fact that messages cannot get lost in a single-process minicluster, so this timeout (which otherwise helps to detect message loss in distributed setups) has no benefit here. The increased timeout reduces the [...]
-`}),e.add({id:143,href:"/2021/09/29/apache-flink-1.14.0-release-announcement/",title:"Apache Flink 1.14.0 Release Announcement",section:"Flink Blog",content:`The Apache Software Foundation recently released its annual report and Apache Flink once again made it on the list of the top 5 most active projects! This remarkable activity also shows in the new 1.14.0 release. Once again, more than 200 contributors worked on over 1,000 issues. We are proud of how this community is consistently mo [...]
+`}),e.add({id:144,href:"/2021/09/29/apache-flink-1.14.0-release-announcement/",title:"Apache Flink 1.14.0 Release Announcement",section:"Flink Blog",content:`The Apache Software Foundation recently released its annual report and Apache Flink once again made it on the list of the top 5 most active projects! This remarkable activity also shows in the new 1.14.0 release. Once again, more than 200 contributors worked on over 1,000 issues. We are proud of how this community is consistently mo [...]
This release brings many new features and improvements in areas such as the SQL API, more connector support, checkpointing, and PyFlink. A major area of changes in this release is the integrated streaming & batch experience. We believe that, in practice, unbounded stream processing goes hand-in-hand with bounded- and batch processing tasks, because many use cases require processing historic data from various sources alongside streaming data. Examples are data exploration when develop [...]
In Flink 1.14, we finally made it possible to mix bounded and unbounded streams in an application: Flink now supports taking checkpoints of applications that are partially running and partially finished (some operators reached the end of the bounded inputs). Additionally, bounded streams now take a final checkpoint when reaching their end to ensure smooth committing of results in sinks.
The batch execution mode now supports programs that use a mixture of the DataStream API and the SQL/Table API (previously only pure Table/SQL or DataStream programs).
@@ -2506,7 +2528,7 @@ The active integration with Apache Mesos was also removed, because we saw little
Upgrade Notes # While we aim to make upgrades as smooth as possible, some of the changes require users to adjust some parts of the program when upgrading to Apache Flink 1.14. Please take a look at the release notes for a list of adjustments to make and issues to check during upgrades.
List of Contributors # The Apache Flink community would like to thank each one of the contributors that have made this release possible:
adavis9592, Ada Wong, aidenma, Aitozi, Ankush Khanna, anton, Anton Kalashnikov, Arvid Heise, Ashwin Kolhatkar, Authuir, bgeng777, Brian Zhou, camile.sing, caoyingjie, Cemre Mengu, chennuo, Chesnay Schepler, chuixue, CodeCooker17, comsir, Daisy T, Danny Cranmer, David Anderson, David Moravek, Dawid Wysakowicz, dbgp2021, Dian Fu, Dong Lin, Edmondsky, Elphas Toringepi, Emre Kartoglu, ericliuk, Eron Wright, est08zw, Etienne Chauchot, Fabian Paul, fangliang, fangyue1, fengli, Francesco Guardi [...]
-`}),e.add({id:144,href:"/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-one/",title:"Implementing a Custom Source Connector for Table API and SQL - Part One ",section:"Flink Blog",content:`Part one of this tutorial will teach you how to build and run a custom source connector to be used with Table API and SQL, two high-level abstractions in Flink. The tutorial comes with a bundled docker-compose setup that lets you easily run the connector. You can then try [...]
+`}),e.add({id:145,href:"/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-one/",title:"Implementing a Custom Source Connector for Table API and SQL - Part One ",section:"Flink Blog",content:`Part one of this tutorial will teach you how to build and run a custom source connector to be used with Table API and SQL, two high-level abstractions in Flink. The tutorial comes with a bundled docker-compose setup that lets you easily run the connector. You can then try [...]
Introduction # Apache Flink is a data processing engine that aims to keep state locally in order to do computations efficiently. However, Flink does not “own” the data but relies on external systems to ingest and persist data. Connecting to external data input (sources) and external data storage (sinks) is usually summarized under the term connectors in Flink.
Since connectors are such important components, Flink ships with connectors for some popular systems. But sometimes you may need to read in an uncommon data format and what Flink provides is not enough. This is why Flink also provides extension points for building custom connectors if you want to connect to a system that is not supported by an existing connector.
Once you have a source and a sink defined for Flink, you can use its declarative APIs (in the form of the Table API and SQL) to execute queries for data analysis.
@@ -2548,7 +2570,7 @@ You should be able to see the static data you provided in your source connector
Now that you have a working connector, the next step is to make it do something more useful than returning static data.
Summary # In this tutorial, you looked into the infrastructure required for a connector and configured its runtime implementation to define how it should be executed in a cluster. You also defined a dynamic table source that reads the entire stream-converted table from the external source, made the connector discoverable by Flink through creating a factory class for it, and then tested it.
Next Steps # In part two, you will integrate this connector with an email inbox through the IMAP protocol.
-`}),e.add({id:145,href:"/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-two/",title:"Implementing a custom source connector for Table API and SQL - Part Two ",section:"Flink Blog",content:`In part one of this tutorial, you learned how to build a custom source connector for Flink. In part two, you will learn how to integrate the connector with a test email inbox through the IMAP protocol and filter out emails using Flink SQL.
+`}),e.add({id:146,href:"/2021/09/07/implementing-a-custom-source-connector-for-table-api-and-sql-part-two/",title:"Implementing a custom source connector for Table API and SQL - Part Two ",section:"Flink Blog",content:`In part one of this tutorial, you learned how to build a custom source connector for Flink. In part two, you will learn how to integrate the connector with a test email inbox through the IMAP protocol and filter out emails using Flink SQL.
Goals # Part two of the tutorial will teach you how to:
integrate a source connector which connects to a mailbox using the IMAP protocol use Jakarta Mail, a Java library that can send and receive email via the IMAP protocol write Flink SQL and execute the queries in the Ververica Platform for a nicer visualization You are encouraged to follow along with the code in this repository. It provides a boilerplate project that also comes with a bundled docker-compose setup that lets you easily run the connector. You can then try it out with Flink’s [...]
Prerequisites # This tutorial assumes that you have:
@@ -2587,7 +2609,7 @@ First, head to SQL → Connectors. There you can create a new connector by uploa
Ververica Platform - SQL Editor
Summary # Apache Flink is designed for easy extensibility and allows users to access many different external systems as data sources or sinks through a versatile set of connectors. It can read and write data from databases, local and distributed file systems.
Flink also exposes APIs on top of which custom connectors can be built. In this two-part blog series, you explored some of these APIs and concepts and learned how to implement your own custom source connector that can read in data from an email inbox. You then used Flink to process incoming emails through the IMAP protocol and wrote some Flink SQL.
-`}),e.add({id:146,href:"/2021/08/31/stateful-functions-3.1.0-release-announcement/",title:"Stateful Functions 3.1.0 Release Announcement",section:"Flink Blog",content:`Stateful Functions is a cross-platform stack for building Stateful Serverless applications, making it radically simpler to develop scalable, consistent, and elastic distributed applications. This new release brings various improvements to the StateFun runtime, a leaner way to specify StateFun module components, and a brand [...]
+`}),e.add({id:147,href:"/2021/08/31/stateful-functions-3.1.0-release-announcement/",title:"Stateful Functions 3.1.0 Release Announcement",section:"Flink Blog",content:`Stateful Functions is a cross-platform stack for building Stateful Serverless applications, making it radically simpler to develop scalable, consistent, and elastic distributed applications. This new release brings various improvements to the StateFun runtime, a leaner way to specify StateFun module components, and a brand [...]
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Java SDK, Python SDK, and GoLang SDK distributions are available on Maven, PyPI, and Github repecitvely. You can also find official StateFun Docker images of the new version on Dockerhub.
For more details, check the complete release changelog and the updated documentation. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA!
New Features # Delayed Message Cancellation # Stateful Functions communicate by sending messages, but sometimes it is helpful that a function will send a message for itself. For example, you may want to set a time limit on a customer onboarding flow to complete. This can easily be implmented by sending a message with a delay. But up until now, there was no way to indicate to the StateFun runtime that a particular delayed message is not necessary anymore (a customer had completed their on [...]
@@ -2609,30 +2631,30 @@ For a detailed SDK tutorial, we would like to encourage you to visit:
GoLang SDK Showcase GoLang Greeter GoLang SDK Documentation Release Notes # Release Notes # Please review the release notes for a detailed list of changes and new features if you plan to upgrade your setup to Stateful Functions 3.1.0.
List of Contributors # Evans Ye, George Birbilis, Igal Shilman, Konstantin Knauf, Seth Wiesman, Siddique Ahmad, Tzu-Li (Gordon) Tai, ariskk, austin ce
If you’d like to get involved, we’re always looking for new contributors.
-`}),e.add({id:147,href:"/2021/08/31/help-us-stabilize-apache-flink-1.14.0-rc0/",title:"Help us stabilize Apache Flink 1.14.0 RC0",section:"Flink Blog",content:` Hint Update 29th of September: Today Apache Flink 1.14 has been released. For sure we'd still like to hear your feedback. Dear Flink Community,
+`}),e.add({id:148,href:"/2021/08/31/help-us-stabilize-apache-flink-1.14.0-rc0/",title:"Help us stabilize Apache Flink 1.14.0 RC0",section:"Flink Blog",content:` Hint Update 29th of September: Today Apache Flink 1.14 has been released. For sure we'd still like to hear your feedback. Dear Flink Community,
we are excited to announce the first release candidate of Apache Flink 1.14. 🎉
A lot of features and fixes went into this release, including improvements to the unified batch and streaming experience, an increase in fault tolerance by reducing in-flight data, and more developments on connectors and components. It wouldn’t have been possible without your help. Around 211 people have made contributions!
Two weeks ago (August 16th) we created a feature freeze. This means that only a few small, almost-ready features will go into the release from this moment on. We are now in the process of stabilizing the release and need your help! As you can see on the 1.14 release coordination page, a lot of focus is on documentation and testing.
If you would like to contribute to the squirrel community, a great way would be to download the release candidate and test it. You can run some existing Flink jobs or pick one of the test issues. We would greatly appreciate any feedback you can provide on the JIRA tickets or on the mailing list.
We continue to be grateful and inspired by the community who believe in the project and want to help create a great user experience and product for all Flink users.
Many thanks!
-`}),e.add({id:148,href:"/2021/08/09/apache-flink-1.11.4-released/",title:"Apache Flink 1.11.4 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.11 series.
+`}),e.add({id:149,href:"/2021/08/09/apache-flink-1.11.4-released/",title:"Apache Flink 1.11.4 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.11 series.
This release includes 78 fixes and minor improvements for Flink 1.11.4. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.11.4.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.11.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.11.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
-Release Notes - Flink - Version 1.11.4 Sub-task [FLINK-21070] - Overloaded aggregate functions cause converter errors [FLINK-21486] - Add sanity check when switching from Rocks to Heap timers Bug [FLINK-15262] - kafka connector doesn't read from beginning immediately when 'connector.startup-mode' = 'earliest-offset' [FLINK-16443] - Fix wrong fix for user-code CheckpointExceptions [FLINK-18438] - TaskManager start failed [FLINK-19369] - BlobClientTest.testGetFailsDurin [...]
+Release Notes - Flink - Version 1.11.4 Sub-task [FLINK-21070] - Overloaded aggregate functions cause converter errors [FLINK-21486] - Add sanity check when switching from Rocks to Heap timers Bug [FLINK-15262] - kafka connector doesn't read from beginning immediately when 'connector.startup-mode' = 'earliest-offset' [FLINK-16443] - Fix wrong fix for user-code CheckpointExceptions [FLINK-18438] - TaskManager start failed [FLINK-19369] - BlobClientTest.testGetFailsDurin [...]
This release includes 76 fixes and minor improvements for Flink 1.12.4. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.12.5.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.12.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
Release Notes - Flink - Version 1.12.5
-Bug [FLINK-19925] - Errors$NativeIoException: readAddress(..) failed: Connection reset by peer [FLINK-20321] - Get NPE when using AvroDeserializationSchema to deserialize null input [FLINK-20888] - ContinuousFileReaderOperator should not close the output on close() [FLINK-21329] - "Local recovery and sticky scheduling end-to-end test" does not finish within 600 seconds [FLINK-21445] - Application mode does not set the configuration when building PackagedProgram [FLINK-21469] - [...]
+Bug [FLINK-19925] - Errors$NativeIoException: readAddress(..) failed: Connection reset by peer [FLINK-20321] - Get NPE when using AvroDeserializationSchema to deserialize null input [FLINK-20888] - ContinuousFileReaderOperator should not close the output on close() [FLINK-21329] - "Local recovery and sticky scheduling end-to-end test" does not finish within 600 seconds [FLINK-21445] - Application mode does not set the configuration when building PackagedProgram [FLINK-21469] - [...]
This release includes 127 fixes and minor improvements for Flink 1.13.2. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.13.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.13.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.13.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
-Release Notes - Flink - Version 1.13.2 Sub-task [FLINK-22726] - Hive GROUPING__ID returns different value in older versions Bug [FLINK-20888] - ContinuousFileReaderOperator should not close the output on close() [FLINK-20975] - HiveTableSourceITCase.testPartitionFilter fails on AZP [FLINK-21389] - ParquetInputFormat should not need parquet schema as user input [FLINK-21445] - Application mode does not set the configuration when building PackagedProgram [FLINK-21952] - Make all the " [...]
+Release Notes - Flink - Version 1.13.2 Sub-task [FLINK-22726] - Hive GROUPING__ID returns different value in older versions Bug [FLINK-20888] - ContinuousFileReaderOperator should not close the output on close() [FLINK-20975] - HiveTableSourceITCase.testPartitionFilter fails on AZP [FLINK-21389] - ParquetInputFormat should not need parquet schema as user input [FLINK-21445] - Application mode does not set the configuration when building PackagedProgram [FLINK-21952] - Make all the " [...]
The backpressure topic was tackled from different angles over the last couple of years. However, when it comes to identifying and analyzing sources of backpressure, things have changed quite a bit in the recent Flink releases (especially with new additions to metrics and the web UI in Flink 1.13). This post will try to clarify some of these changes and go into more detail about how to track down the source of backpressure, but first…
What is backpressure? # This has been explained very well in an old, but still accurate, post by Ufuk Celebi. I highly recommend reading it if you are not familiar with this concept. For a much deeper and low-level understanding of the topic and how Flink’s network stack works, there is a more advanced explanation available here.
At a high level, backpressure happens if some operator(s) in the Job Graph cannot process records at the same rate as they are received. This fills up the input buffers of the subtask that is running this slow operator. Once the input buffers are full, backpressure propagates to the output buffers of the upstream subtasks. Once those are filled up, the upstream subtasks are also forced to slow down their records’ processing rate to match the processing rate of the operator causing this b [...]
@@ -2660,18 +2682,18 @@ What can I do with backpressure? # In general this is a complex topic that is wo
Identifying the presence of backpressure. Locating which subtask(s) or machines are causing it. Digging deeper into what part of the code is causing it and which resource is scarce. Backpressure monitoring improvements and metrics can help you with the first two points. To tackle the last one, profiling the code can be the way to go. To help with profiling, also starting from Flink 1.13, Flame Graphs are integrated into Flink’s web UI. Flame Graphs is a well known profiling tool an [...]
But keep in mind that after locating where the bottleneck is, you can analyze it the same way you would any other non-distributed application (by checking resource utilization, attaching a profiler, etc). Usually there is no silver bullet for problems like this. You can try to scale up but sometimes it might not be easy or practical to do.
Anyway… The aforementioned improvements to backpressure monitoring allow us to easily detect the source of backpressure, and Flame Graphs can help us to analyze why a particular subtask is causing problems. Together those two features should make the previously quite tedious process of debugging and performance analysis of Flink jobs that much easier! Please upgrade to Flink 1.13.x and try them out!
-[1] There is a third possibility. In a rare case when network exchange is actually the bottleneck in your job, the downstream task will have empty input buffers, while upstream output buffers will be full. `}),e.add({id:152,href:"/2021/05/28/apache-flink-1.13.1-released/",title:"Apache Flink 1.13.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.13 series.
+[1] There is a third possibility. In a rare case when network exchange is actually the bottleneck in your job, the downstream task will have empty input buffers, while upstream output buffers will be full. `}),e.add({id:153,href:"/2021/05/28/apache-flink-1.13.1-released/",title:"Apache Flink 1.13.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.13 series.
This release includes 82 fixes and minor improvements for Flink 1.13.1. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
We highly recommend all users to upgrade to Flink 1.13.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.13.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.13.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
-Release Notes - Flink - Version 1.13.1 Sub-task [FLINK-22378] - Type mismatch when declaring SOURCE_WATERMARK on TIMESTAMP_LTZ column [FLINK-22666] - Make structured type's fields more lenient during casting Bug [FLINK-12351] - AsyncWaitOperator should deep copy StreamElement when object reuse is enabled [FLINK-17170] - Cannot stop streaming job with savepoint which uses kinesis consumer [FLINK-19449] - LEAD/LAG cannot work correctly in streaming mode [FLINK-21181] - Buffer pool is d [...]
+Release Notes - Flink - Version 1.13.1 Sub-task [FLINK-22378] - Type mismatch when declaring SOURCE_WATERMARK on TIMESTAMP_LTZ column [FLINK-22666] - Make structured type's fields more lenient during casting Bug [FLINK-12351] - AsyncWaitOperator should deep copy StreamElement when object reuse is enabled [FLINK-17170] - Cannot stop streaming job with savepoint which uses kinesis consumer [FLINK-19449] - LEAD/LAG cannot work correctly in streaming mode [FLINK-21181] - Buffer pool is d [...]
This release includes 21 fixes and minor improvements for Flink 1.12.3. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.12.4.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.12.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
Release Notes - Flink - Version 1.12.4
-Bug [FLINK-17170] - Cannot stop streaming job with savepoint which uses kinesis consumer [FLINK-20114] - Fix a few KafkaSource-related bugs [FLINK-21181] - Buffer pool is destroyed error when outputting data over a timer after cancellation. [FLINK-22109] - Misleading exception message if the number of arguments of a nested function is incorrect [FLINK-22368] - UnalignedCheckpointITCase hangs on azure [FLINK-22424] - Writing to already released buffers potentially causing data corruption [...]
+Bug [FLINK-17170] - Cannot stop streaming job with savepoint which uses kinesis consumer [FLINK-20114] - Fix a few KafkaSource-related bugs [FLINK-21181] - Buffer pool is destroyed error when outputting data over a timer after cancellation. [FLINK-22109] - Misleading exception message if the number of arguments of a nested function is incorrect [FLINK-22368] - UnalignedCheckpointITCase hangs on azure [FLINK-22424] - Writing to already released buffers potentially causing data corruption [...]
A simple way of quantifying the mismatch between the required resources and the available resources is to measure the space between the actual load and the number of available workers. As pictured below, in the case of static resource allocation, you can see that there’s a big gap between the actual load and the available workers — hence, we are wasting resources. For elastic resource allocation, the gap between the red and black line is consistently small.
Manually rescaling a Flink job has been possible since Flink 1.2 introduced rescalable state, which allows you to stop-and-restore a job with a different parallelism. For example, if your job is running with a parallelism of p=100 and your load increases, you can restart it with p=200 to cope with the additional data.
The problem with this approach is that you have to orchestrate a rescale operation with custom tools by yourself, including error handling and similar tasks.
@@ -2709,7 +2731,7 @@ To mitigate this issue, we have reduced the heartbeat.timeout in our experiment
Conclusion # In this blog post, we’ve introduced Reactive Mode, a big step forward in Flink’s ability to dynamically adjust to changing workloads, reducing resource utilization and overall costs. The blog post demonstrated Reactive Mode on Kubernetes, including some lessons learned.
Reactive Mode is new feature in Flink 1.13 and is currently in the MVP (Minimal Viable Product) phase of product development. Before experimenting with it, or using it in production, please check the documentation, in particular the current limitations section. In this phase, the biggest limitation is that only standalone application mode deployments are supported (i.e. no active resource managers or session clusters).
The community is actively looking for feedback on this feature, to continue improving Flink’s resource elasticity. If you have any feedback, please reach out to the dev@ mailing list or to me personally on Twitter.
-`}),e.add({id:155,href:"/2021/05/03/apache-flink-1.13.0-release-announcement/",title:"Apache Flink 1.13.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink 1.13.0! More than 200 contributors worked on over 1,000 issues for this new version.
+`}),e.add({id:156,href:"/2021/05/03/apache-flink-1.13.0-release-announcement/",title:"Apache Flink 1.13.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to announce the release of Flink 1.13.0! More than 200 contributors worked on over 1,000 issues for this new version.
The release brings us a big step forward in one of our major efforts: Making Stream Processing Applications as natural and as simple to manage as any other application. The new reactive scaling mode means that scaling streaming applications in and out now works like in any other application by just changing the number of parallel processes.
The release also prominently features a series of improvements that help users better understand the performance of applications. When the streams don’t flow as fast as you’d hope, these can help you to understand why: Load and backpressure visualization to identify bottlenecks, CPU flame graphs to identify hot code paths in your application, and State Access Latencies to see how the State Backends are keeping up.
Beyond those features, the Flink community has added a ton of improvements all over the system, some of which we discuss in this article. We hope you enjoy the new release and features. Towards the end of the article, we describe changes to be aware of when upgrading from earlier versions of Apache Flink.
@@ -2814,13 +2836,13 @@ Please review the release notes carefully if you plan to upgrade your setup to F
You can also check the complete release changelog and updated documentation for a detailed list of changes and new features.
List of Contributors # The Apache Flink community would like to thank each one of the contributors that have made this release possible:
acqua.csq, AkisAya, Alexander Fedulov, Aljoscha Krettek, Ammar Al-Batool, Andrey Zagrebin, anlen321, Anton Kalashnikov, appleyuchi, Arvid Heise, Austin Cawley-Edwards, austin ce, azagrebin, blublinsky, Brian Zhou, bytesmithing, caozhen1937, chen qin, Chesnay Schepler, Congxian Qiu, Cristian, cxiiiiiii, Danny Chan, Danny Cranmer, David Anderson, Dawid Wysakowicz, dbgp2021, Dian Fu, DinoZhang, dixingxing, Dong Lin, Dylan Forciea, est08zw, Etienne Chauchot, fanrui03, Flora Tao, FLRNKS, forn [...]
-`}),e.add({id:156,href:"/2021/04/29/apache-flink-1.12.3-released/",title:"Apache Flink 1.12.3 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.12 series.
+`}),e.add({id:157,href:"/2021/04/29/apache-flink-1.12.3-released/",title:"Apache Flink 1.12.3 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.12 series.
This release includes 73 fixes and minor improvements for Flink 1.12.2. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.12.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.12.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Bug [FLINK-18071] - CoordinatorEventsExactlyOnceITCase.checkListContainsSequence fails on CI [FLINK-20547] - Batch job fails due to the exception in network stack [FLINK-20654] - Unaligned checkpoint recovery may lead to corrupted data stream [FLINK-20722] - HiveTableSink should copy the record when converting RowData to Row [FLINK-20752] - FailureRateRestartBackoffTimeStrategy allows one less restart than configured [FLINK-20761] - Cannot read hive table/partition whose location path co [...]
+Bug [FLINK-18071] - CoordinatorEventsExactlyOnceITCase.checkListContainsSequence fails on CI [FLINK-20547] - Batch job fails due to the exception in network stack [FLINK-20654] - Unaligned checkpoint recovery may lead to corrupted data stream [FLINK-20722] - HiveTableSink should copy the record when converting RowData to Row [FLINK-20752] - FailureRateRestartBackoffTimeStrategy allows one less restart than configured [FLINK-20761] - Cannot read hive table/partition whose location path co [...]
This new release brings remote functions to the front and center of StateFun, making the disaggregated setup that separates the application logic from the StateFun cluster the default. It is now easier, more efficient, and more ergonomic to write applications that live in their own processes or containers. With the new Java SDK this is now also possible for all JVM languages, in addition to Python.
Background # Starting with the first StateFun release, before the project was donated to the Apache Software Foundation, our focus was: making scalable stateful applications easy to build and run.
The first StateFun version introduced an SDK that allowed writing stateful functions that build up a StateFun application packaged and deployed as a particular Flink job submitted to a Flink cluster. Having functions executing within the same JVM as Flink has some advantages, such as the deployment’s performance and immutability. However, it had a few limitations:
@@ -2845,7 +2867,7 @@ Release Resources # The binary distribution and source artifacts are now availab
For more details, check the updated documentation and the release notes for a detailed list of changes and new features if you plan to upgrade your setup to Stateful Functions 3.0.0. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA
List of Contributors # The Apache Flink community would like to thank all contributors that have made this release possible:
Authuir, Chesnay Schepler, David Anderson, Dian Fu, Frans King, Galen Warren, Guillaume Vauvert, Igal Shilman, Ismaël Mejía, Kartik Khare, Konstantin Knauf, Marta Paes Moreira, Patrick Lucas, Patrick Wiener, Rafi Aroch, Robert Metzger, RocMarshal, Seth Wiesman, Siddique Ahmad, SteNicholas, Stephan Ewen, Timothy Bess, Tymur Yarosh, Tzu-Li (Gordon) Tai, Ufuk Celebi, abc863377, billyrrr, congxianqiu, danp11, hequn8128, kaibo, klion26, morsapaes, slinkydeveloper, wangchao, wangzzu, winder If [...]
-`}),e.add({id:158,href:"/2021/03/11/a-rundown-of-batch-execution-mode-in-the-datastream-api/",title:"A Rundown of Batch Execution Mode in the DataStream API",section:"Flink Blog",content:`Flink has been following the mantra that Batch is a Special Case of Streaming since the very early days. As the project evolved to address specific uses cases, different core APIs ended up being implemented for batch (DataSet API) and streaming execution (DataStream API), but the higher-level Table API/ [...]
+`}),e.add({id:159,href:"/2021/03/11/a-rundown-of-batch-execution-mode-in-the-datastream-api/",title:"A Rundown of Batch Execution Mode in the DataStream API",section:"Flink Blog",content:`Flink has been following the mantra that Batch is a Special Case of Streaming since the very early days. As the project evolved to address specific uses cases, different core APIs ended up being implemented for batch (DataSet API) and streaming execution (DataStream API), but the higher-level Table API/ [...]
The idea behind making the DataStream API a unified abstraction for batch and streaming execution instead of maintaining separate APIs is two-fold:
Reusability: efficient batch and stream processing under the same API would allow you to easily switch between both execution modes without rewriting any code. So, a job could be easily reused to process real-time and historical data.
Operational simplicity: providing a unified API would mean using a single set of connectors, maintaining a single codebase and being able to easily implement mixed execution pipelines e.g. for use cases like backfilling.
@@ -2879,13 +2901,13 @@ Having a mixed graph, where one of the branches would have only bounded sources
Another approach is to run the exact same program first on the bounded data. However, this time we wouldn’t assume completeness of the job; instead, we would produce the state of all operators up to a certain point in time and store it as a savepoint. Later on, we could use the savepoint to start the application on the unbounded data.
Lastly, to achieve feature parity with the DataSet API (Flink’s legacy API for batch-style execution), we are looking into the topic of iterations and how to meet the different usage patterns depending on the mode. In STREAMING mode, iterations serve as a loopback edge, but we don’t necessarily need to keep track of the iteration step. On the other hand, the iteration generation is vital for Machine Learning (ML) algorithms, which are the primary use case for iterations in BA [...]
Have you tried the new BATCH execution mode in the DataStream API? How was your experience? We are happy to hear your feedback and stories!
-`}),e.add({id:159,href:"/2021/03/03/apache-flink-1.12.2-released/",title:"Apache Flink 1.12.2 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.12 series.
+`}),e.add({id:160,href:"/2021/03/03/apache-flink-1.12.2-released/",title:"Apache Flink 1.12.2 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.12 series.
This release includes 83 fixes and minor improvements for Flink 1.12.1. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.12.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.12.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Sub-task [FLINK-21070] - Overloaded aggregate functions cause converter errors [FLINK-21486] - Add sanity check when switching from Rocks to Heap timers Bug [FLINK-12461] - Document binary compatibility situation with Scala beyond 2.12.8 [FLINK-16443] - Fix wrong fix for user-code CheckpointExceptions [FLINK-19771] - NullPointerException when accessing null array from postgres in JDBC Connector [FLINK-20309] - UnalignedCheckpointTestBase.execute is failed [FLINK-20462] - MailboxOperatorT [...]
+Sub-task [FLINK-21070] - Overloaded aggregate functions cause converter errors [FLINK-21486] - Add sanity check when switching from Rocks to Heap timers Bug [FLINK-12461] - Document binary compatibility situation with Scala beyond 2.12.8 [FLINK-16443] - Fix wrong fix for user-code CheckpointExceptions [FLINK-19771] - NullPointerException when accessing null array from postgres in JDBC Connector [FLINK-20309] - UnalignedCheckpointTestBase.execute is failed [FLINK-20462] - MailboxOperatorT [...]
From release to release, the Flink community has made significant progress in integrating natively with Kubernetes, from active resource management to “Zookeeperless” High Availability (HA). In this blogpost, we’ll recap the technical details of deploying Flink applications natively on Kubernetes, diving deeper into Flink’s Kubernetes HA architecture. We’ll then walk you through a hands-on example of running a Flink application cluster on Kubernetes with HA enabled. We’ll end [...]
Native Flink on Kubernetes Integration # Before we dive into the technical details of how the Kubernetes-based HA service works, let us briefly explain what native means in the context of Flink deployments on Kubernetes:
Flink is self-contained. There will be an embedded Kubernetes client in the Flink client, and so you will not need other external tools (e.g. kubectl, Kubernetes dashboard) to create a Flink cluster on Kubernetes.
@@ -2906,13 +2928,13 @@ $ docker build -t <user-image> . $ docker push <user-image> **2. Sta
$ ./bin/flink cancel --target kubernetes-application -Dkubernetes.cluster-id=<ClusterID> <JobID> When the job is cancelled, all the Kubernetes resources created by Flink (e.g. JobManager deployment, TaskManager pods, service, Flink configuration ConfigMap, leader-related ConfigMaps) will be deleted automatically.
Conclusion # The native Kubernetes integration was first introduced in Flink 1.10, abstracting a lot of the complexities of hosting, configuring, managing and operating Flink clusters in cloud-native environments. After three major releases, the community has made great progress in supporting multiple deployment modes (i.e. session and application) and an alternative HA setup that doesn’t depend on Zookeeper.
Compared with standalone Kubernetes deployments, the native integration is more user-friendly and requires less upfront knowledge about Kubernetes. Given that Flink is now aware of the underlying Kubernetes cluster, it also can benefit from dynamic resource allocation and make more efficient use of Kubernetes cluster resources. The next building block to deepen Flink’s native integration with Kubernetes is the pod template (FLINK-15656), which will greatly enhance the flexibility of usin [...]
-`}),e.add({id:161,href:"/2021/01/29/apache-flink-1.10.3-released/",title:"Apache Flink 1.10.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.10 series.
+`}),e.add({id:162,href:"/2021/01/29/apache-flink-1.10.3-released/",title:"Apache Flink 1.10.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.10 series.
This release includes 36 fixes and minor improvements for Flink 1.10.2. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.10.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.10.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.10.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Bug [FLINK-14087] - throws java.lang.ArrayIndexOutOfBoundsException when emiting the data using RebalancePartitioner. [FLINK-15170] - WebFrontendITCase.testCancelYarn fails on travis [FLINK-15467] - Should wait for the end of the source thread during the Task cancellation [FLINK-16246] - Exclude "SdkMBeanRegistrySupport" from dynamically loaded AWS connectors [FLINK-17341] - freeSlot in TaskExecutor.closeJobManagerConnection cause ConcurrentModificationException [FLINK-17458] - [...]
+Bug [FLINK-14087] - throws java.lang.ArrayIndexOutOfBoundsException when emiting the data using RebalancePartitioner. [FLINK-15170] - WebFrontendITCase.testCancelYarn fails on travis [FLINK-15467] - Should wait for the end of the source thread during the Task cancellation [FLINK-16246] - Exclude "SdkMBeanRegistrySupport" from dynamically loaded AWS connectors [FLINK-17341] - freeSlot in TaskExecutor.closeJobManagerConnection cause ConcurrentModificationException [FLINK-17458] - [...]
This release includes 79 fixes and minor improvements for Flink 1.12.0. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.12.1.
Attention: Using unaligned checkpoints in Flink 1.12.0 combined with two/multiple inputs tasks or with union inputs for single input tasks can result in corrupted state. This can happen if a new checkpoint is triggered before recovery is fully completed. For state to be corrupted a task with two or more input gates must receive a checkpoint barrier exactly at the same time this tasks finishes recovering spilled in-flight data. In such case this new checkpoint can succeed, with corrupted/ [...]
@@ -2921,7 +2943,7 @@ A late barrier of a canceled checkpoint may lead to buffers being not written in
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.12.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.12.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Sub-task [FLINK-18897] - Add documentation for the maxwell-json format [FLINK-20352] - Rework command line interface documentation page [FLINK-20353] - Rework logging documentation page [FLINK-20354] - Rework standalone deployment documentation page [FLINK-20355] - Rework K8s deployment documentation page [FLINK-20356] - Rework Mesos deployment documentation page [FLINK-20422] - Remove from .html files in flink documentation [FLINK-20485] - Map views are deserialized multiple times [FLIN [...]
+Sub-task [FLINK-18897] - Add documentation for the maxwell-json format [FLINK-20352] - Rework command line interface documentation page [FLINK-20353] - Rework logging documentation page [FLINK-20354] - Rework standalone deployment documentation page [FLINK-20355] - Rework K8s deployment documentation page [FLINK-20356] - Rework Mesos deployment documentation page [FLINK-20422] - Remove from .html files in flink documentation [FLINK-20485] - Map views are deserialized multiple times [FLIN [...]
State in Flink # To best understand state and state backends in Flink, it’s important to distinguish between in-flight state and state snapshots. In-flight state, also known as working state, is the state a Flink job is working on. It is always stored locally in memory (with the possibility to spill to disk) and can be lost when jobs fail without impacting job recoverability. State snapshots, i.e., checkpoints and savepoints, are stored in a remote durable storage, and are used to restor [...]
What is RocksDB? # Thinking of RocksDB as a distributed database that needs to run on a cluster and to be managed by specialized administrators is a common misconception. RocksDB is an embeddable persistent key-value store for fast storage. It interacts with Flink via the Java Native Interface (JNI). The picture below shows where RocksDB fits in a Flink cluster node. Details are explained in the following sections.
RocksDB in Flink # Everything you need to use RocksDB as a state backend is bundled in the Apache Flink distribution, including the native shared library:
@@ -2942,7 +2964,7 @@ Note From Flink 1.10, RocksDB logging was effectively disabled by [setting the l
While data is being written or overwritten in RocksDB, flushing from memory to local disks and data compaction are managed in the background by RocksDB threads. On a machine with many CPU cores, you should increase the parallelism of background flushing and compaction by setting the Flink configuration state.backend.rocksdb.thread.num (corresponding to max_background_jobs in RocksDB). The default configuration is usually too small for a production setup. If your job reads frequently from [...]
For other RocksDBStateBackend configurations, check the Flink documentation on Advanced RocksDB State Backends Options. For further tuning, check RocksDB Tuning Guide in RocksDB Wiki.
Conclusion # The RocksDB state backend (i.e., RocksDBStateBackend) is one of the three state backends bundled in Flink, and can be a powerful choice when configuring your streaming applications. It enables scalable applications maintaining up to many terabytes of state with exactly-once processing guarantees. If the state of your Flink job is too large to fit on the JVM heap, you are interested in incremental checkpointing, or you expect to have predictable latency, you should use RocksD [...]
-`}),e.add({id:164,href:"/2021/01/11/exploring-fine-grained-recovery-of-bounded-data-sets-on-flink/",title:"Exploring fine-grained recovery of bounded data sets on Flink",section:"Flink Blog",content:`Apache Flink is a very versatile tool for all kinds of data processing workloads. It can process incoming data within a few milliseconds or crunch through petabytes of bounded datasets (also known as batch processing).
+`}),e.add({id:165,href:"/2021/01/11/exploring-fine-grained-recovery-of-bounded-data-sets-on-flink/",title:"Exploring fine-grained recovery of bounded data sets on Flink",section:"Flink Blog",content:`Apache Flink is a very versatile tool for all kinds of data processing workloads. It can process incoming data within a few milliseconds or crunch through petabytes of bounded datasets (also known as batch processing).
Processing efficiency is not the only parameter users of data processing systems care about. In the real world, system outages due to hardware or software failure are expected to happen all the time. For unbounded (or streaming) workloads, Flink is using periodic checkpoints to allow for reliable and correct recovery. In case of bounded data sets, having a reliable recovery mechanism is mission critical — as users do not want to potentially lose many hours of intermediate processing results.
Apache Flink 1.9 introduced fine-grained recovery into its internal workload scheduler. The Flink APIs that are made for bounded workloads benefit from this change by individually recovering failed operators, re-using results from the previous processing step.
In this blog post, we are going to give an overview over these changes, and we will experimentally validate their effectiveness.
@@ -2974,7 +2996,7 @@ Execution time with rare failures: Looking at the first few results on the left,
In general, we recommend conducting your own performance experiments on your own hardware and with your own workloads, as results might vary from what we’ve presented here. Despite the findings here, the pipelined mode probably has some performance advantages in environments with rare failures and slower I/O (for example when using spinning disks, or network attached disks). On the other hand, CPU intensive workloads might benefit from the batch mode even in slow I/O environments.
We should also note that the caching (and subsequent reprocessing on failure) only works if the cached results are still present – this is currently only the case, if the TaskManager survives a failure. However, this is an unrealistic assumption as many failures would cause the TaskManager process to die. To mitigate this limitation, data processing frameworks employ external shuffle services that persist the cached results independent of the data processing framework. Since Flink [...]
Despite these considerations, we believe that fine-grained recovery is a great improvement for Flink’s batch capabilities, as it makes the framework much more efficient, even in unstable environments.
-`}),e.add({id:165,href:"/2021/01/07/whats-new-in-the-pulsar-flink-connector-2.7.0/",title:"What's New in the Pulsar Flink Connector 2.7.0",section:"Flink Blog",content:` About the Pulsar Flink Connector # In order for companies to access real-time data insights, they need unified batch and streaming capabilities. Apache Flink unifies batch and stream processing into one single computing engine with “streams” as the unified data representation. Although developers have done extensive work [...]
+`}),e.add({id:166,href:"/2021/01/07/whats-new-in-the-pulsar-flink-connector-2.7.0/",title:"What's New in the Pulsar Flink Connector 2.7.0",section:"Flink Blog",content:` About the Pulsar Flink Connector # In order for companies to access real-time data insights, they need unified batch and streaming capabilities. Apache Flink unifies batch and stream processing into one single computing engine with “streams” as the unified data representation. Although developers have done extensive work [...]
The Pulsar Flink connector provides elastic data processing with Apache Pulsar and Apache Flink, allowing Apache Flink to read/write data from/to Apache Pulsar. The Pulsar Flink Connector enables you to concentrate on your business logic without worrying about the storage details.
Challenges # When we first developed the Pulsar Flink Connector, it received wide adoption from both the Flink and Pulsar communities. Leveraging the Pulsar Flink connector, Hewlett Packard Enterprise (HPE) built a real-time computing platform, BIGO built a real-time message processing system, and Zhihu is in the process of assessing the Connector’s fit for a real-time computing system.
With more users adopting the Pulsar Flink Connector, it became clear that one of the common issues was evolving around data formats and specifically performing serialization and deserialization. While the Pulsar Flink connector leverages the Pulsar serialization, the previous connector versions did not support the Flink data format. As a result, users had to manually configure their setup in order to use the connector for real-time computing scenarios.
@@ -3008,12 +3030,12 @@ Pulsar offers a hierarchical architecture where data is divided into streaming,
The batch and stream solution based on the new Flink Source API is divided into two simple parts: SplitEnumerator and Reader. SplitEnumerator discovers and assigns partitions, and Reader reads data from the partition.
Apache Pulsar stores messages in the ledger block for users to locate the ledgers through Pulsar admin, and then provide broker partition, BookKeeper partition, Offloader partition, and other information through different partitioning policies. For more details, you can refer here.
Conclusion # The latest version of the Pulsar Flink Connector is now available and we encourage everyone to use/upgrade to the Pulsar Flink Connector 2.7.0. The new version provides significant user enhancements, enabled by various features in Pulsar 2.7 and Flink 1.12. We will be contributing the Pulsar Flink Connector 2.7.0 to the Apache Flink repository soon. If you have any questions or concerns about the Pulsar Flink Connector, feel free to open issues in this repository.
-`}),e.add({id:166,href:"/2021/01/02/stateful-functions-2.2.2-release-announcement/",title:"Stateful Functions 2.2.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink community released the second bugfix release of the Stateful Functions (StateFun) 2.2 series, version 2.2.2.
+`}),e.add({id:167,href:"/2021/01/02/stateful-functions-2.2.2-release-announcement/",title:"Stateful Functions 2.2.2 Release Announcement",section:"Flink Blog",content:`The Apache Flink community released the second bugfix release of the Stateful Functions (StateFun) 2.2 series, version 2.2.2.
The most important change of this bugfix release is upgrading Apache Flink to version 1.11.3. In addition to many stability fixes to the Flink runtime itself, this also allows StateFun applications to safely use savepoints to upgrade from older versions earlier than StateFun 2.2.1. Previously, restoring from savepoints could have failed under certain conditions.
We strongly recommend all users to upgrade to 2.2.2.
You can find the binaries on the updated Downloads page.
This release includes 5 fixes and minor improvements since StateFun 2.2.1. Below is a detailed list of all fixes and improvements:
-Improvement [FLINK-20699] - Feedback invocation_id must not be constant. Task [FLINK-20161] - Consider switching from Travis CI to Github Actions for flink-statefun's CI workflows [FLINK-20189] - Restored feedback events may be silently dropped if per key-group header bytes were not fully read [FLINK-20636] - Require unaligned checkpoints to be disabled in StateFun applications [FLINK-20689] - Upgrade StateFun to Flink 1.11.3 `}),e.add({id:167,href:"/2020/12/18/apache-flink-1.11.3-re [...]
+Improvement [FLINK-20699] - Feedback invocation_id must not be constant. Task [FLINK-20161] - Consider switching from Travis CI to Github Actions for flink-statefun's CI workflows [FLINK-20189] - Restored feedback events may be silently dropped if per key-group header bytes were not fully read [FLINK-20636] - Require unaligned checkpoints to be disabled in StateFun applications [FLINK-20689] - Upgrade StateFun to Flink 1.11.3 `}),e.add({id:168,href:"/2020/12/18/apache-flink-1.11.3-re [...]
Release Highlights
The community has added support for efficient batch execution in the DataStream API. This is the next major milestone towards achieving a truly unified runtime for both batch and stream processing.
Kubernetes-based High Availability (HA) was implemented as an alternative to ZooKeeper for highly available production setups.
@@ -3081,7 +3103,7 @@ Note: General UDAFs are only supported for group aggregations and in _streaming_
Release Notes # Please review the release notes carefully for a detailed list of changes and new features if you plan to upgrade your setup to Flink 1.12. This version is API-compatible with previous 1.x releases for APIs annotated with the @Public annotation.
List of Contributors # The Apache Flink community would like to thank each and every one of the 300 contributors that have made this release possible:
Abhijit Shandilya, Aditya Agarwal, Alan Su, Alexander Alexandrov, Alexander Fedulov, Alexey Trenikhin, Aljoscha Krettek, Allen Madsen, Andrei Bulgakov, Andrey Zagrebin, Arvid Heise, Authuir, Bairos, Bartosz Krasinski, Benchao Li, Brandon, Brian Zhou, C08061, Canbin Zheng, Cedric Chen, Chesnay Schepler, Chris Nix, Congxian Qiu, DG-Wangtao, Da(Dash)Shen, Dan Hill, Daniel Magyar, Danish Amjad, Danny Chan, Danny Cranmer, David Anderson, Dawid Wysakowicz, Devin Thomson, Dian Fu, Dongxu Wang, [...]
-`}),e.add({id:169,href:"/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/",title:"Improvements in task scheduling for batch workloads in Apache Flink 1.12",section:"Flink Blog",content:`The Flink community has been working for some time on making Flink a truly unified batch and stream processing system. Achieving this involves touching a lot of different components of the Flink stack, from the user-facing APIs all the way to low-level operator processe [...]
+`}),e.add({id:170,href:"/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/",title:"Improvements in task scheduling for batch workloads in Apache Flink 1.12",section:"Flink Blog",content:`The Flink community has been working for some time on making Flink a truly unified batch and stream processing system. Achieving this involves touching a lot of different components of the Flink stack, from the user-facing APIs all the way to low-level operator processe [...]
Towards unified scheduling # Flink has an internal scheduler to distribute work to all available cluster nodes, taking resource utilization, state locality and recovery into account. How do you write a scheduler for a unified batch and streaming system? To answer this question, let’s first have a look into the high-level differences between batch and streaming scheduling requirements.
Streaming # Streaming jobs usually require that all operator subtasks are running in parallel at the same time, for an indefinite time. Therefore, all the required resources to run these jobs have to be provided upfront, and all operator subtasks must be deployed at once.
Flink: Streaming job example Because there are no finite intermediate results, a streaming job always has to be restarted fully from a checkpoint or a savepoint in case of failure.
@@ -3121,7 +3143,7 @@ A blocking result can be consumed only when its production is done. Hence, the b
Slots and resources # A TaskManager instance has a certain number of virtual slots. Each slot represents a certain part of the TaskManager’s physical resources to run the operator subtasks, and each subtask is deployed into a slot of the TaskManager. A slot can run multiple subtasks from different operators at the same time, usually chained together.
Scheduling strategy # Scheduling in Flink is a process of searching for and allocating appropriate resources (slots) from the TaskManagers to run the subtasks and produce results. The scheduling strategy reacts on scheduling events (like start job, subtask failed or finished etc) to decide which subtask to deploy next.
For instance, it does not make sense to schedule subtasks whose inputs are not ready to consume yet to avoid wasting resources. Another example is to schedule subtasks which are connected with pipelined edges together, to avoid deadlocks caused by backpressure.
-`}),e.add({id:170,href:"/2020/11/11/stateful-functions-2.2.1-release-announcement/",title:"Stateful Functions 2.2.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink community released the first bugfix release of the Stateful Functions (StateFun) 2.2 series, version 2.2.1.
+`}),e.add({id:171,href:"/2020/11/11/stateful-functions-2.2.1-release-announcement/",title:"Stateful Functions 2.2.1 Release Announcement",section:"Flink Blog",content:`The Apache Flink community released the first bugfix release of the Stateful Functions (StateFun) 2.2 series, version 2.2.1.
This release fixes a critical bug that causes restoring the Stateful Functions cluster from snapshots (checkpoints or savepoints) to fail under certain conditions. Starting from this release, StateFun now creates snapshots with a more robust format that allows it to be restored safely going forward.
We strongly recommend all users to upgrade to 2.2.1. Please see the following sections on instructions and things to keep in mind for this upgrade.
For new users just starting out with Stateful Functions # We strongly recommend to skip all previous versions and start using StateFun from version 2.2.1. This guarantees that failure recovery from checkpoints, or application upgrades using savepoints will work as expected for you.
@@ -3129,7 +3151,7 @@ For existing users on versions <= 2.2.0 # Users that are currently using olde
The follow-up hotfix release 2.2.2 is expected to be ready within another 2~3 weeks, as it requires a new hotfix release from Flink core, and ultimately an upgrade of the Flink dependency in StateFun. We’ll update the community via the Flink mailing lists as soon as this is ready, so please subscribe to the mailing lists for important updates for this!
You can find the binaries on the updated Downloads page.
This release includes 6 fixes and minor improvements since StateFun 2.2.0. Below is a detailed list of all fixes and improvements:
-Bug [FLINK-19515] - Async RequestReply handler concurrency bug [FLINK-19692] - Can't restore feedback channel from savepoint [FLINK-19866] - FunctionsStateBootstrapOperator.createStateAccessor fails due to uninitialized runtimeContext Improvement [FLINK-19826] - StateFun Dockerfile copies plugins with a specific version instead of a wildcard [FLINK-19827] - Allow the harness to start with a user provided Flink configuration [FLINK-19840] - Add a rocksdb and heap timers configuration [...]
+Bug [FLINK-19515] - Async RequestReply handler concurrency bug [FLINK-19692] - Can't restore feedback channel from savepoint [FLINK-19866] - FunctionsStateBootstrapOperator.createStateAccessor fails due to uninitialized runtimeContext Improvement [FLINK-19826] - StateFun Dockerfile copies plugins with a specific version instead of a wildcard [FLINK-19827] - Allow the harness to start with a user provided Flink configuration [FLINK-19840] - Add a rocksdb and heap timers configuration [...]
Despite all these great properties, Flink’s checkpointing method has an Achilles Heel: the speed of a completed checkpoint is determined by the speed at which data flows through the application. When the application backpressures, the processing of checkpoints is backpressured as well (Appendix 1 recaps what is backpressure and why it can be a good thing). In such cases, checkpoints may take longer to complete or even time out completely.
In Flink 1.11, the community introduced a first version of a new feature called “unaligned checkpoints” that aims at solving this issue, while Flink 1.12 plans to further expand its functionality. In this two-series blog post, we discuss how Flink’s checkpointing mechanism has been modified to support unaligned checkpoints, how unaligned checkpoints work, and how this new mode impacts Flink users. In the first of the two posts, we start with a recap of the original checkpoint [...]
State in Streaming Applications # Simply put, state is the information that you need to remember across events. Even the most trivial streaming applications are typically stateful because of their need to “remember” the exact position they are processing data from, for example in the form of a Kafka Partition Offset or a File Offset. In addition, many applications hold state internally as a way to support their internal operations, such as windows, aggregations, joins, or state machines.
@@ -3158,7 +3180,7 @@ Consider the example below:
We have a source (let’s say reading data from Apache Kafka), parsing data, grouping and aggregating data by a key, and writing it to a sink system (some database). The application needs to re-group data by key between the parsing and the grouping/aggregation step. Let’s assume we use a non-backpressure approach, like writing the data to a log/MQ for the data re-grouping over the network (the approach used by Kafka Streams). If the sink is now slower than the remaining parts of the stream [...]
With backpressure, the source/parse stage slows down to match the speed of the sink, keeping both parts of the application closer together in their progress through the data, and avoiding the need to provision a lot of intermediate storage capacity.
We’d like to thank Marta Paes Moreira and Markos Sfikas for the wonderful review process.
-`}),e.add({id:172,href:"/2020/10/13/stateful-functions-internals-behind-the-scenes-of-stateful-serverless/",title:"Stateful Functions Internals: Behind the scenes of Stateful Serverless",section:"Flink Blog",content:`Stateful Functions (StateFun) simplifies the building of distributed stateful applications by combining the best of two worlds: the strong messaging and state consistency guarantees of stateful stream processing, and the elasticity and serverless experience of today’s [...]
+`}),e.add({id:173,href:"/2020/10/13/stateful-functions-internals-behind-the-scenes-of-stateful-serverless/",title:"Stateful Functions Internals: Behind the scenes of Stateful Serverless",section:"Flink Blog",content:`Stateful Functions (StateFun) simplifies the building of distributed stateful applications by combining the best of two worlds: the strong messaging and state consistency guarantees of stateful stream processing, and the elasticity and serverless experience of today’s [...]
But how exactly does StateFun achieve that? How does the StateFun cluster communicate with the functions?
This blog dives deep into the internals of the StateFun runtime. The entire walkthrough is complemented by a demo application which can be completely deployed on AWS services. Most significantly, in the demo, the stateful functions are deployed and serviced using AWS Lambda, a popular FaaS platform among many others. The goal here is to allow readers to have a good grasp of the interaction between the StateFun runtime and the functions, how that works cohesively to provide a Stateful Ser [...]
Introducing the example: Shopping Cart # Note You can find the full code [here](https://github.com/tzulitai/statefun-aws-demo/blob/master/app/shopping_cart.py), which uses StateFun's [Python SDK](//nightlies.apache.org/flink/flink-statefun-docs-master/sdk/python.html). Alternatively, if you are unfamiliar with StateFun's API, you can check out this [earlier blog](https://flink.apache.org/2020/08/19/statefun.html) on modeling applications and stateful entities using [StateFun's programmin [...]
@@ -3187,7 +3209,7 @@ Fig.5: Complete deployment example on AWS. A natural consequence of this charact
In our complementary demo code, you can find here the exact code on how to expose and service StateFun functions through AWS Lambda. Likewise, this is possible for any other FaaS platform that supports triggering the functions using HTTP endpoints (and other transports as well in the future).
Fig. 5 on the right illustrates what a complete AWS deployment of a StateFun application would look like, with functions serviced via AWS Lambda, AWS Kinesis streams as ingresses and egresses, AWS EKS managed Kubernetes cluster to run the StateFun cluster, and an AWS S3 bucket to store the periodic checkpoints. You can also follow the instructions in the demo code to try it out and deploy this yourself right away!
If you’d like to learn more about Stateful Functions, head over to the official documentation, where you can also find more hands-on tutorials to try out yourself!
-`}),e.add({id:173,href:"/2020/09/28/stateful-functions-2.2.0-release-announcement/",title:"Stateful Functions 2.2.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is happy to announce the release of Stateful Functions (StateFun) 2.2.0! This release introduces major features that extend the SDKs, such as support for asynchronous functions in the Python SDK, new persisted state constructs, and a new SDK that allows embedding StateFun functions within a Flink [...]
+`}),e.add({id:174,href:"/2020/09/28/stateful-functions-2.2.0-release-announcement/",title:"Stateful Functions 2.2.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is happy to announce the release of Stateful Functions (StateFun) 2.2.0! This release introduces major features that extend the SDKs, such as support for asynchronous functions in the Python SDK, new persisted state constructs, and a new SDK that allows embedding StateFun functions within a Flink [...]
We’ve also seen new 3rd party SDKs for StateFun being developed since the last release. While they are not part of the release artifacts, it’s great seeing these community-driven additions! We’ve highlighted these efforts below in this announcement.
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Python SDK distribution is available on PyPI. For more details, check the complete release changelog and the updated documentation. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA!
New Features # Asynchronous functions in Python SDK # This release enables registering asynchronous Python functions as stateful functions by introducing a new handler in the Python SDK: AsyncRequestReplyHandler. This allows serving StateFun functions with Python web frameworks that support asynchronous IO natively (for example, aiohttp):
@@ -3207,13 +3229,13 @@ Important Patch Notes # Below is a list of user-facing interface and configurati
List of Contributors # The Apache Flink community would like to thank all contributors that have made this release possible:
abc863377, Authuir, Chesnay Schepler, Congxian Qiu, David Anderson, Dian Fu, Francesco Guardiani, Igal Shilman, Marta Paes Moreira, Patrick Wiener, Rafi Aroch, Seth Wiesman, Stephan Ewen, Tzu-Li (Gordon) Tai, Ufuk Celebi
If you’d like to get involved, we’re always looking for new contributors.
-`}),e.add({id:174,href:"/2020/09/17/apache-flink-1.11.2-released/",title:"Apache Flink 1.11.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.11 series.
+`}),e.add({id:175,href:"/2020/09/17/apache-flink-1.11.2-released/",title:"Apache Flink 1.11.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.11 series.
This release includes 96 fixes and minor improvements for Flink 1.11.1. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.11.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.11.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.11.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Sub-task [FLINK-16087] - Translate "Detecting Patterns" page of "Streaming Concepts" into Chinese [FLINK-18264] - Translate the "External Resource Framework" page into Chinese [FLINK-18628] - Invalid error message for overloaded methods with same parameter name [FLINK-18801] - Add a "10 minutes to Table API" document under the "Python API" -> "User Guide" -> "Table API" section [FLINK-18910] - Create the new docu [...]
+Sub-task [FLINK-16087] - Translate "Detecting Patterns" page of "Streaming Concepts" into Chinese [FLINK-18264] - Translate the "External Resource Framework" page into Chinese [FLINK-18628] - Invalid error message for overloaded methods with same parameter name [FLINK-18801] - Add a "10 minutes to Table API" document under the "Python API" -> "User Guide" -> "Table API" section [FLINK-18910] - Create the new docu [...]
The Past Month in Flink # Flink Releases # Getting Ready for Flink Stateful Functions 2.2 # The details of the next release of Stateful Functions are under discussion in this @dev mailing list thread, and the feature freeze is set for September 10th — so, you can expect Stateful Functions 2.2 to be released soon after! Some of the most relevant features in the upcoming release are:
DataStream API interoperability, allowing users to embed Stateful Functions pipelines in regular DataStream API programs with DataStream ingress/egress.
Fine-grained control over state for remote functions, including the ability to configure different state expiration modes for each individual function.
@@ -3252,7 +3274,7 @@ Change Data Capture with Flink SQL and Debezium
Real-Time Stock Processing With Apache NiFi, Apache Flink and Apache Kafka
Using the Mm FLaNK Stack for Edge AI (Apache MXNet, Apache Flink, Apache NiFi, Apache Kafka, Apache Kudu)
Blogposts Flink 1.11 Series The State of Flink on Docker Accelerating your workload with GPU and other external resources PyFlink: The integration of Pandas into PyFlink Other Monitoring and Controlling Networks of IoT Devices with Flink Stateful Functions Advanced Flink Application Patterns Vol.3: Custom Window Processing Flink Packages Flink Packages is a website where you can explore (and contribute to) the Flink ecosystem of connectors, extensions, APIs, tools and integrations. New i [...]
-`}),e.add({id:176,href:"/2020/09/01/memory-management-improvements-for-flinks-jobmanager-in-apache-flink-1.11/",title:"Memory Management improvements for Flink’s JobManager in Apache Flink 1.11",section:"Flink Blog",content:`Apache Flink 1.11 comes with significant changes to the memory model of Flink’s JobManager and configuration options for your Flink clusters. These recently-introduced changes make Flink adaptable to all kinds of deployment environments (e.g. Kubernetes, Yarn, Mesos) [...]
+`}),e.add({id:177,href:"/2020/09/01/memory-management-improvements-for-flinks-jobmanager-in-apache-flink-1.11/",title:"Memory Management improvements for Flink’s JobManager in Apache Flink 1.11",section:"Flink Blog",content:`Apache Flink 1.11 comes with significant changes to the memory model of Flink’s JobManager and configuration options for your Flink clusters. These recently-introduced changes make Flink adaptable to all kinds of deployment environments (e.g. Kubernetes, Yarn, Mesos) [...]
The previous blog post focused on the memory model of the TaskManagers and how it was improved in Flink 1.10. This post addresses the same topic but for the JobManager instead. Flink 1.11 unifies the memory model of Flink’s processes. The newly-introduced memory model of the JobManager follows a similar approach to that of the TaskManagers; it is simpler and has fewer components and tuning knobs. This post might consequently seem very similar to our previous story on Flink’s memory but a [...]
Introduction to Flink’s process memory model # Having a clear understanding of Apache Flink’s process memory model allows you to manage resources for the various workloads more efficiently. The following diagram illustrates the main memory components of a Flink process:
Flink: Total Process Memory The JobManager process is a JVM process. On a high level, its memory consists of the JVM Heap and Off-Heap memory. These types of memory are consumed by Flink directly or by the JVM for its specific purposes (i.e. metaspace). There are two major memory consumers within the JobManager process: the framework itself consuming memory for internal data structures, network communication, etc. and the user code which runs within the JobManager process, e.g. in certai [...]
@@ -3268,7 +3290,7 @@ User code or its dependencies consume significant off-heap memory. Tuning the Of
JVM metaspace requires additional memory. If you encounter OutOfMemoryError: Metaspace, Flink provides an option to increase its default limit and the JVM will ensure that it is not exceeded. The metaspace size of a Flink JVM process is always explicitly set in contrast to the default JVM settings where it is not limited.
JVM requires more internal memory. There is no direct control over certain types of JVM process allocations but Flink provides JVM Overhead options. The JVM Overhead options allow declaring an additional amount of memory, anticipated for those allocations and not covered by other options.
Conclusion # The latest Flink release (Flink 1.11) introduces some notable changes to the memory configuration of Flink’s JobManager, making its memory management significantly easier than before. Stay tuned for more additions and features in upcoming releases. If you have any suggestions or questions for the Flink community, we encourage you to sign up to the Apache Flink mailing lists and become part of the discussion.
-`}),e.add({id:177,href:"/2020/08/25/apache-flink-1.10.2-released/",title:"Apache Flink 1.10.2 Released",section:"Flink Blog",content:"The Apache Flink community released the second bugfix version of the Apache Flink 1.10 series.\nThis release includes 73 fixes and minor improvements for Flink 1.10.1. The list below includes a detailed list of all fixes and improvements.\nWe highly recommend all users to upgrade to Flink 1.10.2.\nNote After FLINK-18242, the deprecated `OptionsFactory` and [...]
+`}),e.add({id:178,href:"/2020/08/25/apache-flink-1.10.2-released/",title:"Apache Flink 1.10.2 Released",section:"Flink Blog",content:"The Apache Flink community released the second bugfix version of the Apache Flink 1.10 series.\nThis release includes 73 fixes and minor improvements for Flink 1.10.1. The list below includes a detailed list of all fixes and improvements.\nWe highly recommend all users to upgrade to Flink 1.10.2.\nNote After FLINK-18242, the deprecated `OptionsFactory` and [...]
The Flink community recently put some effort into improving the Docker experience for our users with the goal to reduce confusion and improve usability.
Let’s quickly break down the recent improvements:
Reduce confusion: Flink used to have 2 Dockerfiles and a 3rd file maintained outside of the official repository — all with different features and varying stability. Now, we have one central place for all images: apache/flink-docker.
@@ -3286,7 +3308,7 @@ Let’s now submit one of Flink’s example jobs:
# 1: (optional) Download the Flink distribution, and unpack it wget https://archive.apache.org/dist/flink/flink-1.11.1/flink-1.11.1-bin-scala_2.12.tgz tar xf flink-1.11.1-bin-scala_2.12.tgz cd flink-1.11.1 # 2: Start the Flink job ./bin/flink run ./examples/streaming/TopSpeedWindowing.jar The main steps of the tutorial are also recorded in this short screencast:
Next steps: Now that you’ve successfully completed this tutorial, we recommend you checking out the full Flink on Docker documentation for implementing more advanced deployment scenarios, such as Job Clusters, Docker Compose or our native Kubernetes integration.
Conclusion # We encourage all readers to try out Flink on Docker to provide the community with feedback to further improve the experience. Please refer to the user@flink.apache.org (remember to subscribe first) for general questions and our issue tracker for specific bugs or improvements, or ideas for contributions!
-`}),e.add({id:179,href:"/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/",title:"Monitoring and Controlling Networks of IoT Devices with Flink Stateful Functions",section:"Flink Blog",content:`In this blog post, we’ll take a look at a class of use cases that is a natural fit for Flink Stateful Functions: monitoring and controlling networks of connected devices (often called the “Internet of Things” (IoT)).
+`}),e.add({id:180,href:"/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/",title:"Monitoring and Controlling Networks of IoT Devices with Flink Stateful Functions",section:"Flink Blog",content:`In this blog post, we’ll take a look at a class of use cases that is a natural fit for Flink Stateful Functions: monitoring and controlling networks of connected devices (often called the “Internet of Things” (IoT)).
IoT networks are composed of many individual, but interconnected components, which makes getting some kind of high-level insight into the status, problems, or optimization opportunities in these networks not trivial. Each individual device “sees” only its own state, which means that the status of groups of devices, or even the network as a whole, is often a complex aggregation of the individual devices’ state. Diagnosing, controlling, or optimizing these groups of devices thus requires d [...]
A powerful approach to implement this is using digital twins: each device has a corresponding virtual entity (i.e. the digital twin), which also captures their relationships and interactions. The digital twins track the status of their corresponding devices and send updates to other twins, representing groups (such as geographical regions) of devices. Those, in turn, handle the logic to obtain the network’s aggregated view, or this “bigger picture” we mentioned before.
Our Scenario: Datacenter Monitoring and Alerting # Fig.1 An oversimplified view of a data center. There are many examples of the digital twins approach in the real world, such as smart grids of batteries, smart cities, or monitoring infrastructure software clusters. In this blogpost, we’ll use the example of data center monitoring and alert correlation implemented with Stateful Functions.
@@ -3321,7 +3343,7 @@ A root function correlates the high-level events across the intermediate functio
How does it really look? # ServerFun # This section associates a behaviour for every message that the function expects to be invoked with. The metricsHistory buffer is our sliding window of the last 15 minutes worth of ServerMetricReports. Note that this buffer is configured to expire entries 15 minutes after they were written. serverHealthState represents the current physical server state, open incidents and so on. Let’s take a look at what happens when a ServerMetricReport messag [...]
Retrieve the previously computed serverHealthState that is kept in state. Evaluate a model on the sliding window of the previous metric reports + the current metric reported + the previously computed server state to obtain an assessment of the current server health. If the server is not believed to be healthy, emit an alert via an alerts topic, and also send a message to our containing rack with all the open incidents that this server currently has. We'll omit the other handlers for brev [...]
Stateful Functions provides the building blocks necessary for building complex distributed applications (here the digital twins that support analysis and interactions of the physical entities), while removing common complexities of distributed systems like service discovery, retires, circuit breakers, state management, scalability and similar challenges. If you’d like to learn more about Stateful Functions, head over to the official documentation, where you can also find more hands [...]
-`}),e.add({id:180,href:"/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/",title:"Accelerating your workload with GPU and other external resources",section:"Flink Blog",content:`Apache Flink 1.11 introduces a new External Resource Framework, which allows you to request external resources from the underlying resource management systems (e.g., Kubernetes) and accelerate your workload with those resources. As Flink provides a first-party GPU plugin at the moment, [...]
+`}),e.add({id:181,href:"/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/",title:"Accelerating your workload with GPU and other external resources",section:"Flink Blog",content:`Apache Flink 1.11 introduces a new External Resource Framework, which allows you to request external resources from the underlying resource management systems (e.g., Kubernetes) and accelerate your workload with those resources. As Flink provides a first-party GPU plugin at the moment, [...]
End-to-end real-time AI with GPU # Recently, AI and Machine Learning have gained additional popularity and have been widely used in various scenarios, such as personalized recommendation and image recognition. Flink, with the ability to support GPU allocation, can be used to build an end-to-end real-time AI workflow.
Why Flink # Typical AI workloads fall into two categories: training and inference.
Typical AI Workflow The training workload is usually a batch task, in which we train a model from a bounded dataset. On the other hand, the inference workload tends to be a streaming job. It consumes an unbounded data stream, which contains image data, for example, and uses a model to produce the output of predictions. Both workloads need to do data preprocessing first. Flink, as a unified batch and stream processing engine, can be used to build an end-to-end AI workflow naturally.
@@ -3338,7 +3360,7 @@ Other external resources # In addition to GPU support, there are many other exte
With the external resource framework, you only need to implement a plugin that enables the operator to get the information for these external resources; see Custom Plugin for more details. If you just want to ensure that an external resource exists in the TaskManager, then you only need to find the configuration key of that resource in the underlying resource management system and configure the external resource framework accordingly.
Conclusion # In the latest Flink release (Flink 1.11), an external resource framework has been introduced to support requesting various types of resources from the underlying resource management systems, and supply all the necessary information for using these resources to the operators. The first-party GPU plugin expands the application prospects of Flink in the AI domain. Different resource types can be supported in a pluggable way. You can also implement your own plugins for custom re [...]
Future developments in this area include implementing operator level resource isolation and fine-grained external resource scheduling. The community may kick this work off once FLIP-56 is finished. If you have any suggestions or questions for the community, we encourage you to sign up to the Apache Flink mailing lists and join the discussion there.
-`}),e.add({id:181,href:"/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/",title:"PyFlink: The integration of Pandas into PyFlink",section:"Flink Blog",content:`Python has evolved into one of the most important programming languages for many fields of data processing. So big has been Python’s popularity, that it has pretty much become the default data processing language for data scientists. On top of that, there is a plethora of Python-based data processing tools such as NumPy [...]
+`}),e.add({id:182,href:"/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/",title:"PyFlink: The integration of Pandas into PyFlink",section:"Flink Blog",content:`Python has evolved into one of the most important programming languages for many fields of data processing. So big has been Python’s popularity, that it has pretty much become the default data processing language for data scientists. On top of that, there is a plethora of Python-based data processing tools such as NumPy [...]
Pic source: VanderPlas 2017, slide 52. In an effort to meet the user needs and demands, the Flink community hopes to leverage and make better use of these tools. Along this direction, the Flink community put some great effort in integrating Pandas into PyFlink with the latest Flink version 1.11. Some of the added features include support for Pandas UDF and the conversion between Pandas DataFrame and Table. Pandas UDF not only greatly improve the execution performance of Python UDF, but a [...]
Note Currently, only Scalar Pandas UDFs are supported in PyFlink. Pandas UDF in Flink 1.11 # Using scalar Python UDF was already possible in Flink 1.10 as described in a previous article on the Flink blog. Scalar Python UDFs work based on three primary steps:
the Java operator serializes one input row to bytes and sends them to the Python worker;
@@ -3358,7 +3380,7 @@ Firstly, you need to prepare the input data in the “/tmp/input” file
Finally, you can see the execution result on the command line. As you can see, all the temperature data with an empty value has been interpolated: $ cat /tmp/output 1,98.0 1,99.0 1,100.0 2,99.0 Conversion between PyFlink Table and Pandas DataFrame # You can use the from_pandas() method to create a PyFlink Table from a Pandas DataFrame or use the to_pandas() method to convert a PyFlink Table to a Pandas DataFrame.
from pyflink.datastream import StreamExecutionEnvironment from pyflink.table import StreamTableEnvironment import pandas as pd import numpy as np env = StreamExecutionEnvironment.get_execution_environment() t_env = StreamTableEnvironment.create(env) # Create a PyFlink Table pdf = pd.DataFrame(np.random.rand(1000, 2)) table = t_env.from_pandas(pdf, ["a", "b"]).filter("a > 0.5") # Convert the PyFlink Table to a Pandas DataFrame pdf = table.to_pandas() print(pdf) [...]
Future work by the community will focus on adding more features and bringing additional optimizations with follow up releases. Such optimizations and additions include a Python DataStream API and more integration with the Python ecosystem, such as support for distributed Pandas in Flink. Stay tuned for more information and updates with the upcoming releases!
-`}),e.add({id:182,href:"/2020/07/30/advanced-flink-application-patterns-vol.3-custom-window-processing/",title:"Advanced Flink Application Patterns Vol.3: Custom Window Processing",section:"Flink Blog",content:` Introduction # In the previous articles of the series, we described how you can achieve flexible stream partitioning based on dynamically-updated configurations (a set of fraud-detection rules) and how you can utilize Flink's Broadcast mechanism to distribute processing configura [...]
+`}),e.add({id:183,href:"/2020/07/30/advanced-flink-application-patterns-vol.3-custom-window-processing/",title:"Advanced Flink Application Patterns Vol.3: Custom Window Processing",section:"Flink Blog",content:` Introduction # In the previous articles of the series, we described how you can achieve flexible stream partitioning based on dynamically-updated configurations (a set of fraud-detection rules) and how you can utilize Flink's Broadcast mechanism to distribute processing configura [...]
This article will describe some high-level concepts that can be applied independently, but it is recommended that you review the material in part one and part two of the series as well as checkout the code base in order to make it easier to follow along.
ProcessFunction as a “Window” # Low Latency # Let’s start with a reminder of the type of fraud detection rule that we would like to support:
“Whenever the sum of payments from the same payer to the same beneficiary within a 24 hour period is greater than 200 000 $ - trigger an alert.”
@@ -3414,7 +3436,7 @@ Fault-tolerant state with quick, local access
Convenient abstraction for working with this state, which is as simple as using a local variable
Multi-threaded, parallel execution engine. ProcessFunction code runs in a single thread, without the need for synchronization. Flink handles all the parallel execution aspects and correct access to the shared state, without you, as a developer, having to think about it (concurrency is hard).
All these aspects make it possible to build applications with Flink that go well beyond trivial streaming ETL use cases and enable implementation of arbitrarily-sophisticated, distributed event-driven applications. With Flink, you can rethink approaches to a wide range of use cases which normally would rely on using stateless parallel execution nodes and “pushing” the concerns of state fault tolerance to a database, an approach that is often destined to run into scalability i [...]
-`}),e.add({id:183,href:"/2020/07/29/flink-community-update-july20/",title:"Flink Community Update - July'20",section:"Flink Blog",content:`As July draws to an end, we look back at a monthful of activity in the Flink community, including two releases (!) and some work around improving the first-time contribution experience in the project.
+`}),e.add({id:184,href:"/2020/07/29/flink-community-update-july20/",title:"Flink Community Update - July'20",section:"Flink Blog",content:`As July draws to an end, we look back at a monthful of activity in the Flink community, including two releases (!) and some work around improving the first-time contribution experience in the project.
Also, events are starting to pick up again, so we’ve put together a list of some great ones you can (virtually) attend in August!
The Past Month in Flink # Flink Releases # Flink 1.11 # A couple of weeks ago, Flink 1.11 was announced in what was (again) the biggest Flink release to date (see “A Look Into the Evolution of Flink Releases”)! The new release brought significant improvements to usability as well as new features to Flink users across the API stack. Some highlights of Flink 1.11 are:
Unaligned checkpoints to cope with high backpressure scenarios;
@@ -3445,7 +3467,7 @@ Sweet Streams are Made of These: Data Driven Development with Stream Processing
Beam Summit (Aug. 24-29) Streaming, Fast and Slow
Building Stateful Streaming Pipelines With Beam
Blogposts Flink 1.11 Series Application Deployment in Flink: Current State and the new Application Mode Sharing is caring - Catalogs in Flink SQL (Tutorial) Flink SQL Demo: Building an End-to-End Streaming Application (Tutorial) Other Streaming analytics with Java and Apache Flink (Tutorial) Flink for online Machine Learning and real-time processing at Weibo Data-driven Matchmaking at Azar with Apache Flink Flink Packages Flink Packages is a website where you can explore (and contribute [...]
-`}),e.add({id:184,href:"/2020/07/28/flink-sql-demo-building-an-end-to-end-streaming-application/",title:"Flink SQL Demo: Building an End-to-End Streaming Application",section:"Flink Blog",content:`Apache Flink 1.11 has released many exciting new features, including many developments in Flink SQL which is evolving at a fast pace. This article takes a closer look at how to quickly build streaming applications with Flink SQL from a practical point of view.
+`}),e.add({id:185,href:"/2020/07/28/flink-sql-demo-building-an-end-to-end-streaming-application/",title:"Flink SQL Demo: Building an End-to-End Streaming Application",section:"Flink Blog",content:`Apache Flink 1.11 has released many exciting new features, including many developments in Flink SQL which is evolving at a fast pace. This article takes a closer look at how to quickly build streaming applications with Flink SQL from a practical point of view.
In the following sections, we describe how to integrate Kafka, MySQL, Elasticsearch, and Kibana with Flink SQL to analyze e-commerce user behavior in real-time. All exercises in this blogpost are performed in the Flink SQL CLI, and the entire process uses standard SQL syntax, without a single line of Java/Scala code or IDE installation. The final result of this demo is shown in the following figure:
Preparation # Prepare a Linux or MacOS computer with Docker installed.
Starting the Demo Environment # The components required in this demo are all managed in containers, so we will use docker-compose to start them. First, download the docker-compose.yml file that defines the demo environment, for example by running the following commands:
@@ -3486,13 +3508,13 @@ INSERT INTO top_category SELECT category_name, COUNT(*) buy_cnt FROM rich_user_b
As illustrated in the diagram, the categories of clothing and shoes exceed by far other categories on the e-commerce website.
We have now implemented three practical applications and created charts for them. We can now return to the dashboard page and drag-and-drop each view to give our dashboard a more formal and intuitive style, as illustrated in the beginning of the blogpost. Of course, Kibana also provides a rich set of graphics and visualization features, and the user_behavior logs contain a lot more interesting information to explore. Using Flink SQL, you can analyze data in more dimensions, while using K [...]
Summary # In the previous sections, we described how to use Flink SQL to integrate Kafka, MySQL, Elasticsearch, and Kibana to quickly build a real-time analytics application. The entire process can be completed using standard SQL syntax, without a line of Java or Scala code. We hope that this article provides some clear and practical examples of the convenience and power of Flink SQL, featuring an easy connection to various external systems, native support for event time and out-of-order [...]
-`}),e.add({id:185,href:"/2020/07/23/sharing-is-caring-catalogs-in-flink-sql/",title:"Sharing is caring - Catalogs in Flink SQL",section:"Flink Blog",content:"With an ever-growing number of people working with data, it’s a common practice for companies to build self-service platforms with the goal of democratizing their access across different teams and — especially — to enable users from any background to be independent in their data needs. In such environments, metadata management [...]
+`}),e.add({id:186,href:"/2020/07/23/sharing-is-caring-catalogs-in-flink-sql/",title:"Sharing is caring - Catalogs in Flink SQL",section:"Flink Blog",content:"With an ever-growing number of people working with data, it’s a common practice for companies to build self-service platforms with the goal of democratizing their access across different teams and — especially — to enable users from any background to be independent in their data needs. In such environments, metadata management [...]
This release includes 44 fixes and minor improvements for Flink 1.11.0. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.11.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.11.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.11.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Sub-task [FLINK-15794] - Rethink default value of kubernetes.container.image [FLINK-18324] - Translate updated data type and function page into Chinese [FLINK-18387] - Translate "BlackHole SQL Connector" page into Chinese [FLINK-18388] - Translate "CSV Format" page into Chinese [FLINK-18391] - Translate "Avro Format" page into Chinese [FLINK-18395] - Translate "ORC Format" page into Chinese [FLINK-18469] - Add Application Mode to release notes. [FL [...]
+Sub-task [FLINK-15794] - Rethink default value of kubernetes.container.image [FLINK-18324] - Translate updated data type and function page into Chinese [FLINK-18387] - Translate "BlackHole SQL Connector" page into Chinese [FLINK-18388] - Translate "CSV Format" page into Chinese [FLINK-18391] - Translate "Avro Format" page into Chinese [FLINK-18395] - Translate "ORC Format" page into Chinese [FLINK-18469] - Add Application Mode to release notes. [FL [...]
These platforms aim at simplifying application submission internally by lifting all the operational burden from the end user. To submit Flink applications, these platforms usually expose only a centralized or low-parallelism endpoint (e.g. a Web frontend) for application submission that we will call the Deployer.
One of the roadblocks that platform developers and maintainers often mention is that the Deployer can be a heavy resource consumer that is difficult to provision for. Provisioning for average load can lead to the Deployer service being overwhelmed with deployment requests (in the worst case, for all production applications in a short period of time), while planning based on top load leads to unnecessary costs. Building on this observation, Flink 1.11 introduces the Application Mode as a [...]
In order to understand the problem and how the Application Mode solves it, we start by describing briefly the current status of application execution in Flink, before describing the architectural changes introduced by the new deployment mode and how to leverage them.
@@ -3531,7 +3553,7 @@ To further save the bandwidth of shipping the Flink distribution to the cluster,
Conclusion # We hope that this discussion helped you understand the differences between the various deployment modes offered by Flink and will help you to make informed decisions about which one is suitable in your own setup. Feel free to play around with them and report any issues you may find. If you have any questions or requests, do not hesitate to post them in the mailing lists and, hopefully, see you (virtually) at one of our conferences or meetups soon!
The only exceptions are the Web Submission and the Standalone per-job implementation. ↩︎
Support for Kubernetes will come soon. ↩︎
-`}),e.add({id:188,href:"/2020/07/06/apache-flink-1.11.0-release-announcement/",title:"Apache Flink 1.11.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is proud to announce the release of Flink 1.11.0! More than 200 contributors worked on over 1.3k issues to bring significant improvements to usability as well as new features to Flink users across the whole API stack. Some highlights that we’re particularly excited about are:
+`}),e.add({id:189,href:"/2020/07/06/apache-flink-1.11.0-release-announcement/",title:"Apache Flink 1.11.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is proud to announce the release of Flink 1.11.0! More than 200 contributors worked on over 1.3k issues to bring significant improvements to usability as well as new features to Flink users across the whole API stack. Some highlights that we’re particularly excited about are:
The core engine is introducing unaligned checkpoints, a major change to Flink’s fault tolerance mechanism that improves checkpointing performance under heavy backpressure.
A new Source API that simplifies the implementation of (custom) sources by unifying batch and streaming execution, as well as offloading internals such as event-time handling, watermark generation or idleness detection to Flink.
Flink SQL is introducing Support for Change Data Capture (CDC) to easily consume and interpret database changelogs from tools like Debezium. The renewed FileSystem Connector also expands the set of use cases and formats supported in the Table API/SQL, enabling scenarios like streaming data directly from Kafka to Hive.
@@ -3618,7 +3640,7 @@ Important Changes # [FLINK-17339] The Blink planner is the default in the Table
Release Notes # Please review the release notes carefully for a detailed list of changes and new features if you plan to upgrade your setup to Flink 1.11. This version is API-compatible with previous 1.x releases for APIs annotated with the @Public annotation.
List of Contributors # The Apache Flink community would like to thank all the 200+ contributors that have made this release possible:
Aitozi, Alexander Fedulov, Alexey Trenikhin, Aljoscha Krettek, Andrey Zagrebin, Arvid Heise, Ayush Saxena, Bairos, Bartosz Krasinski, Benchao Li, Benoit Hanotte, Benoît Paris, Bhagavan Das, Canbin Zheng, Cedric Chen, Chesnay Schepler, Colm O hEigeartaigh, Congxian Qiu, CrazyTomatoOo, Danish Amjad, Danny Chan, David Anderson, Dawid Wysakowicz, Dian Fu, Dominik Wosiński, Echo Lee, Ethan Marsh, Etienne Chauchot, Fabian Hueske, Fabian Paul, Flavio Pompermaier, Gao Yun, Gary Yao, Ghildiyal, G [...]
-`}),e.add({id:189,href:"/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/",title:"Flink on Zeppelin Notebooks for Interactive Data Analysis - Part 2",section:"Flink Blog",content:`In a previous post, we introduced the basics of Flink on Zeppelin and how to do Streaming ETL. In this second part of the “Flink on Zeppelin” series of posts, I will share how to perform streaming data visualization via Flink on Zeppelin and how to use Apache Flink UDFs i [...]
+`}),e.add({id:190,href:"/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/",title:"Flink on Zeppelin Notebooks for Interactive Data Analysis - Part 2",section:"Flink Blog",content:`In a previous post, we introduced the basics of Flink on Zeppelin and how to do Streaming ETL. In this second part of the “Flink on Zeppelin” series of posts, I will share how to perform streaming data visualization via Flink on Zeppelin and how to use Apache Flink UDFs i [...]
Streaming Data Visualization # With Zeppelin, you can build a real time streaming dashboard without writing any line of javascript/html/css code.
Overall, Zeppelin supports 3 kinds of streaming data analytics:
Single Mode Update Mode Append Mode Single Mode # Single mode is used for cases when the result of a SQL statement is always one row, such as the following example. The output format is translated in HTML, and you can specify a paragraph local property template for the final output content template. And you can use {i} as placeholder for the {i}th column of the result.
@@ -3627,14 +3649,14 @@ Append Mode # Append mode is suitable for the cases when the output data is alwa
UDF # SQL is a very powerful language, especially in expressing data flow. But most of the time, you need to handle complicated business logic that cannot be expressed by SQL. In these cases UDFs (user-defined functions) come particularly handy. In Zeppelin, you can write Scala or Python UDFs, while you can also import Scala, Python and Java UDFs. Here are 2 examples of Scala and Python UDFs:
Scala UDF %flink class ScalaUpper extends ScalarFunction { def eval(str: String) = str.toUpperCase } btenv.registerFunction("scala_upper", new ScalaUpper()) Python UDF %flink.pyflink class PythonUpper(ScalarFunction): def eval(self, s): return s.upper() bt_env.register_function("python_upper", udf(PythonUpper(), DataTypes.STRING(), DataTypes.STRING())) After you define the UDFs, you can use them directly in SQL:
Use Scala UDF in SQL Use Python UDF in SQL Summary # In this post, we explained how to perform streaming data visualization via Flink on Zeppelin and how to use UDFs. Besides that, you can do more in Zeppelin with Flink, such as batch processing, Hive integration and more. You can check the following articles for more details and here’s a list of Flink on Zeppelin tutorial videos for your reference.
-References # Apache Zeppelin official website Flink on Zeppelin tutorials - Part 1 Flink on Zeppelin tutorials - Part 2 Flink on Zeppelin tutorials - Part 3 Flink on Zeppelin tutorials - Part 4 Flink on Zeppelin tutorial videos `}),e.add({id:190,href:"/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/",title:"Flink on Zeppelin Notebooks for Interactive Data Analysis - Part 1",section:"Flink Blog",content:`The latest release of Apache Zeppelin comes with a redes [...]
+References # Apache Zeppelin official website Flink on Zeppelin tutorials - Part 1 Flink on Zeppelin tutorials - Part 2 Flink on Zeppelin tutorials - Part 3 Flink on Zeppelin tutorials - Part 4 Flink on Zeppelin tutorial videos `}),e.add({id:191,href:"/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/",title:"Flink on Zeppelin Notebooks for Interactive Data Analysis - Part 1",section:"Flink Blog",content:`The latest release of Apache Zeppelin comes with a redes [...]
The Flink Interpreter in Zeppelin 0.9 # The Flink interpreter can be accessed and configured from Zeppelin’s interpreter settings page. The interpreter has been refactored so that Flink users can now take advantage of Zeppelin to write Flink applications in three languages, namely Scala, Python (PyFlink) and SQL (for both batch & streaming executions). Zeppelin 0.9 now comes with the Flink interpreter group, consisting of the below five interpreters:
%flink - Provides a Scala environment %flink.pyflink - Provides a python environment %flink.ipyflink - Provides an ipython environment %flink.ssql - Provides a stream sql environment %flink.bsql - Provides a batch sql environment Not only has the interpreter been extended to support writing Flink applications in three languages, but it has also extended the available execution modes for Flink that now include:
Running Flink in Local Mode Running Flink in Remote Mode Running Flink in Yarn Mode You can find more information about how to get started with Zeppelin and all the execution modes for Flink applications in Zeppelin notebooks in this post.
Flink on Zeppelin for Stream processing # Performing stream processing jobs with Apache Flink on Zeppelin allows you to run most major streaming cases, such as streaming ETL and real time data analytics, with the use of Flink SQL and specific UDFs. Below we showcase how you can execute streaming ETL using Flink on Zeppelin:
You can use Flink SQL to perform streaming ETL by following the steps below (for the full tutorial, please refer to the Flink Tutorial/Streaming ETL tutorial of the Zeppelin distribution):
Step 1. Create source table to represent the source data. Step 2. Create a sink table to represent the processed data. Step 3. After creating the source and sink table, we can insert them to our statement to trigger the stream processing job as the following: Step 4. After initiating the streaming job, you can use another SQL statement to query the sink table to verify the results of your job. Here you can see the top 10 records which will be refreshed every 3 seconds. Summary # In this [...]
-References # Apache Zeppelin official website Flink on Zeppelin tutorials - Part 1 Flink on Zeppelin tutorials - Part 2 Flink on Zeppelin tutorials - Part 3 Flink on Zeppelin tutorials - Part 4 Flink on Zeppelin tutorial videos `}),e.add({id:191,href:"/2020/06/10/flink-community-update-june20/",title:"Flink Community Update - June'20",section:"Flink Blog",content:`And suddenly it’s June. The previous month has been calm on the surface, but quite hectic underneath — the final testing phas [...]
+References # Apache Zeppelin official website Flink on Zeppelin tutorials - Part 1 Flink on Zeppelin tutorials - Part 2 Flink on Zeppelin tutorials - Part 3 Flink on Zeppelin tutorials - Part 4 Flink on Zeppelin tutorial videos `}),e.add({id:192,href:"/2020/06/10/flink-community-update-june20/",title:"Flink Community Update - June'20",section:"Flink Blog",content:`And suddenly it’s June. The previous month has been calm on the surface, but quite hectic underneath — the final testing phas [...]
To top it off, a piece of good news: Flink Forward is back on October 19-22 as a free virtual event!
The Past Month in Flink # Flink Stateful Functions 2.1 Release # It might seem like Stateful Functions 2.0 was announced only a handful of weeks ago (and it was!), but the Flink community has just released Stateful Functions 2.1! This release introduces two new features: state expiration for any kind of persisted state and support for UNIX Domain Sockets (UDS) to improve the performance of inter-container communication in co-located deployments; as well as other important changes that im [...]
As the community around StateFun grows, the release cycle will follow this pattern of smaller and more frequent releases to incorporate user feedback and allow for faster iteration. If you’d like to get involved, we’re always looking for new contributors — especially around SDKs for other languages (e.g. Go, Rust, Javascript).
@@ -3653,7 +3675,7 @@ Got a Flink story to share? Maybe your recent adventures with Stateful Functions
Google Season of Docs 2020 # In the last update, we announced that Flink was applying to Google Season of Docs (GSoD) again this year. The good news: we’ve made it into the shortlist of accepted projects! This represents an invaluable opportunity for the Flink community to collaborate with technical writers to improve the Table API & SQL documentation. We’re honored to have seen a great number of people reach out over the last couple of weeks, and look forward to receiving applicatio [...]
If you’re interested in learning more about our project idea or want to get involved in GSoD as a technical writer, check out the announcement blogpost and submit your application. The deadline for GSoD applications is July 9th, 18:00 UTC.
If you’d like to keep a closer eye on what’s happening in the community, subscribe to the Flink @community mailing list to get fine-grained weekly updates, upcoming event announcements and more.
-`}),e.add({id:192,href:"/2020/06/09/stateful-functions-2.1.0-release-announcement/",title:"Stateful Functions 2.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is happy to announce the release of Stateful Functions (StateFun) 2.1.0! This release introduces new features around state expiration and performance improvements for co-located deployments, as well as other important changes that improve the stability and testability of the project. As the commu [...]
+`}),e.add({id:193,href:"/2020/06/09/stateful-functions-2.1.0-release-announcement/",title:"Stateful Functions 2.1.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is happy to announce the release of Stateful Functions (StateFun) 2.1.0! This release introduces new features around state expiration and performance improvements for co-located deployments, as well as other important changes that improve the stability and testability of the project. As the commu [...]
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Python SDK distribution is available on PyPI. For more details, check the complete release changelog and the updated documentation. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA!
New Features and Improvements # Support for State Time-To-Live (TTL) # Being able to define state expiration and a state cleanup strategy is a useful feature for stateful applications — for example, to keep state size from growing indefinitely or to work with sensitive data. In previous StateFun versions, users could implement this behavior manually using delayed messages as state expiration callbacks. For StateFun 2.1, the community has worked on enabling users to configure any persiste [...]
Persisted state can be configured to expire after the last write operation (AFTER_WRITE) or after the last read or write operation (AFTER_READ_AND_WRITE). For the Java SDK, users can configure State TTL in the definition of their persisted fields:
@@ -3668,13 +3690,13 @@ Release Notes # Please review the release notes for a detailed list of changes a
List of Contributors # The Apache Flink community would like to thank all contributors that have made this release possible:
abc863377, Authuir, Chesnay Schepler, Congxian Qiu, David Anderson, Dian Fu, Francesco Guardiani, Igal Shilman, Marta Paes Moreira, Patrick Wiener, Rafi Aroch, Seth Wiesman, Stephan Ewen, Tzu-Li (Gordon) Tai
If you’d like to get involved, we’re always looking for new contributors — especially around SDKs for other languages like Go, Rust or Javascript.
-`}),e.add({id:193,href:"/2020/05/12/apache-flink-1.10.1-released/",title:"Apache Flink 1.10.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.10 series.
+`}),e.add({id:194,href:"/2020/05/12/apache-flink-1.10.1-released/",title:"Apache Flink 1.10.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.10 series.
This release includes 158 fixes and minor improvements for Flink 1.10.0. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.10.1.
Note FLINK-16684 changed the builders of the StreamingFileSink to make them compilable in Scala. This change is source compatible but binary incompatible. If using the StreamingFileSink, please recompile your user code against 1.10.1 before upgrading. Note FLINK-16683 Flink no longer supports starting clusters with .bat scripts. Users should instead use environments like WSL or Cygwin and work with the .sh scripts. Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.10.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.10.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
List of resolved issues:
-Sub-task [FLINK-14126] - Elasticsearch Xpack Machine Learning doesn't support ARM [FLINK-15143] - Create document for FLIP-49 TM memory model and configuration guide [FLINK-15561] - Unify Kerberos credentials checking [FLINK-15790] - Make FlinkKubeClient and its implementations asynchronous [FLINK-15817] - Kubernetes Resource leak while deployment exception happens [FLINK-16049] - Remove outdated "Best Practices" section from Application Development Section [FLINK-16131] - [...]
+Sub-task [FLINK-14126] - Elasticsearch Xpack Machine Learning doesn't support ARM [FLINK-15143] - Create document for FLIP-49 TM memory model and configuration guide [FLINK-15561] - Unify Kerberos credentials checking [FLINK-15790] - Make FlinkKubeClient and its implementations asynchronous [FLINK-15817] - Kubernetes Resource leak while deployment exception happens [FLINK-16049] - Remove outdated "Best Practices" section from Application Development Section [FLINK-16131] - [...]
Last month also marked the debut of Flink Forward Virtual Conference 2020: what did you think? If you missed it altogether or just want to recap some of the sessions, the videos and slides are now available!
The Past Month in Flink # Flink Stateful Functions 2.0 is out! # In the beginning of April, the Flink community announced the release of Stateful Functions 2.0 — the first as part of the Apache Flink project. From this release, you can use Flink as the base of a (stateful) serverless platform with out-of-the-box consistent and scalable state, and efficient messaging between functions. You can even run your stateful functions on platforms like AWS Lambda, as Gordon (@tzulitai) demonstrate [...]
It’s been encouraging to see so many questions about Stateful Functions popping up in the mailing list and Stack Overflow! If you’d like to get involved, we’re always looking for new contributors — especially around SDKs for other languages like Go, Javascript and Rust.
@@ -3704,7 +3726,7 @@ Some areas of the documentation have insufficient detail or are not accessible f
If you’re interested in learning more about this project idea or want to get involved in GSoD as a technical writer, check out the announcement blogpost.
…and something to read! # Events across the globe have pretty much come to a halt, so we’ll leave you with some interesting resources to read and explore instead. In addition to this written content, you can also recap the sessions from the Flink Forward Virtual Conference!
Type Links Blogposts Event-Driven Supply Chain for Crisis with FlinkSQL and Zeppelin Memory Management Improvements with Apache Flink 1.10 Flink Serialization Tuning Vol. 1: Choosing your Serializer — if you can Tutorials PyFlink: Introducing Python Support for UDFs in Flink's Table API Flink Stateful Functions: where to start? Flink Packages Flink Packages is a website where you can explore (and contribute to) the Flink ecosystem of connectors, extensions, APIs, tools and integrations. [...]
-`}),e.add({id:195,href:"/2020/05/04/applying-to-google-season-of-docs-2020/",title:"Applying to Google Season of Docs 2020",section:"Flink Blog",content:`The Flink community is thrilled to share that the project is applying again to Google Season of Docs (GSoD) this year! If you’re unfamiliar with the program, GSoD is a great initiative organized by Google Open Source to pair technical writers with mentors to work on documentation for open source projects. The first edition supported ove [...]
+`}),e.add({id:196,href:"/2020/05/04/applying-to-google-season-of-docs-2020/",title:"Applying to Google Season of Docs 2020",section:"Flink Blog",content:`The Flink community is thrilled to share that the project is applying again to Google Season of Docs (GSoD) this year! If you’re unfamiliar with the program, GSoD is a great initiative organized by Google Open Source to pair technical writers with mentors to work on documentation for open source projects. The first edition supported ove [...]
Why Apply? # As one of the most active projects in the ASF, Flink is experiencing a boom in contributions and some major changes to its codebase. And, while the project has also seen a significant increase in activity when it comes to writing, reviewing and translating documentation, it’s hard to keep up with the pace.
Since last year, the community has been working on FLIP-42 to improve the documentation experience and bring a more accessible information architecture to Flink. After some discussion, we agreed that GSoD would be a valuable opportunity to double down on this effort and collaborate with someone who is passionate about technical writing…and Flink!
How can you contribute? # If working shoulder to shoulder with the Flink community on documentation sounds exciting, we’d love to hear from you! You can read more about our idea for this year’s project below and, depending on whether it is accepted, apply as a technical writer. If you have any questions or just want to know more about the project idea, ping us at dev@flink.apache.org!
@@ -3721,13 +3743,13 @@ Table API & SQL Documentation: //nightlies.apache.org/flink/flink-docs-relea
How to Contribute Documentation: https://flink.apache.org/contributing/contribute-documentation.html
Documentation Style Guide: https://flink.apache.org/contributing/docs-style.html
We look forward to receiving feedback on this GSoD application and also to continue improving the documentation experience for Flink users. Join us!
-`}),e.add({id:196,href:"/2020/04/24/apache-flink-1.9.3-released/",title:"Apache Flink 1.9.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.9 series.
+`}),e.add({id:197,href:"/2020/04/24/apache-flink-1.9.3-released/",title:"Apache Flink 1.9.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.9 series.
This release includes 38 fixes and minor improvements for Flink 1.9.2. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.9.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-15143] - Create document for FLIP-49 TM memory model and configuration guide [FLINK-16389] - Bump Kafka 0.10 to 0.10.2.2 Bug [FLINK-11193] - Rocksdb timer service factory configuration option is not settable per job [FLINK-14316] - Stuck in "Job leader ... lost leadership" error [FLINK-14560] - The value of taskmanager.memory.size in flink-conf.yaml is set to zero will cause taskmanager not to work [FLINK-15010] - Temp directories flink-netty-shuffle-* are not c [...]
+Sub-task [FLINK-15143] - Create document for FLIP-49 TM memory model and configuration guide [FLINK-16389] - Bump Kafka 0.10 to 0.10.2.2 Bug [FLINK-11193] - Rocksdb timer service factory configuration option is not settable per job [FLINK-14316] - Stuck in "Job leader ... lost leadership" error [FLINK-14560] - The value of taskmanager.memory.size in flink-conf.yaml is set to zero will cause taskmanager not to work [FLINK-15010] - Temp directories flink-netty-shuffle-* are not c [...]
Introduction to Flink’s memory model # Having a clear understanding of Apache Flink’s memory model allows you to manage resources for the various workloads more efficiently. The following diagram illustrates the main memory components in Flink:
Flink: Total Process Memory The Task Manager process is a JVM process. On a high level, its memory consists of the JVM Heap and Off-Heap memory. These types of memory are consumed by Flink directly or by JVM for its specific purposes (i.e. metaspace etc.). There are two major memory consumers within Flink: the user code of job operator tasks and the framework itself consuming memory for internal data structures, network buffers, etc.
Please note that the user code has direct access to all memory types: JVM Heap, Direct and Native memory. Therefore, Flink cannot really control its allocation and usage. There are however two types of Off-Heap memory which are consumed by tasks and controlled explicitly by Flink:
@@ -3748,7 +3770,7 @@ User code or its dependencies consume significant off-heap memory. Tuning the Ta
JVM metaspace requires additional memory. If you encounter OutOfMemoryError: Metaspace, Flink provides an option to increase its limit and the JVM will ensure that it is not exceeded.
JVM requires more internal memory. There is no direct control over certain types of JVM process allocations but Flink provides JVM Overhead options. The options allow declaring an additional amount of memory, anticipated for those allocations and not covered by other options.
Conclusion # The latest Flink release (Flink 1.10) introduces some significant changes to Flink’s memory configuration, making it possible to manage your application memory and debug Flink significantly better than before. Future developments in this area also include adopting a similar memory model for the job manager process in FLIP-116, so stay tuned for more additions and features in upcoming releases. If you have any suggestions or questions for the community, we encourage you to si [...]
-`}),e.add({id:198,href:"/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/",title:"Flink Serialization Tuning Vol. 1: Choosing your Serializer — if you can",section:"Flink Blog",content:`Almost every Flink job has to exchange data between its operators and since these records may not only be sent to another instance in the same JVM but instead to a separate process, records need to be serialized to bytes first. Similarly, Flink’s off-heap state-backend is [...]
+`}),e.add({id:199,href:"/2020/04/15/flink-serialization-tuning-vol.-1-choosing-your-serializer-if-you-can/",title:"Flink Serialization Tuning Vol. 1: Choosing your Serializer — if you can",section:"Flink Blog",content:`Almost every Flink job has to exchange data between its operators and since these records may not only be sent to another instance in the same JVM but instead to a separate process, records need to be serialized to bytes first. Similarly, Flink’s off-heap state-backend is [...]
Since serialization is so crucial to your Flink job, we would like to highlight Flink’s serialization stack in a series of blog posts starting with looking at the different ways Flink can serialize your data types.
Recap: Flink Serialization # Flink handles data types and serialization with its own type descriptors, generic type extraction, and type serialization framework. We recommend reading through the documentation first in order to be able to follow the arguments we present below. In essence, Flink tries to infer information about your job’s data types for wire and state serialization, and to be able to use grouping, joining, and aggregation operations by referring to individual field names, [...]
Choice of Serializer # Apache Flink’s out-of-the-box serialization can be roughly divided into the following groups:
@@ -3794,7 +3816,7 @@ If you cannot use POJOs, try to define your data type with one of the serializat
Note As with all benchmarks, please bear in mind that these numbers only give a hint on Flink’s serializer performance in a specific scenario. They may be different with your data types but the rough classification is probably the same. If you want to be sure, please verify the results with your data types. You should be able to copy from \`SerializationFrameworkAllBenchmarks.java\` to set up your own micro-benchmarks or integrate different serialization benchmarks into your own tooling. [...]
The fastest de/serialization is achieved with Flink’s internal tuple and row serializers which can access these types’ fields directly without going via reflection. With roughly 30% decreased throughput as compared to tuples, Protobuf and POJO types do not perform too badly on their own and are more flexible and maintainable. Avro (specific and generic) records as well as Thrift data types further reduce performance by 20% and 30%, respectively. You definitely want to avoid Kryo as [...]
The next article in this series will use this finding as a starting point to look into a few common pitfalls and obstacles of avoiding Kryo, how to get the most out of the PojoSerializer, and a few more tuning techniques with respect to serialization. Stay tuned for more.
-`}),e.add({id:199,href:"/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/",title:"PyFlink: Introducing Python Support for UDFs in Flink's Table API",section:"Flink Blog",content:`Flink 1.9 introduced the Python Table API, allowing developers and data engineers to write Python Table API jobs for Table transformations and analysis, such as Python ETL or aggregate jobs. However, Python users faced some limitations when it came to support for Python UDFs in Flink 1 [...]
+`}),e.add({id:200,href:"/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/",title:"PyFlink: Introducing Python Support for UDFs in Flink's Table API",section:"Flink Blog",content:`Flink 1.9 introduced the Python Table API, allowing developers and data engineers to write Python Table API jobs for Table transformations and analysis, such as Python ETL or aggregate jobs. However, Python users faced some limitations when it came to support for Python UDFs in Flink 1 [...]
In Flink 1.10, the community further extended the support for Python by adding Python UDFs in PyFlink. Additionally, both the Python UDF environment and dependency management are now supported, allowing users to import third-party libraries in the UDFs, leveraging Python’s rich set of third-party libraries.
Python Support for UDFs in Flink 1.10 # Before diving into how you can define and use Python UDFs, we explain the motivation and background behind how UDFs work in PyFlink and provide some additional context about the implementation of our approach. Below we give a brief introduction on the PyFlink architecture from job submission, all the way to executing the Python UDF.
The PyFlink architecture mainly includes two parts — local and cluster — as shown in the architecture visual below. The local phase is the compilation of the job, and the cluster is the execution of the job.
@@ -3816,7 +3838,7 @@ Suppose you want to use the mpmath to perform the sum of the example above. The
@udf(input_types=[DataTypes.BIGINT(), DataTypes.BIGINT()], result_type=DataTypes.BIGINT()) def add(i, j): from mpmath import fadd # add third-party dependency return int(fadd(i, j)) To make it available on the worker node that does not contain the dependency, you can specify the dependencies with the following commands and API:
$ cd /tmp $ echo mpmath==1.1.0 > requirements.txt $ pip download -d cached_dir -r requirements.txt --no-binary :all: t_env.set_python_requirements("/tmp/requirements.txt", "/tmp/cached_dir") A requirements.txt file that defines the third-party dependencies is used. If the dependencies cannot be accessed in the cluster, then you can specify a directory containing the installation packages of these dependencies by using the parameter “requirements_cached_dir” [...]
Conclusion & Upcoming work # In this blog post, we introduced the architecture of Python UDFs in PyFlink and provided some examples on how to define, register and invoke UDFs. Flink 1.10 brings Python support in the framework to new levels, allowing Python users to write even more magic with their preferred language. The community is actively working towards continuously improving the functionality and performance of PyFlink. Future work in upcoming releases will introduce support fo [...]
-`}),e.add({id:200,href:"/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/",title:"Stateful Functions 2.0 - An Event-driven Database on Apache Flink",section:"Flink Blog",content:`Today, we are announcing the release of Stateful Functions (StateFun) 2.0 — the first release of Stateful Functions as part of the Apache Flink project. This release marks a big milestone: Stateful Functions 2.0 is not only an API update, but the first version of an event-driven databa [...]
+`}),e.add({id:201,href:"/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/",title:"Stateful Functions 2.0 - An Event-driven Database on Apache Flink",section:"Flink Blog",content:`Today, we are announcing the release of Stateful Functions (StateFun) 2.0 — the first release of Stateful Functions as part of the Apache Flink project. This release marks a big milestone: Stateful Functions 2.0 is not only an API update, but the first version of an event-driven databa [...]
Stateful Functions 2.0 makes it possible to combine StateFun’s powerful approach to state and composition with the elasticity, rapid scaling/scale-to-zero and rolling upgrade capabilities of FaaS implementations like AWS Lambda and modern resource orchestration frameworks like Kubernetes.
With these features, Stateful Functions 2.0 addresses two of the most cited shortcomings of many FaaS setups today: consistent state and efficient messaging between functions.
An Event-driven Database # When Stateful Functions joined Apache Flink at the beginning of this year, the project had started as a library on top of Flink to build general-purpose event-driven applications. Users would implement functions that receive and send messages, and maintain state in persistent variables. Flink provided the runtime with efficient exactly-once state and messaging. Stateful Functions 1.0 was a FaaS-inspired mix between stream processing and actor programming — on s [...]
@@ -3849,7 +3871,7 @@ The project is still in a comparatively early stage, so if you want to get invol
To follow the project and learn more, please check out these resources:
Code: https://github.com/apache/flink-statefun Docs: //nightlies.apache.org/flink/flink-statefun-docs-release-2.0/ Apache Flink project site: https://flink.apache.org/ Apache Flink on Twitter: @ApacheFlink Stateful Functions Webpage: https://statefun.io Stateful Functions on Twitter: @StateFun_IO Thank you! # The Apache Flink community would like to thank all contributors that have made this release possible:
David Anderson, Dian Fu, Igal Shilman, Seth Wiesman, Stephan Ewen, Tzu-Li (Gordon) Tai, hequn8128
-`}),e.add({id:201,href:"/2020/03/30/flink-community-update-april20/",title:"Flink Community Update - April'20",section:"Flink Blog",content:`While things slow down around us, the Apache Flink community is privileged to remain as active as ever. This blogpost combs through the past few months to give you an update on the state of things in Flink — from core releases to Stateful Functions; from some good old community stats to a new development blog.
+`}),e.add({id:202,href:"/2020/03/30/flink-community-update-april20/",title:"Flink Community Update - April'20",section:"Flink Blog",content:`While things slow down around us, the Apache Flink community is privileged to remain as active as ever. This blogpost combs through the past few months to give you an update on the state of things in Flink — from core releases to Stateful Functions; from some good old community stats to a new development blog.
And since now it’s more important than ever to keep up the spirits, we’d like to invite you to join the Flink Forward Virtual Conference, on April 22-24 (see Upcoming Events). Hope to see you there!
The Year (so far) in Flink # Flink 1.10 Release # To kick off the new year, the Flink community released Flink 1.10 with the record contribution of over 200 engineers. This release introduced significant improvements to the overall performance and stability of Flink jobs, a preview of native Kubernetes integration and advances in Python support (PyFlink). Flink 1.10 also marked the completion of the Blink integration, hardening streaming SQL and bringing mature batch processing to Flink [...]
The community is now discussing the release of Flink 1.10.1, covering some outstanding bugs from Flink 1.10.
@@ -3870,7 +3892,7 @@ Flink “Engine Room” # The community has recently launched the “Eng
Upcoming Events # Flink Forward Virtual Conference # The organization of Flink Forward had to make the hard decision of cancelling this year’s event in San Francisco. But all is not lost! Flink Forward SF will be held online on April 22-24 and you can register (for free) here. Join the community for interactive talks and Q&A sessions with core Flink contributors and companies like Splunk, Lyft, Netflix or Google.
Others # Events across the globe have come to a halt due to the growing concerns around COVID-19, so this time we’ll leave you with some interesting content to read instead. In addition to this written content, you can also recap last year’s sessions from Flink Forward Berlin and Flink Forward China!
Type Links Blogposts Replayable Process Functions: Time, Ordering, and Timers @Bird Application Log Intelligence & Performance Insights at Salesforce Using Flink @Salesforce State Unlocked: Interacting with State in Apache Flink Advanced Flink Application Patterns Vol.1: Case Study of a Fraud Detection System Advanced Flink Application Patterns Vol.2: Dynamic Updates of Application Logic Apache Beam: How Beam Runs on Top of Flink Flink as Unified Engine for Modern Data Warehousing: Produ [...]
-`}),e.add({id:202,href:"/2020/03/27/flink-as-unified-engine-for-modern-data-warehousing-production-ready-hive-integration/",title:"Flink as Unified Engine for Modern Data Warehousing: Production-Ready Hive Integration",section:"Flink Blog",content:`In this blog post, you will learn our motivation behind the Flink-Hive integration, and how Flink 1.10 can help modernize your data warehouse.
+`}),e.add({id:203,href:"/2020/03/27/flink-as-unified-engine-for-modern-data-warehousing-production-ready-hive-integration/",title:"Flink as Unified Engine for Modern Data Warehousing: Production-Ready Hive Integration",section:"Flink Blog",content:`In this blog post, you will learn our motivation behind the Flink-Hive integration, and how Flink 1.10 can help modernize your data warehouse.
Introduction # What are some of the latest requirements for your data warehouse and data infrastructure in 2020?
We’ve came up with some for you.
Firstly, today’s business is shifting to a more real-time fashion, and thus demands abilities to process online streaming data with low latency for near-real-time or even real-time analytics. People become less and less tolerant of delays between when data is generated and when it arrives at their hands, ready to use. Hours or even days of delay is not acceptable anymore. Users are expecting minutes, or even seconds, of end-to-end latency for data in their warehouse, to get quicker-than- [...]
@@ -3901,7 +3923,7 @@ Hive streaming sink so that Flink can stream data into Hive tables, bringing a r
Summary # Data warehousing is shifting to a more real-time fashion, and Apache Flink can make a difference for your organization in this space.
Flink 1.10 brings production-ready Hive integration and empowers users to achieve more in both metadata management and unified/batch data processing.
We encourage all our users to get their hands on Flink 1.10. You are very welcome to join the community in development, discussions, and all other kinds of collaborations in this topic.
-`}),e.add({id:203,href:"/2020/03/24/advanced-flink-application-patterns-vol.2-dynamic-updates-of-application-logic/",title:"Advanced Flink Application Patterns Vol.2: Dynamic Updates of Application Logic",section:"Flink Blog",content:`In the first article of the series, we gave a high-level description of the objectives and required functionality of a Fraud Detection engine. We also described how to make data partitioning in Apache Flink customizable based on modifiable rules instead of [...]
+`}),e.add({id:204,href:"/2020/03/24/advanced-flink-application-patterns-vol.2-dynamic-updates-of-application-logic/",title:"Advanced Flink Application Patterns Vol.2: Dynamic Updates of Application Logic",section:"Flink Blog",content:`In the first article of the series, we gave a high-level description of the objectives and required functionality of a Fraud Detection engine. We also described how to make data partitioning in Apache Flink customizable based on modifiable rules instead of [...]
We intentionally omitted details of how the applied rules are initialized and what possibilities exist for updating them at runtime. In this post, we will address exactly these details. You will learn how the approach to data partitioning described in Part 1 can be applied in combination with a dynamic configuration. These two patterns, when used together, can eliminate the need to recompile the code and redeploy your Flink job for a wide range of modifications of the business logic.
Rules Broadcasting # Let’s first have a look at the previously-defined data-processing pipeline:
DataStream<Alert> alerts = transactions .process(new DynamicKeyFunction()) .keyBy((keyed) -> keyed.getKey()); .process(new DynamicAlertFunction()) DynamicKeyFunction provides dynamic data partitioning while DynamicAlertFunction is responsible for executing the main logic of processing transactions and sending alert messages according to defined rules.
@@ -3922,7 +3944,7 @@ public abstract class BroadcastProcessFunction<IN1, IN2, OUT> { public abs
public class DynamicKeyFunction extends BroadcastProcessFunction<Transaction, Rule, Keyed<Transaction, String, Integer>> { @Override public void processBroadcastElement(Rule rule, Context ctx, Collector<Keyed<Transaction, String, Integer>> out) { BroadcastState<Integer, Rule> broadcastState = ctx.getBroadcastState(RULES_STATE_DESCRIPTOR); broadcastState.put(rule.getRuleId(), rule); } @Override public void processElement(Transaction event, ReadOnlyContext ctx [...]
DynamicAlertFunction follows the same logic with respect to storing the rules in the broadcast MapState. As described in Part 1, each message in the processElement input is intended to be processed by one specific rule and comes “pre-marked” with a corresponding ID by DynamicKeyFunction. All we need to do is retrieve the definition of the corresponding rule from BroadcastState by using the provided ID and process it according to the logic required by that rule. At this stage, [...]
Summary # In this blog post, we continued our investigation of the use case of a Fraud Detection System built with Apache Flink. We looked into different ways in which data can be distributed between parallel operator instances and, most importantly, examined broadcast state. We demonstrated how dynamic partitioning — a pattern described in the first part of the series — can be combined and enhanced by the functionality provided by the broadcast state pattern. The ability to send dynamic [...]
-`}),e.add({id:204,href:"/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink/",title:"Apache Beam: How Beam Runs on Top of Flink",section:"Flink Blog",content:`Note: This blog post is based on the talk “Beam on Flink: How Does It Actually Work?”.
+`}),e.add({id:205,href:"/2020/02/22/apache-beam-how-beam-runs-on-top-of-flink/",title:"Apache Beam: How Beam Runs on Top of Flink",section:"Flink Blog",content:`Note: This blog post is based on the talk “Beam on Flink: How Does It Actually Work?”.
Apache Flink and Apache Beam are open-source frameworks for parallel, distributed data processing at scale. Unlike Flink, Beam does not come with a full-blown execution engine of its own but plugs into other execution engines, such as Apache Flink, Apache Spark, or Google Cloud Dataflow. In this blog post we discuss the reasons to use Flink together with Beam for your batch and stream processing needs. We also take a closer look at how Beam works with Flink to provide an idea of the tech [...]
What is Apache Beam # Apache Beam is an open-source, unified model for defining batch and streaming data-parallel processing pipelines. It is unified in the sense that you use a single API, in contrast to using a separate API for batch and streaming like it is the case in Flink. Beam was originally developed by Google which released it in 2014 as the Cloud Dataflow SDK. In 2016, it was donated to the Apache Software Foundation with the name of Beam. It has been developed by the open-sour [...]
The execution model, as well as the API of Apache Beam, are similar to Flink’s. Both frameworks are inspired by the MapReduce, MillWheel, and Dataflow papers. Like Flink, Beam is designed for parallel, distributed data processing. Both have similar transformations, support for windowing, event/processing time, watermarks, timers, triggers, and much more. However, Beam not being a full runtime focuses on providing the framework for building portable, multi-language batch and stream [...]
@@ -3952,7 +3974,7 @@ Environments can be present for many languages. This opens up an entirely new ty
Conclusion # Using Apache Beam with Apache Flink combines (a.) the power of Flink with (b.) the flexibility of Beam. All it takes to run Beam is a Flink cluster, which you may already have. Apache Beam’s fully-fledged Python API is probably the most compelling argument for using Beam with Flink, but the unified API which allows to “write-once” and “execute-anywhere” is also very appealing to Beam users. On top of this, features like side inputs and a rich co [...]
With the introduction of schemas, a new format for handling type information, Beam is heading in a similar direction as Flink with its type system which is essential for the Table API or SQL. Speaking of, the next Flink release will include a Python version of the Table API which is based on the language portability of Beam. Looking ahead, the Beam community plans to extend the support for interactive programs like notebooks. TFX, which is built with Beam, is a very powerful way to solve [...]
For many years, Beam and Flink have inspired and learned from each other. With the Python support being based on Beam in Flink, they only seem to come closer to each other. That’s all the better for the community, and also users have more options and functionality to choose from.
-`}),e.add({id:205,href:"/2020/02/20/no-java-required-configuring-sources-and-sinks-in-sql/",title:"No Java Required: Configuring Sources and Sinks in SQL",section:"Flink Blog",content:` Introduction # The recent Apache Flink 1.10 release includes many exciting features. In particular, it marks the end of the community’s year-long effort to merge in the Blink SQL contribution from Alibaba. The reason the community chose to spend so much time on the contribution is that SQL works. It [...]
+`}),e.add({id:206,href:"/2020/02/20/no-java-required-configuring-sources-and-sinks-in-sql/",title:"No Java Required: Configuring Sources and Sinks in SQL",section:"Flink Blog",content:` Introduction # The recent Apache Flink 1.10 release includes many exciting features. In particular, it marks the end of the community’s year-long effort to merge in the Blink SQL contribution from Alibaba. The reason the community chose to spend so much time on the contribution is that SQL works. It [...]
A lot of work focused on improving runtime performance and progressively extending its coverage of the SQL standard. Flink now supports the full TPC-DS query set for batch queries, reflecting the readiness of its SQL engine to address the needs of modern data warehouse-like workloads. Its streaming SQL supports an almost equal set of features - those that are well defined on a streaming runtime - including complex joins and MATCH_RECOGNIZE.
As important as this work is, the community also strives to make these features generally accessible to the broadest audience possible. That is why the Flink community is excited in 1.10 to offer production-ready DDL syntax (e.g., CREATE TABLE, DROP TABLE) and a refactored catalog interface.
Accessing Your Data Where It Lives # Flink does not store data at rest; it is a compute engine and requires other systems to consume input from and write its output. Those that have used Flink’s DataStream API in the past will be familiar with connectors that allow for interacting with external systems. Flink has a vast connector ecosystem that includes all major message queues, filesystems, and databases.
@@ -3965,7 +3987,7 @@ To solve this problem, Flink 1.10 also ships with a revamped catalog system for
The most notable catalog that Flink integrates with today is Hive Metastore. The Hive catalog allows Flink to fully interoperate with Hive and serve as a more efficient query engine. Flink supports reading and writing Hive tables, using Hive UDFs, and even leveraging Hive’s metastore catalog to persist Flink specific metadata.
Looking Ahead # Flink SQL has made enormous strides to democratize stream processing, and 1.10 marks a significant milestone in that development. However, we are not ones to rest on our laurels and, the community is committed to raising the bar on standards while lowering the barriers to entry. The community is looking to add more catalogs, such as JDBC and Apache Pulsar. We encourage you to sign up for the mailing list and stay on top of the announcements and new features in upcoming releases.
My colleague Timo, whose worked on Flink SQL from the beginning, has the entire SQL standard printed on his desk and references it before any changes are merged. It’s enormous. ↩︎
-`}),e.add({id:206,href:"/2020/02/11/apache-flink-1.10.0-release-announcement/",title:"Apache Flink 1.10.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to hit the double digits and announce the release of Flink 1.10.0! As a result of the biggest community effort to date, with over 1.2k issues implemented and more than 200 contributors, this release introduces significant improvements to the overall performance and stability of Flink jobs, a pre [...]
+`}),e.add({id:207,href:"/2020/02/11/apache-flink-1.10.0-release-announcement/",title:"Apache Flink 1.10.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is excited to hit the double digits and announce the release of Flink 1.10.0! As a result of the biggest community effort to date, with over 1.2k issues implemented and more than 200 contributors, this release introduces significant improvements to the overall performance and stability of Flink jobs, a pre [...]
Flink 1.10 also marks the completion of the Blink integration, hardening streaming SQL and bringing mature batch processing to Flink with production-ready Hive integration and TPC-DS coverage. This blog post describes all major new features and improvements, important changes to be aware of and what to expect moving forward.
The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website. For more details, check the complete release changelog and the updated documentation. We encourage you to download the release and share your feedback with the community through the Flink mailing lists or JIRA.
New Features and Improvements # Improved Memory Management and Configuration # The current TaskExecutor memory configuration in Flink has some shortcomings that make it hard to reason about or optimize resource utilization, such as:
@@ -4017,7 +4039,7 @@ Flink 1.9 shipped with a refactored Web UI, with the legacy one being kept aroun
Release Notes # Please review the release notes carefully for a detailed list of changes and new features if you plan to upgrade your setup to Flink 1.10. This version is API-compatible with previous 1.x releases for APIs annotated with the @Public annotation.
List of Contributors # The Apache Flink community would like to thank all contributors that have made this release possible:
Achyuth Samudrala, Aitozi, Alberto Romero, Alec.Ch, Aleksey Pak, Alexander Fedulov, Alice Yan, Aljoscha Krettek, Aloys, Andrey Zagrebin, Arvid Heise, Benchao Li, Benoit Hanotte, Benoît Paris, Bhagavan Das, Biao Liu, Chesnay Schepler, Congxian Qiu, Cyrille Chépélov, César Soto Valero, David Anderson, David Hrbacek, David Moravek, Dawid Wysakowicz, Dezhi Cai, Dian Fu, Dyana Rose, Eamon Taaffe, Fabian Hueske, Fawad Halim, Fokko Driesprong, Frey Gao, Gabor Gevay, Gao Yun, Gary Yao, GatsbyNew [...]
-`}),e.add({id:207,href:"/2020/02/03/a-guide-for-unit-testing-in-apache-flink/",title:"A Guide for Unit Testing in Apache Flink",section:"Flink Blog",content:`Writing unit tests is one of the essential tasks of designing a production-grade application. Without tests, a single change in code can result in cascades of failure in production. Thus unit tests should be written for all types of applications, be it a simple job cleaning data and training a model or a complex multi-tenant, real-t [...]
+`}),e.add({id:208,href:"/2020/02/03/a-guide-for-unit-testing-in-apache-flink/",title:"A Guide for Unit Testing in Apache Flink",section:"Flink Blog",content:`Writing unit tests is one of the essential tasks of designing a production-grade application. Without tests, a single change in code can result in cascades of failure in production. Thus unit tests should be written for all types of applications, be it a simple job cleaning data and training a model or a complex multi-tenant, real-t [...]
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-test-utils_\${scala.binary.version}</artifactId> <version>\${flink.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-runtime_\${scala.binary.version}</artifactId> <version>\${flink.version}</version> <scope>test</scope> <classifier>tes [...]
Stateless Operators Stateful Operators Timed Process Operators Stateless Operators # Writing unit tests for a stateless operator is a breeze. You need to follow the basic norm of writing a test case, i.e., create an instance of the function class and test the appropriate methods. Let’s take an example of a simple Map operator.
public class MyStatelessMap implements MapFunction<String, String> { @Override public String map(String in) throws Exception { String out = "hello " + in; return out; } } The test case for the above operator should look like
@@ -4035,13 +4057,13 @@ public class MyProcessFunction extends KeyedProcessFunction<String, String, S
Let’s take a look at the test case
@Test public void testProcessElement() throws Exception{ MyProcessFunction myProcessFunction = new MyProcessFunction(); OneInputStreamOperatorTestHarness<String, String> testHarness = new KeyedOneInputStreamOperatorTestHarness<>( new KeyedProcessOperator<>(myProcessFunction), x -> "1", Types.STRING); // Function time is initialized to 0 testHarness.open(); testHarness.processElement("world", 10); Assert.assertEquals( Lists.newArrayList(new StreamRecor [...]
Summary # In the previous sections we showcased how unit testing in Apache Flink works for stateless, stateful and times-aware-operators. We hope you found the steps easy to follow and execute while developing your Flink applications. If you have any questions or feedback you can reach out to me here or contact the community on the Apache Flink user mailing list.
-`}),e.add({id:208,href:"/2020/01/30/apache-flink-1.9.2-released/",title:"Apache Flink 1.9.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.9 series.
+`}),e.add({id:209,href:"/2020/01/30/apache-flink-1.9.2-released/",title:"Apache Flink 1.9.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.9 series.
This release includes 117 fixes and minor improvements for Flink 1.9.1. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.9.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.9.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.9.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-12122] - Spread out tasks evenly across all available registered TaskManagers [FLINK-13360] - Add documentation for HBase connector for Table API & SQL [FLINK-13361] - Add documentation for JDBC connector for Table API & SQL [FLINK-13723] - Use liquid-c for faster doc generation [FLINK-13724] - Remove unnecessary whitespace from the docs' sidenav [FLINK-13725] - Use sassc for faster doc generation [FLINK-13726] - Build docs with jekyll 4.0.0.pre.beta1 [FLINK-1 [...]
+Sub-task [FLINK-12122] - Spread out tasks evenly across all available registered TaskManagers [FLINK-13360] - Add documentation for HBase connector for Table API & SQL [FLINK-13361] - Add documentation for JDBC connector for Table API & SQL [FLINK-13723] - Use liquid-c for faster doc generation [FLINK-13724] - Remove unnecessary whitespace from the docs' sidenav [FLINK-13725] - Use sassc for faster doc generation [FLINK-13726] - Build docs with jekyll 4.0.0.pre.beta1 [FLINK-1 [...]
In order to provide a state-of-the-art experience to Flink developers, the Apache Flink community makes significant efforts to provide the safety and future-proof guarantees organizations need while managing state in Flink. In particular, Flink developers should have sufficient means to access and modify their state, as well as making bootstrapping state with existing data from external systems a piece-of-cake. These efforts span multiple Flink major releases and consist of the following:
Evolvable state schema in Apache Flink Flexibility in swapping state backends, and The State processor API, an offline tool to read, write and modify state in Flink This post discusses the community’s efforts related to state management in Flink, provides some practical examples of how the different features and APIs can be utilized and covers some future ideas for new and improved ways of managing state in Apache Flink.
Stream processing: What is State? # To set the tone for the remaining of the post, let us first try to explain the very definition of state in stream processing. When it comes to stateful stream processing, state comprises of the information that an application or stream processing engine will remember across events and streams as more realtime (unbounded) and/or offline (bounded) data flow through the system. Most trivial applications are inherently stateful; even the example of a simpl [...]
@@ -4074,7 +4096,7 @@ Looking ahead: More ways to interact with State in Flink # There is a lot of dis
Beyond widening the scope of the State Processor API, the Flink community is discussing a few additional ways to improve the way developers interact with state in Flink. One of them is the proposal for a Unified Savepoint Format (FLIP-41) for all keyed state backends. Such improvement aims at introducing a unified binary format across all savepoints in all keyed state backends, something that drastically reduces the overhead of swapping the state backend in a Flink application. Such an i [...]
The community is also discussing the ability to have upgradability dry runs in upcoming Flink releases. Having such functionality in Flink allows developers to detect incompatible updates offline without the need of starting a new Flink job from scratch. For example, Flink users will be able to uncover topology or schema incompatibilities upon upgrading a Flink job, without having to load the state back to a running Flink job in the first place. Additionally, with upgradability dry runs [...]
With all the exciting new functionality added in Flink 1.9 as well as some solid ideas and discussions around bringing state in Flink to the next level, the community is committed to making state in Apache Flink a fundamental element of the framework, something that is ever-present across versions and upgrades of your application and a component that is a true first-class citizen in Apache Flink. We encourage you to sign up to the mailing list and stay on top of the announcements and new [...]
-`}),e.add({id:210,href:"/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/",title:"Advanced Flink Application Patterns Vol.1: Case Study of a Fraud Detection System",section:"Flink Blog",content:`In this series of blog posts you will learn about three powerful Flink patterns for building streaming applications:
+`}),e.add({id:211,href:"/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/",title:"Advanced Flink Application Patterns Vol.1: Case Study of a Fraud Detection System",section:"Flink Blog",content:`In this series of blog posts you will learn about three powerful Flink patterns for building streaming applications:
Dynamic updates of application logic Dynamic data partitioning (shuffle), controlled at runtime Low latency alerting based on custom windowing logic (without using the window API) These patterns expand the possibilities of what is achievable with statically defined data flows and provide the building blocks to fulfill complex business requirements.
Dynamic updates of application logic allow Flink jobs to change at runtime, without downtime from stopping and resubmitting the code.
Dynamic data partitioning provides the ability to change how events are distributed and grouped by Flink at runtime. Such functionality often becomes a natural requirement when building jobs with dynamically reconfigurable application logic.
@@ -4114,13 +4136,13 @@ Summary: # In this blog post, we have discussed the motivation behind supporting
To remain focused on describing the core mechanics of the pattern, we kept the complexity of the DSL and the underlying rules engine to a minimum. Going forward, it is easy to imagine adding extensions such as allowing more sophisticated rule definitions, including filtering of certain events, logical rules chaining, and other more advanced functionality.
In the second part of this series, we will describe how the rules make their way into the running Fraud Detection engine. Additionally, we will go over the implementation details of the main processing function of the pipeline - DynamicAlertFunction().
Figure 4: End-to-end pipeline In the next article, we will see how Flink’s broadcast streams can be utilized to help steer the processing within the Fraud Detection engine at runtime (Dynamic Application Updates pattern).
-`}),e.add({id:211,href:"/2019/12/11/apache-flink-1.8.3-released/",title:"Apache Flink 1.8.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.8 series.
+`}),e.add({id:212,href:"/2019/12/11/apache-flink-1.8.3-released/",title:"Apache Flink 1.8.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.8 series.
This release includes 45 fixes and minor improvements for Flink 1.8.2. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.8.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.8.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.8.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-13723] - Use liquid-c for faster doc generation [FLINK-13724] - Remove unnecessary whitespace from the docs' sidenav [FLINK-13725] - Use sassc for faster doc generation [FLINK-13726] - Build docs with jekyll 4.0.0.pre.beta1 [FLINK-13791] - Speed up sidenav by using group_by Bug [FLINK-12342] - Yarn Resource Manager Acquires Too Many Containers [FLINK-13184] - Starting a TaskExecutor blocks the YarnResourceManager's main thread [FLINK-13728] - Fix wrong closing tag [...]
+Sub-task [FLINK-13723] - Use liquid-c for faster doc generation [FLINK-13724] - Remove unnecessary whitespace from the docs' sidenav [FLINK-13725] - Use sassc for faster doc generation [FLINK-13726] - Build docs with jekyll 4.0.0.pre.beta1 [FLINK-13791] - Speed up sidenav by using group_by Bug [FLINK-12342] - Yarn Resource Manager Acquires Too Many Containers [FLINK-13184] - Starting a TaskExecutor blocks the YarnResourceManager's main thread [FLINK-13728] - Fix wrong closing tag [...]
A short intro to Apache Pulsar # Apache Pulsar is a flexible pub/sub messaging system, backed by durable log storage. Some of the framework’s highlights include multi-tenancy, a unified message model, structured event streams and a cloud-native architecture that make it a perfect fit for a wide set of use cases, ranging from billing, payments and trading services all the way to the unification of the different messaging architectures in an organization. If you are interested in finding o [...]
Existing Pulsar & Flink integration (Apache Flink 1.6+) # The existing integration between Pulsar and Flink exploits Pulsar as a message queue in a Flink application. Flink developers can utilize Pulsar as a streaming source and streaming sink for their Flink applications by selecting a specific Pulsar source and connecting to their desired Pulsar cluster and topic:
// create and configure Pulsar consumer PulsarSourceBuilder<String>builder = PulsarSourceBuilder .builder(new SimpleStringSchema()) .serviceUrl(serviceUrl) .topic(inputTopic) .subsciptionName(subscription); SourceFunction<String> src = builder.build(); // ingest DataStream with Pulsar consumer DataStream<String> words = env.addSource(src); Pulsar streams can then get connected to the Flink processing logic…
@@ -4138,7 +4160,7 @@ Flink & Pulsar: Read data from Pulsar # Create a Pulsar source for streaming
Next Steps & Future Integration # The goal of the integration between Pulsar and Flink is to simplify how developers use the two frameworks to build a unified data processing stack. As we progress from the classical Lamda architectures — where an online, speeding layer is combined with an offline, batch layer to run data computations — Flink and Pulsar present a great combination in providing a truly unified data processing stack. We see Flink as a unified computation engine, handlin [...]
There is still a lot of ongoing work and effort from both communities in getting the integration even better, such as a new source API (FLIP-27) that will allow the contribution of the Pulsar connectors to the Flink community as well as a new subscription type called Key_Shared subscription type in Pulsar that will allow efficient scaling of the source parallelism. Additional efforts focus around the provision of end-to-end, exactly-once guarantees (currently available only in the source [...]
You can find a more detailed overview of the integration work between the two communities in this recording video from Flink Forward Europe 2019 or sign up to the Flink dev mailing list for the latest contribution and integration efforts between Flink and Pulsar.
-`}),e.add({id:213,href:"/2019/11/06/running-apache-flink-on-kubernetes-with-kudo/",title:"Running Apache Flink on Kubernetes with KUDO",section:"Flink Blog",content:`A common use case for Apache Flink is streaming data analytics together with Apache Kafka, which provides a pub/sub model and durability for data streams. To achieve elastic scalability, both are typically deployed in clustered environments, and increasingly on top of container orchestration platforms like Kubernetes. The Op [...]
+`}),e.add({id:214,href:"/2019/11/06/running-apache-flink-on-kubernetes-with-kudo/",title:"Running Apache Flink on Kubernetes with KUDO",section:"Flink Blog",content:`A common use case for Apache Flink is streaming data analytics together with Apache Kafka, which provides a pub/sub model and durability for data streams. To achieve elastic scalability, both are typically deployed in clustered environments, and increasingly on top of container orchestration platforms like Kubernetes. The Op [...]
In this blog post we demonstrate how to orchestrate a streaming data analytics application based on Flink and Kafka with KUDO. It consists of a Flink job that checks financial transactions for fraud, and two microservices that generate and display the transactions. You can find more details about this demo in the KUDO Operators repository, including instructions for installing the dependencies.
Prerequisites # You can run this demo on your local machine using minikube. The instructions below were tested with minikube v1.5.1 and Kubernetes v1.16.2 but should work on any Kubernetes version above v1.15.0. First, start a minikube cluster with enough capacity:
minikube start --cpus=6 --memory=9216 --disk-size=10g
@@ -4164,13 +4186,13 @@ It should look similar to this, depending on your local machine and how many cor
The job is up and running and we should now be able to see fraudulent transaction in the logs of the actor pod:
$ kubectl logs $(kubectl get pod -l actor=flink-demo -o jsonpath="{.items[0].metadata.name}") Broker: flink-demo-kafka-kafka-0.flink-demo-kafka-svc:9093 Topic: fraud Detected Fraud: TransactionAggregate {startTimestamp=0, endTimestamp=1563395831000, totalAmount=19895: Transaction{timestamp=1563395778000, origin=1, target='3', amount=8341} Transaction{timestamp=1563395813000, origin=1, target='3', amount=8592} Transaction{timestamp=1563395817000, origin=1, target=& [...]
Conclusion # In this blog post we demonstrated how to easily deploy an end-to-end streaming data application on Kubernetes using KUDO. We deployed a Flink job and two microservices, as well as all the required infrastructure - Flink, Kafka, and ZooKeeper using just a few kubectl commands. To find out more about KUDO, visit the project website or join the community on Slack.
-`}),e.add({id:214,href:"/2019/10/18/apache-flink-1.9.1-released/",title:"Apache Flink 1.9.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.9 series.
+`}),e.add({id:215,href:"/2019/10/18/apache-flink-1.9.1-released/",title:"Apache Flink 1.9.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.9 series.
This release includes 96 fixes and minor improvements for Flink 1.9.0. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.9.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.9.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.9.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Bug [FLINK-11630] - TaskExecutor does not wait for Task termination when terminating itself [FLINK-13490] - Fix if one column value is null when reading JDBC, the following values are all null [FLINK-13941] - Prevent data-loss by not cleaning up small part files from S3. [FLINK-12501] - AvroTypeSerializer does not work with types generated by avrohugger [FLINK-13386] - Fix some frictions in the new default Web UI [FLINK-13526] - Switching to a non existing catalog or database crashes sql [...]
+Bug [FLINK-11630] - TaskExecutor does not wait for Task termination when terminating itself [FLINK-13490] - Fix if one column value is null when reading JDBC, the following values are all null [FLINK-13941] - Prevent data-loss by not cleaning up small part files from S3. [FLINK-12501] - AvroTypeSerializer does not work with types generated by avrohugger [FLINK-13386] - Fix some frictions in the new default Web UI [FLINK-13526] - Switching to a non existing catalog or database crashes sql [...]
In this post, we explain why this feature is a big step for Flink, what you can use it for, and how to use it. Finally, we will discuss the future of the State Processor API and how it aligns with our plans to evolve Flink into a system for unified batch and stream processing.
Stateful Stream Processing with Apache Flink until Flink 1.9 # All non-trivial stream processing applications are stateful and most of them are designed to run for months or years. Over time, many of them accumulate a lot of valuable state that can be very expensive or even impossible to rebuild if it gets lost due to a failure. In order to guarantee the consistency and durability of application state, Flink featured a sophisticated checkpointing and recovery mechanism from very early on [...]
However, a feature that was commonly requested by Flink users was the ability to access the state of an application “from the outside”. This request was motivated by the need to validate or debug the state of an application, to migrate the state of an application to another application, to evolve an application from the Heap State Backend to the RocksDB State Backend, or to import the initial state of an application from an external system like a relational database.
@@ -4185,13 +4207,13 @@ The figure shows how the values of Src’s operator state are mapped to a ta
The State Processor API now offers methods to create, load, and write a savepoint. You can read a DataSet from a loaded savepoint or convert a DataSet into a state and add it to a savepoint. DataSets can be processed with the full feature set of the DataSet API. With these building blocks, all of the before-mentioned use cases (and more) can be addressed. Please have a look at the documentation if you’d like to learn how to use the State Processor API in detail.
Why DataSet API? # In case you are familiar with Flink’s roadmap, you might be surprised that the State Processor API is based on the DataSet API. The Flink community plans to extend the DataStream API with the concept of BoundedStreams and deprecate the DataSet API. When designing this feature, we also evaluated the DataStream API or Table API but neither could provide the right feature set yet. Since we didn’t want to block this feature on the progress of Flink’s APIs [...]
Summary # Flink users have requested a feature to access and modify the state of streaming applications from the outside for a long time. With the State Processor API, Flink 1.9.0 finally exposes application state as a data format that can be manipulated. This feature opens up many new possibilities for how users can maintain and manage Flink streaming applications, including arbitrary evolution of stream applications and exporting and bootstrapping of application state. To put it concis [...]
-`}),e.add({id:216,href:"/2019/09/11/apache-flink-1.8.2-released/",title:"Apache Flink 1.8.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.8 series.
+`}),e.add({id:217,href:"/2019/09/11/apache-flink-1.8.2-released/",title:"Apache Flink 1.8.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.8 series.
This release includes 23 fixes and minor improvements for Flink 1.8.1. The list below includes a detailed list of all fixes and improvements.
We highly recommend all users to upgrade to Flink 1.8.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.8.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.8.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Bug [FLINK-13941] - Prevent data-loss by not cleaning up small part files from S3. [FLINK-9526] - BucketingSink end-to-end test failed on Travis [FLINK-10368] - 'Kerberized YARN on Docker test' unstable [FLINK-12319] - StackOverFlowError in cep.nfa.sharedbuffer.SharedBuffer [FLINK-12736] - ResourceManager may release TM with allocated slots [FLINK-12889] - Job keeps in FAILING state [FLINK-13059] - Cassandra Connector leaks Semaphore on Exception; hangs on close [FLINK-13159] - j [...]
+Bug [FLINK-13941] - Prevent data-loss by not cleaning up small part files from S3. [FLINK-9526] - BucketingSink end-to-end test failed on Travis [FLINK-10368] - 'Kerberized YARN on Docker test' unstable [FLINK-12319] - StackOverFlowError in cep.nfa.sharedbuffer.SharedBuffer [FLINK-12736] - ResourceManager may release TM with allocated slots [FLINK-12889] - Job keeps in FAILING state [FLINK-13059] - Cassandra Connector leaks Semaphore on Exception; hangs on close [FLINK-13159] - j [...]
The first post in the series takes you on an little detour across the year, to freshen up and make sure you’re all up to date.
The Year (so far) in Flink # Two major versions were released this year: Flink 1.8 and Flink 1.9; paving the way for the goal of making Flink the first framework to seamlessly support stream and batch processing with a single, unified runtime. The contribution of Blink to Apache Flink was key in accelerating the path to this vision and reduced the waiting time for long-pending user requests — such as Hive integration, (better) Python support, the rework of Flink’s Machine Learning [...]
The 1.9 release was the result of the biggest community effort the project has experienced so far, with the number of contributors soaring to 190 (see The Bigger Picture). For a quick overview of the upcoming work for Flink 1.10 (and beyond), have a look at the updated roadmap!
@@ -4213,7 +4235,7 @@ Most Active Visits and Downloads * Most Active Sources: Visits * Most Active Sou
North America # [Conference] Strata Data Conference 2019, September 23-26, New York, USA [Meetup] Apache Flink Bay Area Meetup, September 24, San Francisco, USA [Conference] Scale By The Bay 2019, November 13-15, San Francisco, USA Europe # [Meetup] Apache Flink London Meetup, September 23, London, UK
[Conference] Flink Forward Europe 2019, October 7-9, Berlin, Germany
* The next edition of Flink Forward Europe is around the corner and the [program](https://europe-2019.flink-forward.org/conference-program) has been announced, featuring 70+ talks as well as panel discussions and interactive "Ask Me Anything" sessions with core Flink committers. If you're looking to learn more about Flink and share your experience with other community members, there really is [no better place]((https://vimeo.com/296403091)) than Flink Forward! Note: if you are a committe [...]
-`}),e.add({id:218,href:"/2019/08/22/apache-flink-1.9.0-release-announcement/",title:"Apache Flink 1.9.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is proud to announce the release of Apache Flink 1.9.0.
+`}),e.add({id:219,href:"/2019/08/22/apache-flink-1.9.0-release-announcement/",title:"Apache Flink 1.9.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is proud to announce the release of Apache Flink 1.9.0.
The Apache Flink project’s goal is to develop a stream processing system to unify and power many forms of real-time and offline data processing applications as well as event-driven applications. In this release, we have made a huge step forward in that effort, by integrating Flink’s stream and batch processing capabilities under a single, unified runtime.
Significant features on this path are batch-style recovery for batch jobs and a preview of the new Blink-based query engine for Table API and SQL queries. We are also excited to announce the availability of the State Processor API, which is one of the most frequently requested features and enables users to read and write savepoints with Flink DataSet jobs. Finally, Flink 1.9 includes a reworked WebUI and previews of Flink’s new Python Table API and its integration with the Apache Hive ec [...]
This blog post describes all major new features and improvements, important changes to be aware of and what to expect moving forward. For more details, check the complete release changelog.
@@ -4254,7 +4276,7 @@ If you’d like to try the new Python API, you have to manually install PyFlink.
Important Changes # The Table API and SQL are now part of the default configuration of the Flink distribution. Before, the Table API and SQL had to be enabled by moving the corresponding JAR file from ./opt to ./lib. The machine learning library (flink-ml) has been removed in preparation for FLIP-39. The old DataSet and DataStream Python APIs have been removed in favor of FLIP-38. Flink can be compiled and run on Java 9. Note that certain components interacting with external systems (con [...]
List of Contributors # We would like to thank all contributors who have made this release possible:
Abdul Qadeer (abqadeer), Aitozi, Alberto Romero, Aleksey Pak, Alexander Fedulov, Alice Yan, Aljoscha Krettek, Aloys, Andrew Duffy, Andrey Zagrebin, Ankur, Artsem Semianenka, Benchao Li, Biao Liu, Bo WANG, Bowen L, Chesnay Schepler, Clark Yang, Congxian Qiu, Cristian, Danny Chan, David Moravek, Dawid Wysakowicz, Dian Fu, EronWright, Fabian Hueske, Fabio Lombardelli, Fokko Driesprong, Gao Yun, Gary Yao, Gen Luo, Gyula Fora, Hequn Cheng, Hongtao Zhang, Huang Xingbo, HuangXingBo, Hugo Da Cru [...]
-`}),e.add({id:219,href:"/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/",title:"Flink Network Stack Vol. 2: Monitoring, Metrics, and that Backpressure Thing",section:"Flink Blog",content:` In a previous blog post, we presented how Flink’s network stack works from the high-level abstractions to the low-level details. This second blog post in the series of network stack posts extends on this knowledge and discusses monitoring network-related metrics t [...]
+`}),e.add({id:220,href:"/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/",title:"Flink Network Stack Vol. 2: Monitoring, Metrics, and that Backpressure Thing",section:"Flink Blog",content:` In a previous blog post, we presented how Flink’s network stack works from the high-level abstractions to the low-level details. This second blog post in the series of network stack posts extends on this knowledge and discusses monitoring network-related metrics t [...]
Monitoring # Probably the most important part of network monitoring is monitoring backpressure, a situation where a system is receiving data at a higher rate than it can process¹. Such behaviour will result in the sender being backpressured and may be caused by two things:
The receiver is slow.
This can happen because the receiver is backpressured itself, is unable to keep processing at the same rate as the sender, or is temporarily blocked by garbage collection, lack of system resources, or I/O.
@@ -4311,13 +4333,13 @@ Since LatencyMarkers sit in network buffers just like normal records, they will
By looking at the exposed latency tracking metrics for each subtask, for example at the 95th percentile, you should nevertheless be able to identify subtasks which are adding substantially to the overall source-to-sink latency and continue with optimising there.
Note Flink's latency markers assume that the clocks on all machines in the cluster are in sync. We recommend setting up an automated clock synchronisation service (like NTP) to avoid false latency results. Warning Enabling latency metrics can significantly impact the performance of the cluster (in particular for \`subtask\` granularity) due to the sheer amount of metrics being added as well as the use of histograms which are quite expensive to maintain. It is highly recommended to only u [...]
Stay tuned for the third blog post in the series of network stack posts that will focus on tuning techniques and anti-patterns to avoid.
-`}),e.add({id:220,href:"/2019/07/02/apache-flink-1.8.1-released/",title:"Apache Flink 1.8.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.8 series.
+`}),e.add({id:221,href:"/2019/07/02/apache-flink-1.8.1-released/",title:"Apache Flink 1.8.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.8 series.
This release includes more than 40 fixes and minor improvements for Flink 1.8.1. The list below includes a detailed list of all improvements, sub-tasks and bug fixes.
We highly recommend all users to upgrade to Flink 1.8.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-10921] - Prioritize shard consumers in Kinesis Consumer by event time [FLINK-12617] - StandaloneJobClusterEntrypoint should default to random JobID for non-HA setups Bug [FLINK-9445] - scala-shell uses plain java command [FLINK-10455] - Potential Kafka producer leak in case of failures [FLINK-10941] - Slots prematurely released which still contain unconsumed data [FLINK-11059] - JobMaster may continue using an invalid slot if releasing idle slot meet a timeout [FLINK-1110 [...]
+Sub-task [FLINK-10921] - Prioritize shard consumers in Kinesis Consumer by event time [FLINK-12617] - StandaloneJobClusterEntrypoint should default to random JobID for non-HA setups Bug [FLINK-9445] - scala-shell uses plain java command [FLINK-10455] - Potential Kafka producer leak in case of failures [FLINK-10941] - Slots prematurely released which still contain unconsumed data [FLINK-11059] - JobMaster may continue using an invalid slot if releasing idle slot meet a timeout [FLINK-1110 [...]
What is Broadcast State? # The Broadcast State can be used to combine and jointly process two streams of events in a specific way. The events of the first stream are broadcasted to all parallel instances of an operator, which maintains them as state. The events of the other stream are not broadcasted but sent to individual instances of the same operator and processed together with the events of the broadcasted stream. The new broadcast state is a natural fit for applications that need to [...]
Dynamic Pattern Evaluation with Broadcast State # Imagine an e-commerce website that captures the interactions of all users as a stream of user actions. The company that operates the website is interested in analyzing the interactions to increase revenue, improve the user experience, and detect and prevent malicious behavior. The website implements a streaming application that detects a pattern on the stream of user events. However, the company wants to avoid modifying and redeploying th [...]
Our example application ingests two data streams. The first stream provides user actions on the website and is illustrated on the top left side of the above figure. A user interaction event consists of the type of the action (user login, user logout, add to cart, or complete payment) and the id of the user, which is encoded by color. The user action event stream in our illustration contains a logout action of User 1001 followed by a payment-complete event for User 1003, and an “add-to-ca [...]
@@ -4346,7 +4368,7 @@ processBroadcastElement() is called for each record of the broadcasted stream. I
The broadcast state (read-write or read-only, depending on the method), A TimerService, which gives access to the record’s timestamp, the current watermark, and which can register timers, The current key (only available in processElement()), and A method to apply a function the keyed state of each registered key (only available in processBroadcastElement()) The KeyedBroadcastProcessFunction has full access to Flink state and time features just like any other ProcessFunction and hence can [...]
Conclusion # In this blog post, we walked you through an example application to explain what Apache Flink’s broadcast state is and how it can be used to evaluate dynamic patterns on event streams. We’ve also discussed the API and showed the source code of our example application.
We invite you to check the documentation of this feature and provide feedback or suggestions for further improvements through our mailing list.
-`}),e.add({id:222,href:"/2019/06/05/a-deep-dive-into-flinks-network-stack/",title:"A Deep-Dive into Flink's Network Stack",section:"Flink Blog",content:` Flink’s network stack is one of the core components that make up the flink-runtime module and sit at the heart of every Flink job. It connects individual work units (subtasks) from all TaskManagers. This is where your streamed-in data flows through and it is therefore crucial to the performance of your Flink job for both the throughput [...]
+`}),e.add({id:223,href:"/2019/06/05/a-deep-dive-into-flinks-network-stack/",title:"A Deep-Dive into Flink's Network Stack",section:"Flink Blog",content:` Flink’s network stack is one of the core components that make up the flink-runtime module and sit at the heart of every Flink job. It connects individual work units (subtasks) from all TaskManagers. This is where your streamed-in data flows through and it is therefore crucial to the performance of your Flink job for both the throughput [...]
This blog post is the first in a series of posts about the network stack. In the sections below, we will first have a high-level look at what abstractions are exposed to the stream operators and then go into detail on the physical implementation and various optimisations Flink did. We will briefly present the result of these optimisations and Flink’s trade-off between throughput and latency. Future blog posts in this series will elaborate more on monitoring and metrics, tuning parameters [...]
Logical View # Flink’s network stack provides the following logical view to the subtasks when communicating with each other, for example during a network shuffle as required by a keyBy().
It abstracts over the different settings of the following three concepts:
@@ -4383,7 +4405,7 @@ Flush after Buffer Full # The RecordWriter works with a local serialisation buff
less synchronisation overhead (output flusher and RecordWriter are independent) in high-load scenarios where Netty is the bottleneck (either through backpressure or directly), we can still accumulate data in incomplete buffers significant reduction of Netty notifications However, you may notice an increased CPU use and TCP packet rate during low load scenarios. This is because, with the changes, Flink will use any available CPU cycles to try to maintain the desired latency. Once the load [...]
Latency vs. Throughput # Network buffers were introduced to get higher resource utilisation and higher throughput at the cost of having some records wait in buffers a little longer. Although an upper limit to this wait time can be given via the buffer timeout, you may be curious to find out more about the trade-off between these two dimensions: latency and throughput, as, obviously, you cannot get both. The following plot shows various values for the buffer timeout starting at 0 (flush w [...]
Conclusion # Now you know about result partitions, the different network connections and scheduling types for both batch and streaming. You also know about credit-based flow control and how the network stack works internally, in order to reason about network-related tuning parameters and about certain job behaviours. Future blog posts in this series will build upon this knowledge and go into more operational details including relevant metrics to look at, further network stack tuning, and [...]
-`}),e.add({id:223,href:"/2019/05/17/state-ttl-in-flink-1.8.0-how-to-automatically-cleanup-application-state-in-apache-flink/",title:"State TTL in Flink 1.8.0: How to Automatically Cleanup Application State in Apache Flink",section:"Flink Blog",content:`A common requirement for many stateful streaming applications is to automatically cleanup application state for effective management of your state size, or to control how long the application state can be accessed (e.g. due to legal regula [...]
+`}),e.add({id:224,href:"/2019/05/17/state-ttl-in-flink-1.8.0-how-to-automatically-cleanup-application-state-in-apache-flink/",title:"State TTL in Flink 1.8.0: How to Automatically Cleanup Application State in Apache Flink",section:"Flink Blog",content:`A common requirement for many stateful streaming applications is to automatically cleanup application state for effective management of your state size, or to control how long the application state can be accessed (e.g. due to legal regula [...]
In this post, we motivate the State TTL feature and discuss its use cases. Moreover, we show how to use and configure it. We explain how Flink internally manages state with TTL and present some exciting additions to the feature in Flink 1.8.0. The blog post concludes with an outlook on future improvements and extensions.
The Transient Nature of State # There are two major reasons why state should be maintained only for a limited time. For example, let’s imagine a Flink application that ingests a stream of user login events and stores for each user the time of the last login to improve the experience of frequent visitors.
Controlling the size of state. Being able to efficiently manage an ever-growing state size is a primary use case for state TTL. Oftentimes, data needs to be persisted temporarily while there is some user activity around it, e.g. web sessions. When the activity ends there is no longer interest in that data while it still occupies storage. Flink 1.8.0 introduces background cleanup of old state based on TTL that makes the eviction of no-longer-necessary data frictionless. Previously, the ap [...]
@@ -4412,7 +4434,7 @@ Eager State Cleanup with Timers # Another way to manually cleanup state is based
Future work # Apart from including the timer-based cleanup strategy, mentioned above, the Flink community has plans to further improve the state TTL feature. The possible improvements include adding support of TTL for event time scale (only processing time is supported at the moment) and enabling State TTL for queryable state.
We encourage you to join the conversation and share your thoughts and ideas in the Apache Flink JIRA board or by subscribing to the Apache Flink dev mailing list. Feedback or suggestions are always appreciated and we look forward to hearing your thoughts on the Flink mailing lists.
Summary # Time-based state access restrictions and controlling the size of application state are common challenges in the world of stateful stream processing. Flink’s 1.8.0 release significantly improves the State TTL feature by adding support for continuous background cleanup of expired state objects. The new clean up mechanisms relieve you from manually implementing state cleanup. They are also more efficient due to their lazy nature. State TTL gives you control over the size of your a [...]
-`}),e.add({id:224,href:"/2019/05/14/flux-capacitor-huh-temporal-tables-and-joins-in-streaming-sql/",title:"Flux capacitor, huh? Temporal Tables and Joins in Streaming SQL",section:"Flink Blog",content:`Figuring out how to manage and model temporal data for effective point-in-time analysis was a longstanding battle, dating as far back as the early 80’s, that culminated with the introduction of temporal tables in the SQL standard in 2011. Up to that point, users were doomed to implement th [...]
+`}),e.add({id:225,href:"/2019/05/14/flux-capacitor-huh-temporal-tables-and-joins-in-streaming-sql/",title:"Flux capacitor, huh? Temporal Tables and Joins in Streaming SQL",section:"Flink Blog",content:`Figuring out how to manage and model temporal data for effective point-in-time analysis was a longstanding battle, dating as far back as the early 80’s, that culminated with the introduction of temporal tables in the SQL standard in 2011. Up to that point, users were doomed to implement th [...]
For example: given a stream with Taxi Fare events tied to the local currency of the ride location, we might want to convert the fare price to a common currency for further processing. As conversion rates excel at fluctuating over time, each Taxi Fare event would need to be matched to the rate that was valid at the time the event occurred in order to produce a reliable result.
Modelling Temporal Data with Flink # In the 1.7 release, Flink has introduced the concept of temporal tables into its streaming SQL and Table API: parameterized views on append-only tables — or, any table that only allows records to be inserted, never updated or deleted — that are interpreted as a changelog and keep data closely tied to time context, so that it can be interpreted as valid only within a specific period of time. Transforming a stream into a temporal table requires:
Defining a primary key and a versioning field that can be used to keep track of the changes that happen over time;
@@ -4427,7 +4449,7 @@ Temporal table joins support both processing and event time semantics and effect
Narrowing the scope of the join: only the time-matching version of ratesHistory is visible for a given taxiFare.time; Pruning unneeded records from state: for cases using event time, records between current time and the watermark delay are persisted for both the probe and build side. These are discarded as soon as the watermark arrives and the results are emitted — allowing the join operation to move forward in time and the build table to “refresh” its version in state. Conclusion # All [...]
If you’d like to get some hands-on practice in joining streams with Flink SQL (and Flink SQL in general), checkout this free training for Flink SQL. The training environment is based on Docker and set up in just a few minutes.
Subscribe to the Apache Flink mailing lists to stay up-to-date with the latest developments in this space.
-`}),e.add({id:225,href:"/2019/05/03/when-flink-pulsar-come-together/",title:"When Flink & Pulsar Come Together",section:"Flink Blog",content:`The open source data technology frameworks Apache Flink and Apache Pulsar can integrate in different ways to provide elastic data processing at large scale. I recently gave a talk at Flink Forward San Francisco 2019 and presented some of the integrations between the two frameworks for batch and streaming applications. In this post, I will give a sh [...]
+`}),e.add({id:226,href:"/2019/05/03/when-flink-pulsar-come-together/",title:"When Flink & Pulsar Come Together",section:"Flink Blog",content:`The open source data technology frameworks Apache Flink and Apache Pulsar can integrate in different ways to provide elastic data processing at large scale. I recently gave a talk at Flink Forward San Francisco 2019 and presented some of the integrations between the two frameworks for batch and streaming applications. In this post, I will give a sh [...]
A brief introduction to Apache Pulsar # Apache Pulsar is an open-source distributed pub-sub messaging system under the stewardship of the Apache Software Foundation. Pulsar is a multi-tenant, high-performance solution for server-to-server messaging including multiple features such as native support for multiple clusters in a Pulsar instance, with seamless geo-replication of messages across clusters, very low publish and end-to-end latency, seamless scalability to over a million topics, a [...]
The first differentiating factor stems from the fact that although Pulsar provides a flexible pub-sub messaging system it is also backed by durable log storage — hence combining both messaging and storage under one framework. Because of that layered architecture, Pulsar provides instant failure recovery, independent scalability and balance-free cluster expansion.
Pulsar’s architecture follows a similar pattern to other pub-sub systems as the framework is organized in topics as the main data entity, with producers sending data to, and consumers receiving data from a topic as shown in the diagram below.
@@ -4443,7 +4465,7 @@ Existing Integrations # Integration between the two frameworks is ongoing and de
// create and configure Pulsar consumer PulsarSourceBuilder<String>builder = PulsarSourceBuilder .builder(new SimpleStringSchema()) .serviceUrl(serviceUrl) .topic(inputTopic) .subscriptionName(subscription); SourceFunction<String> src = builder.build(); // ingest DataStream with Pulsar consumer DataStream<String> words = env.addSource(src); // perform computation on DataStream (here a simple WordCount) DataStream<WordWithCount> wc = words .flatMap((FlatMapFunction [...]
// obtain a DataStream with words DataStream<String> words = ... // register DataStream as Table "words" with two attributes ("word", "ts"). // "ts" is an event-time timestamp. tableEnvironment.registerDataStream("words", words, "word, ts.rowtime"); // create a TableSink that produces to Pulsar TableSink sink = new PulsarJsonTableSink( serviceUrl, outputTopic, new AuthenticationDisabled(), ROUTING_KEY); // register Pulsar TableSink as [...]
// obtain DataSet from arbitrary computation DataSet<WordWithCount> wc = ... // create PulsarOutputFormat instance OutputFormat pulsarOutputFormat = new PulsarOutputFormat( serviceUrl, topic, new AuthenticationDisabled(), wordWithCount -> wordWithCount.toString().getBytes()); // write DataSet to Pulsar wc.output(pulsarOutputFormat); Conclusion # Both Pulsar and Flink share a similar view on how the data and the computation level of an application can be “streaming-first” with ba [...]
-`}),e.add({id:226,href:"/2019/04/17/apache-flinks-application-to-season-of-docs/",title:"Apache Flink's Application to Season of Docs",section:"Flink Blog",content:`The Apache Flink community is happy to announce its application to the first edition of Season of Docs by Google. The program is bringing together Open Source projects and technical writers to raise awareness for and improve documentation of Open Source projects. While the community is continuously looking for new contributor [...]
+`}),e.add({id:227,href:"/2019/04/17/apache-flinks-application-to-season-of-docs/",title:"Apache Flink's Application to Season of Docs",section:"Flink Blog",content:`The Apache Flink community is happy to announce its application to the first edition of Season of Docs by Google. The program is bringing together Open Source projects and technical writers to raise awareness for and improve documentation of Open Source projects. While the community is continuously looking for new contributor [...]
The community has discussed this opportunity on the dev mailinglist and agreed on three project ideas to submit to the program. We have a great team of mentors (Stephan, Fabian, David, Jark & Konstantin) lined up and are very much looking forward to the first proposals by potential technical writers (given we are admitted to the program ;)). In case of questions feel free to reach out to the community via dev@flink.apache.org.
Project Ideas List # Project 1: Improve Documentation of Stream Processing Concepts # Description: Stream processing is the processing of data in motion―in other words, computing on data directly as it is produced or received. Apache Flink has pioneered the field of distributed, stateful stream processing over the last several years. As the community has pushed the boundaries of stream processing, we have introduced new concepts that users need to become familiar with to develop and oper [...]
In this project, we would like to restructure, consolidate and extend the concepts documentation for Apache Flink to better guide users who want to become productive as quickly as possible. This includes better conceptual introductions to topics such as event time, state, and fault tolerance with proper linking to and from relevant deployment and development guides.
@@ -4454,7 +4476,7 @@ Related material:
//nightlies.apache.org/flink/flink-docs-release-1.8/ops //nightlies.apache.org/flink/flink-docs-release-1.8/monitoring Project 3: Improve Documentation for Relational APIs (Table API & SQL) # Description: Apache Flink features APIs at different levels of abstraction which enables its users to trade conciseness for expressiveness. Flink’s relational APIs, SQL and the Table API, are “younger” than the DataStream and DataSet APIs, more high-level and focus on data analytics use cases. A [...]
The existing documentation could be reorganized to prepare for covering the new features. Moreover, it could be improved by adding a concepts section that describes the use cases and internals of the APIs in more detail. Moreover, the documentation of built-in functions could be improved by adding more concrete examples.
Related material:
-Table API & SQL docs main page Built-in functions Concepts Streaming Concepts `}),e.add({id:227,href:"/2019/04/09/apache-flink-1.8.0-release-announcement/",title:"Apache Flink 1.8.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce Apache Flink 1.8.0. The latest release includes more than 420 resolved issues and some exciting additions to Flink that we describe in the following sections of this post. Please check the complete change [...]
+Table API & SQL docs main page Built-in functions Concepts Streaming Concepts `}),e.add({id:228,href:"/2019/04/09/apache-flink-1.8.0-release-announcement/",title:"Apache Flink 1.8.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce Apache Flink 1.8.0. The latest release includes more than 420 resolved issues and some exciting additions to Flink that we describe in the following sections of this post. Please check the complete change [...]
Flink 1.8.0 is API-compatible with previous 1.x.y releases for APIs annotated with the @Public annotation. The release is available now and we encourage everyone to download the release and check out the updated documentation. Feedback through the Flink mailing lists or JIRA is, as always, very much appreciated!
You can find the binaries on the updated Downloads page on the Flink project site.
With Flink 1.8.0 we come closer to our goals of enabling fast data processing and building data-intensive applications for the Flink community in a seamless way. We do this by cleaning up and refactoring Flink under the hood to allow more efficient feature development in the future. This includes removal of the legacy runtime components that were subsumed in the major rework of Flink’s underlying distributed system architecture (FLIP-6) as well as refactorings on the Table API that [...]
@@ -4483,7 +4505,7 @@ Change in the Maven modules of Table API (FLINK-11064): Users that had a flink-t
Known Issues # Discarded checkpoint can cause Tasks to fail (FLINK-11662): There is a race condition that can lead to erroneous checkpoint failures. This mostly occurs when restarting from a savepoint or checkpoint takes a long time at the sources of a job. If you see random checkpointing failures that don’t seem to have a good explanation you might be affected. Please see the Jira issue for more details and a workaround for the problem. Release Notes # Please review the release no [...]
List of Contributors # We would like to acknowledge all community members for contributing to this release. Special credits go to the following members for contributing to the 1.8.0 release (according to git log --pretty="%an" release-1.7.0..release-1.8.0 | sort | uniq without manual deduplication):
Addison Higham, Aitozi, Aleksey Pak, Alexander Fedulov, Alexey Trenikhin, Aljoscha Krettek, Andrey Zagrebin, Artsem Semianenka, Asura7969, Avi, Barisa Obradovic, Benchao Li, Bo WANG, Chesnay Schepler, Congxian Qiu, Cristian, David Anderson, Dawid Wysakowicz, Dian Fu, DuBin, EAlexRojas, EronWright, Eugen Yushin, Fabian Hueske, Fokko Driesprong, Gary Yao, Hequn Cheng, Igal Shilman, Jamie Grier, JaryZhen, Jeff Zhang, Jihyun Cho, Jinhu Wu, Joerg Schad, KarmaGYZ, Kezhu Wang, Konstantin Knauf, [...]
-`}),e.add({id:228,href:"/2019/03/11/flink-and-prometheus-cloud-native-monitoring-of-streaming-applications/",title:"Flink and Prometheus: Cloud-native monitoring of streaming applications",section:"Flink Blog",content:`This blog post describes how developers can leverage Apache Flink’s built-in metrics system together with Prometheus to observe and monitor streaming applications in an effective way. This is a follow-up post from my Flink Forward Berlin 2018 talk (slides, video). We [...]
+`}),e.add({id:229,href:"/2019/03/11/flink-and-prometheus-cloud-native-monitoring-of-streaming-applications/",title:"Flink and Prometheus: Cloud-native monitoring of streaming applications",section:"Flink Blog",content:`This blog post describes how developers can leverage Apache Flink’s built-in metrics system together with Prometheus to observe and monitor streaming applications in an effective way. This is a follow-up post from my Flink Forward Berlin 2018 talk (slides, video). We [...]
Why Prometheus? # Prometheus is a metrics-based monitoring system that was originally created in 2012. The system is completely open-source (under the Apache License 2) with a vibrant community behind it and it has graduated from the Cloud Native Foundation last year – a sign of maturity, stability and production-readiness. As we mentioned, the system is based on metrics and it is designed to measure the overall health, behavior and performance of a service. Prometheus features a multi-d [...]
Metrics: Prometheus defines metrics as floats of information that change in time. These time series have millisecond precision.
Labels are the key-value pairs associated with time series that support Prometheus’ flexible and powerful data model – in contrast to hierarchical data structures that one might experience with traditional metrics systems.
@@ -4506,7 +4528,7 @@ docker kill taskmanager1 Our Flink job can recover from this partial failure via
Example alert in Prometheus web UI. In real-world situations alerts like this one can be routed through a component called Alertmanager and be grouped into notifications to systems like email, PagerDuty or Slack.
Go ahead and play around with the setup, and check out the Grafana instance reachable at http://localhost:3000 (credentials admin:flink) for visualizing Prometheus metrics. If there are any questions or problems, feel free to create an issue. Once finished, do not forget to tear down the setup via
./gradlew composeDown Conclusion # Using Prometheus together with Flink provides an easy way for effective monitoring and alerting of your Flink jobs. Both projects have exciting and vibrant communities behind them with new developments and additions scheduled for upcoming releases. We encourage you to try the two technologies together as it has immensely improved our insights into Flink jobs running in production.
-`}),e.add({id:229,href:"/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/",title:"What to expect from Flink Forward San Francisco 2019",section:"Flink Blog",content:`The third annual Flink Forward San Francisco is just a few weeks away! As always, Flink Forward will be the right place to meet and mingle with experienced Flink users, contributors, and committers. Attendees will hear and chat about the latest developments around Flink and learn from technical deep-dive sess [...]
+`}),e.add({id:230,href:"/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/",title:"What to expect from Flink Forward San Francisco 2019",section:"Flink Blog",content:`The third annual Flink Forward San Francisco is just a few weeks away! As always, Flink Forward will be the right place to meet and mingle with experienced Flink users, contributors, and committers. Attendees will hear and chat about the latest developments around Flink and learn from technical deep-dive sess [...]
Some highlights of the program are:
Realtime Store Visit Predictions at Scale: Luca Giovagnoli from Yelp will talk about a “multidisciplinary” Flink application that combines geospatial clustering algorithms, Machine Learning models, and cutting-edge stream-processing technology.
Real-time Processing with Flink for Machine Learning at Netflix: Elliot Chow will discuss the practical aspects of using Apache Flink to power Machine Learning algorithms for video recommendations, search results ranking, and selection of artwork images at Netflix.
@@ -4520,13 +4542,13 @@ Analyzing Streaming Data with Flink SQL: In this hands-on training, you will lea
Troubleshooting and Operating Flink at large scale: In this training, we will focus on everything you need to run Apache Flink applications reliably and efficiently in production including topics like capacity planning, monitoring, troubleshooting and tuning Apache Flink.
If you haven’t done so yet, check out the full schedule and register your attendance. I’m looking forward to meet you at Flink Forward San Francisco.
Fabian
-`}),e.add({id:230,href:"/2019/02/25/apache-flink-1.6.4-released/",title:"Apache Flink 1.6.4 Released",section:"Flink Blog",content:`The Apache Flink community released the fourth bugfix version of the Apache Flink 1.6 series.
+`}),e.add({id:231,href:"/2019/02/25/apache-flink-1.6.4-released/",title:"Apache Flink 1.6.4 Released",section:"Flink Blog",content:`The Apache Flink community released the fourth bugfix version of the Apache Flink 1.6 series.
This release includes more than 25 fixes and minor improvements for Flink 1.6.3. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.6.4.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Bug [FLINK-10721] - Kafka discovery-loop exceptions may be swallowed [FLINK-10761] - MetricGroup#getAllVariables can deadlock [FLINK-10774] - connection leak when partition discovery is disabled and open throws exception [FLINK-10848] - Flink's Yarn ResourceManager can allocate too many excess containers [FLINK-11022] - Update LICENSE and NOTICE files for older releases [FLINK-11071] - Dynamic proxy classes cannot be resolved when deserializing job graph [FLINK-11084] - Incorrect oup [...]
+Bug [FLINK-10721] - Kafka discovery-loop exceptions may be swallowed [FLINK-10761] - MetricGroup#getAllVariables can deadlock [FLINK-10774] - connection leak when partition discovery is disabled and open throws exception [FLINK-10848] - Flink's Yarn ResourceManager can allocate too many excess containers [FLINK-11022] - Update LICENSE and NOTICE files for older releases [FLINK-11071] - Dynamic proxy classes cannot be resolved when deserializing job graph [FLINK-11084] - Incorrect oup [...]
With business-critical applications running on Apache Flink, performance monitoring becomes an increasingly important part of a successful production deployment. It ensures that any degradation or downtime is immediately identified and resolved as quickly as possible.
Monitoring goes hand-in-hand with observability, which is a prerequisite for troubleshooting and performance tuning. Nowadays, with the complexity of modern enterprise applications and the speed of delivery increasing, an engineering team must understand and have a complete overview of its applications’ status at any given point in time.
Flink’s Metrics System # The foundation for monitoring Flink jobs is its metrics system which consists of two components; Metrics and MetricsReporters.
@@ -4579,13 +4601,13 @@ Metric Scope Description Status.JVM.CPU.Load job-/taskmanager The recent CPU usa
TaskManager & JobManager CPU load. System Resources # In addition to the JVM metrics above, it is also possible to use Flink’s metrics system to gather insights about system resources, i.e. memory, CPU & network-related metrics for the whole machine as opposed to the Flink processes alone. System resource monitoring is disabled by default and requires additional dependencies on the classpath. Please check out the Flink system resource metrics documentation for additional guidance and [...]
Conclusion # This post tries to shed some light on Flink’s metrics and monitoring system. You can utilise it as a starting point when you first think about how to successfully monitor your Flink application. I highly recommend to start monitoring your Flink application early on in the development phase. This way you will be able to improve your dashboards and alerts over time and, more importantly, observe the performance impact of the changes to your application throughout the developme [...]
Last but not least, this post only scratches the surface of the overall metrics and monitoring capabilities of Apache Flink. I highly recommend going over Flink’s metrics documentation for a full reference of Flink’s metrics system.
-`}),e.add({id:232,href:"/2019/02/15/apache-flink-1.7.2-released/",title:"Apache Flink 1.7.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.7 series.
+`}),e.add({id:233,href:"/2019/02/15/apache-flink-1.7.2-released/",title:"Apache Flink 1.7.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.7 series.
This release includes more than 40 fixes and minor improvements for Flink 1.7.1, covering several critical recovery issues as well as problems in the Flink streaming connectors.
The list below includes a detailed list of all fixes. We highly recommend all users to upgrade to Flink 1.7.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.7.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.7.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-11179] - JoinCancelingITCase#testCancelSortMatchWhileDoingHeavySorting test error [FLINK-11180] - ProcessFailureCancelingITCase#testCancelingOnProcessFailure [FLINK-11181] - SimpleRecoveryITCaseBase test error Bug [FLINK-10721] - Kafka discovery-loop exceptions may be swallowed [FLINK-10761] - MetricGroup#getAllVariables can deadlock [FLINK-10774] - connection leak when partition discovery is disabled and open throws exception [FLINK-10848] - Flink's Yarn ResourceMana [...]
+Sub-task [FLINK-11179] - JoinCancelingITCase#testCancelSortMatchWhileDoingHeavySorting test error [FLINK-11180] - ProcessFailureCancelingITCase#testCancelingOnProcessFailure [FLINK-11181] - SimpleRecoveryITCaseBase test error Bug [FLINK-10721] - Kafka discovery-loop exceptions may be swallowed [FLINK-10761] - MetricGroup#getAllVariables can deadlock [FLINK-10774] - connection leak when partition discovery is disabled and open throws exception [FLINK-10848] - Flink's Yarn ResourceMana [...]
A Unified Approach to Batch and Streaming # Since its early days, Apache Flink has followed the philosophy of taking a unified approach to batch and streaming data processing. The core building block is “continuous processing of unbounded data streams”: if you can do that, you can also do offline processing of bounded data sets (batch processing use cases), because these are just streams that happen to end at some point.
The “streaming first, with batch as a special case of streaming” philosophy is supported by various projects (for example Flink, Beam, etc.) and often been cited as a powerful way to build data applications that generalize across real-time and offline processing and to help greatly reduce the complexity of data infrastructures.
Why are there still batch processors? # However, “batch is just a special case of streaming” does not mean that any stream processor is now the right tool for your batch processing use cases - the introduction of stream processors did not render batch processors obsolete:
@@ -4626,25 +4648,25 @@ Once this effort is finished, we can add Blink’s scheduling and recovery strat
The extended catalog support, DDL support, as well as support for Hive’s catalog and integrations is currently going through separate design discussions. We plan to leverage existing code here whenever it makes sense.
Summary # We believe that the data processing stack of the future is based on stream processing: The elegance of stream processing with its ability to model offline processing (batch), real-time data processing, and event-driven applications in the same way, while offering high performance and consistency is simply too compelling.
Exploiting certain properties of bounded data is important for a stream processor to achieve the same performance as dedicated batch processors. While Flink always supported batch processing, the project is taking the next step in building a unified runtime and towards becoming a stream processor that is competitive with batch processing systems even on their home turf: OLAP SQL. The contribution of Alibaba’s Blink code helps the Flink community to pick up the speed on this development.
-`}),e.add({id:234,href:"/2018/12/26/apache-flink-1.5.6-released/",title:"Apache Flink 1.5.6 Released",section:"Flink Blog",content:`The Apache Flink community released the sixth and last bugfix version of the Apache Flink 1.5 series.
+`}),e.add({id:235,href:"/2018/12/26/apache-flink-1.5.6-released/",title:"Apache Flink 1.5.6 Released",section:"Flink Blog",content:`The Apache Flink community released the sixth and last bugfix version of the Apache Flink 1.5 series.
This release includes more than 47 fixes and minor improvements for Flink 1.5.5. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.5.6.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.6</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-10252] - Handle oversized metric messages [FLINK-10863] - Assign uids to all operators Bug [FLINK-8336] - YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability [FLINK-9646] - ExecutionGraphCoLocationRestartTest.testConstraintsAfterRestart failed on Travis [FLINK-10166] - Dependency problems when executing SQL query in sql-client [FLINK-10309] - Cancel with savepoint fails with java.net.ConnectException when using the per job-mode [FLINK-10419] - ClassNot [...]
+Sub-task [FLINK-10252] - Handle oversized metric messages [FLINK-10863] - Assign uids to all operators Bug [FLINK-8336] - YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability [FLINK-9646] - ExecutionGraphCoLocationRestartTest.testConstraintsAfterRestart failed on Travis [FLINK-10166] - Dependency problems when executing SQL query in sql-client [FLINK-10309] - Cancel with savepoint fails with java.net.ConnectException when using the per job-mode [FLINK-10419] - ClassNot [...]
This release includes more than 80 fixes and minor improvements for Flink 1.6.2. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.6.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.6.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.6.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-10097] - More tests to increase StreamingFileSink test coverage [FLINK-10252] - Handle oversized metric messages [FLINK-10367] - Avoid recursion stack overflow during releasing SingleInputGate [FLINK-10863] - Assign uids to all operators in general purpose testing job Bug [FLINK-8336] - YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability [FLINK-9635] - Local recovery scheduling can cause spread out of tasks [FLINK-9646] - ExecutionGraphCoLocationRestar [...]
+Sub-task [FLINK-10097] - More tests to increase StreamingFileSink test coverage [FLINK-10252] - Handle oversized metric messages [FLINK-10367] - Avoid recursion stack overflow during releasing SingleInputGate [FLINK-10863] - Assign uids to all operators in general purpose testing job Bug [FLINK-8336] - YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability [FLINK-9635] - Local recovery scheduling can cause spread out of tasks [FLINK-9646] - ExecutionGraphCoLocationRestar [...]
This release includes 27 fixes and minor improvements for Flink 1.7.0. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.7.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.7.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.7.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-10252] - Handle oversized metric messages [FLINK-10367] - Avoid recursion stack overflow during releasing SingleInputGate [FLINK-10522] - Check if RecoverableWriter supportsResume and act accordingly. [FLINK-10963] - Cleanup small objects uploaded to S3 as independent objects Bug [FLINK-8336] - YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability [FLINK-9646] - ExecutionGraphCoLocationRestartTest.testConstraintsAfterRestart failed on Travis [FLINK-10149 [...]
+Sub-task [FLINK-10252] - Handle oversized metric messages [FLINK-10367] - Avoid recursion stack overflow during releasing SingleInputGate [FLINK-10522] - Check if RecoverableWriter supportsResume and act accordingly. [FLINK-10963] - Cleanup small objects uploaded to S3 as independent objects Bug [FLINK-8336] - YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability [FLINK-9646] - ExecutionGraphCoLocationRestartTest.testConstraintsAfterRestart failed on Travis [FLINK-10149 [...]
Flink 1.7.0 is API-compatible with previous 1.x.y releases for APIs annotated with the @Public annotation. The release is available now and we encourage everyone to download the release and check out the updated documentation. Feedback through the Flink mailing lists or JIRA is, as always, very much appreciated!
You can find the binaries on the updated Downloads page on the Flink project site.
Flink 1.7.0 - Extending the reach of Stream Processing # In Flink 1.7.0 we come closer to our goals of enabling fast data processing and building data-intensive applications for the Flink community in a seamless way. Our latest release includes some exciting new features and improvements such as support for Scala 2.12, an exactly-once S3 file sink, the integration of complex event processing with streaming SQL and more features that we explain below.
@@ -4670,37 +4692,37 @@ Removal of Flink’s Legacy Mode (FLINK-10392): Apache Flink 1.7.0 marks the rel
Release Notes # Please review the release notes if you plan to upgrade your Flink setup to Flink 1.7.
List of Contributors # We would like to acknowledge all community members for contributing to this release. Special credits go to the following members for contributing to the 1.7.0 release (according to git):
Aitozi, Alex Arkhipov, Alexander Koltsov, Alexey Trenikhin, Alice, Alice Yan, Aljoscha Krettek, Andrei Poluliakh, Andrey Zagrebin, Ashwin Sinha, Barisa Obradovic, Ben La Monica, Benoit Meriaux, Bowen Li, Chesnay Schepler, Christophe Jolif, Congxian Qiu, Craig Foster, David Anderson, Dawid Wysakowicz, Dian Fu, Diego Carvallo, Dimitris Palyvos, Eugen Yushin, Fabian Hueske, Florian Schmidt, Gary Yao, Guibo Pan, Hequn Cheng, Hiroaki Yoshida, Igal Shilman, JIN SUN, Jamie Grier, Jayant Ameta, [...]
-`}),e.add({id:238,href:"/2018/10/29/apache-flink-1.5.5-released/",title:"Apache Flink 1.5.5 Released",section:"Flink Blog",content:`The Apache Flink community released the fifth bugfix version of the Apache Flink 1.5 series.
+`}),e.add({id:239,href:"/2018/10/29/apache-flink-1.5.5-released/",title:"Apache Flink 1.5.5 Released",section:"Flink Blog",content:`The Apache Flink community released the fifth bugfix version of the Apache Flink 1.5 series.
This release includes more than 20 fixes and minor improvements for Flink 1.5.4. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.5.5.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-10242] - Latency marker interval should be configurable [FLINK-10243] - Add option to reduce latency metrics granularity [FLINK-10331] - Reduce number of flush requests to the network stack [FLINK-10332] - Move data available notification in PipelinedSubpartition out of the synchronized block Bug [FLINK-5542] - YARN client incorrectly uses local YARN config to check vcore capacity [FLINK-9567] - Flink does not release resource in Yarn Cluster mode [FLINK-9788] - Execution [...]
+Sub-task [FLINK-10242] - Latency marker interval should be configurable [FLINK-10243] - Add option to reduce latency metrics granularity [FLINK-10331] - Reduce number of flush requests to the network stack [FLINK-10332] - Move data available notification in PipelinedSubpartition out of the synchronized block Bug [FLINK-5542] - YARN client incorrectly uses local YARN config to check vcore capacity [FLINK-9567] - Flink does not release resource in Yarn Cluster mode [FLINK-9788] - Execution [...]
This release includes more than 30 fixes and minor improvements for Flink 1.6.1. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.6.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.6.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-10242] - Latency marker interval should be configurable [FLINK-10243] - Add option to reduce latency metrics granularity [FLINK-10331] - Reduce number of flush requests to the network stack [FLINK-10332] - Move data available notification in PipelinedSubpartition out of the synchronized block Bug [FLINK-5542] - YARN client incorrectly uses local YARN config to check vcore capacity [FLINK-9567] - Flink does not release resource in Yarn Cluster mode [FLINK-9788] - Execution [...]
+Sub-task [FLINK-10242] - Latency marker interval should be configurable [FLINK-10243] - Add option to reduce latency metrics granularity [FLINK-10331] - Reduce number of flush requests to the network stack [FLINK-10332] - Move data available notification in PipelinedSubpartition out of the synchronized block Bug [FLINK-5542] - YARN client incorrectly uses local YARN config to check vcore capacity [FLINK-9567] - Flink does not release resource in Yarn Cluster mode [FLINK-9788] - Execution [...]
This release includes more than 20 fixes and minor improvements for Flink 1.5.4. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.5.4.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Bug [FLINK-9878] - IO worker threads BLOCKED on SSL Session Cache while CMS full gc [FLINK-10011] - Old job resurrected during HA failover [FLINK-10101] - Mesos web ui url is missing. [FLINK-10115] - Content-length limit is also applied to FileUploads [FLINK-10116] - createComparator fails on case class with Unit type fields prior to the join-key [FLINK-10141] - Reduce lock contention introduced with 1.5 [FLINK-10142] - Reduce synchronization overhead for credit notifications [FLINK-1015 [...]
+Bug [FLINK-9878] - IO worker threads BLOCKED on SSL Session Cache while CMS full gc [FLINK-10011] - Old job resurrected during HA failover [FLINK-10101] - Mesos web ui url is missing. [FLINK-10115] - Content-length limit is also applied to FileUploads [FLINK-10116] - createComparator fails on case class with Unit type fields prior to the join-key [FLINK-10141] - Reduce lock contention introduced with 1.5 [FLINK-10142] - Reduce synchronization overhead for credit notifications [FLINK-1015 [...]
This release includes 60 fixes and minor improvements for Flink 1.6.1. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.6.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-9637] - Add public user documentation for TTL feature [FLINK-10068] - Add documentation for async/RocksDB-based timers [FLINK-10085] - Update AbstractOperatorRestoreTestBase [FLINK-10087] - Update BucketingSinkMigrationTest [FLINK-10089] - Update FlinkKafkaConsumerBaseMigrationTest [FLINK-10090] - Update ContinuousFileProcessingMigrationTest [FLINK-10091] - Update WindowOperatorMigrationTest [FLINK-10092] - Update StatefulJobSavepointMigrationITCase [FLINK-10109] - Add do [...]
+Sub-task [FLINK-9637] - Add public user documentation for TTL feature [FLINK-10068] - Add documentation for async/RocksDB-based timers [FLINK-10085] - Update AbstractOperatorRestoreTestBase [FLINK-10087] - Update BucketingSinkMigrationTest [FLINK-10089] - Update FlinkKafkaConsumerBaseMigrationTest [FLINK-10090] - Update ContinuousFileProcessingMigrationTest [FLINK-10091] - Update WindowOperatorMigrationTest [FLINK-10092] - Update StatefulJobSavepointMigrationITCase [FLINK-10109] - Add do [...]
This release includes more than 20 fixes and minor improvements for Flink 1.5.3. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.5.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-9951] - Update scm developerConnection Bug [FLINK-5750] - Incorrect translation of n-ary Union [FLINK-9289] - Parallelism of generated operators should have max parallism of input [FLINK-9546] - The heartbeatTimeoutIntervalMs of HeartbeatMonitor should be larger than 0 [FLINK-9655] - Externalized checkpoint E2E test fails on travis [FLINK-9693] - Possible memory leak in jobmanager retaining archived checkpoints [FLINK-9694] - Potentially NPE in CompositeTypeSerializerConf [...]
+Sub-task [FLINK-9951] - Update scm developerConnection Bug [FLINK-5750] - Incorrect translation of n-ary Union [FLINK-9289] - Parallelism of generated operators should have max parallism of input [FLINK-9546] - The heartbeatTimeoutIntervalMs of HeartbeatMonitor should be larger than 0 [FLINK-9655] - Externalized checkpoint E2E test fails on travis [FLINK-9693] - Possible memory leak in jobmanager retaining archived checkpoints [FLINK-9694] - Potentially NPE in CompositeTypeSerializerConf [...]
Flink 1.6.0 is the seventh major release in the 1.x.y series. It is API-compatible with previous 1.x.y releases for APIs annotated with the @Public annotation.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists or JIRA is, as always, very much appreciated!
You can find the binaries on the updated Downloads page on the Flink project site.
@@ -4731,19 +4753,19 @@ Intra-Cluster Mutual Authentication (FLINK-9312): Flink’s cluster components n
Release Notes # Please review the release notes if you plan to upgrade your Flink setup to Flink 1.6.
List of Contributors # According to git shortlog, the following 112 people contributed to the 1.6.0 release. Thanks to all contributors!
Alejandro Alcalde, Alexander Koltsov, Alexey Tsitkin, Aljoscha Krettek, Andreas Fink, Andrey Zagrebin, Arunan Sugunakumar, Ashwin Sinha, Bill Lee, Bowen Li, Chesnay Schepler, Christophe Jolif, Clément Tamisier, Craig Foster, David Anderson, Dawid Wysakowicz, Deepak Sharnma, Dmitrii_Kniazev, EAlexRojas, Elias Levy, Eron Wright, Ethan Li, Fabian Hueske, Florian Schmidt, Franz Thoma, Gabor Gevay, Georgii Gobozov, Haohui Mai, Jamie Grier, Jeff Zhang, Jelmer Kuperus, Jiayi Liao, Jungtaek Lim, [...]
-`}),e.add({id:244,href:"/2018/07/31/apache-flink-1.5.2-released/",title:"Apache Flink 1.5.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.5 series.
+`}),e.add({id:245,href:"/2018/07/31/apache-flink-1.5.2-released/",title:"Apache Flink 1.5.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.5 series.
This release includes more than 20 fixes and minor improvements for Flink 1.5.1. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.5.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-9839] - End-to-end test: Streaming job with SSL Bug [FLINK-5750] - Incorrect translation of n-ary Union [FLINK-8161] - Flakey YARNSessionCapacitySchedulerITCase on Travis [FLINK-8731] - TwoInputStreamTaskTest flaky on travis [FLINK-9091] - Failure while enforcing releasability in building flink-json module [FLINK-9380] - Failing end-to-end tests should not clean up logs [FLINK-9439] - DispatcherTest#testJobRecovery dead locks [FLINK-9575] - Potential race condition when r [...]
+Sub-task [FLINK-9839] - End-to-end test: Streaming job with SSL Bug [FLINK-5750] - Incorrect translation of n-ary Union [FLINK-8161] - Flakey YARNSessionCapacitySchedulerITCase on Travis [FLINK-8731] - TwoInputStreamTaskTest flaky on travis [FLINK-9091] - Failure while enforcing releasability in building flink-json module [FLINK-9380] - Failing end-to-end tests should not clean up logs [FLINK-9439] - DispatcherTest#testJobRecovery dead locks [FLINK-9575] - Potential race condition when r [...]
This release includes more than 60 fixes and minor improvements for Flink 1.5.0. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.5.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-8977] - End-to-end test: Manually resume job after terminal failure [FLINK-8982] - End-to-end test: Queryable state [FLINK-8989] - End-to-end test: ElasticSearch connector [FLINK-8996] - Include an operator with broadcast and union state [FLINK-9008] - End-to-end test: Quickstarts [FLINK-9320] - Update \`test-ha.sh\` end-to-end test to use general purpose DataStream job [FLINK-9322] - Add exception throwing map function that simulates failures to the general purpose DataS [...]
+Sub-task [FLINK-8977] - End-to-end test: Manually resume job after terminal failure [FLINK-8982] - End-to-end test: Queryable state [FLINK-8989] - End-to-end test: ElasticSearch connector [FLINK-8996] - Include an operator with broadcast and union state [FLINK-9008] - End-to-end test: Quickstarts [FLINK-9320] - Update \`test-ha.sh\` end-to-end test to use general purpose DataStream job [FLINK-9322] - Add exception throwing map function that simulates failures to the general purpose DataS [...]
Flink 1.5.0 is the sixth major release in the 1.x.y series. As usual, it is API-compatible with previous 1.x.y releases for APIs annotated with the @Public annotation.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists or JIRA is, as always, very much appreciated!
You can find the binaries on the updated Downloads page on the Flink project site.
@@ -4770,19 +4792,19 @@ SELECT u.name, u.address, o.productId, o.amount FROM Users u JOIN Orders o ON u.
Various Other Features and Improvements # OpenStack provides software for creating public and private clouds on pools of resources. Flink now supports OpenStack’s S3-like file system, Swift, for checkpoint and savepoint storage. Swift can be used without Hadoop dependencies. Reading and writing JSON messages from and to connectors has been improved. It’s now possible to parse a standard JSON schema in order to configure serializers and deserializers. The SQL CLI Client is able to read JS [...]
List of Contributors # According to git shortlog, the following 106 people contributed to the 1.5.0 release. Thanks to all contributors!
Aegeaner, Alejandro Alcalde, Aljoscha Krettek, Andreas Fink, Andrey Zagrebin, Ankit Parashar, Arunan Sugunakumar, Bartłomiej Tartanus, Bowen Li, Cristian, Dan Kelley, David Anderson, Dawid Wysakowicz, Dian Fu, Dmitrii_Kniazev, Dyana Rose, EAlexRojas, Eron Wright, Fabian Hueske, Florian Schmidt, Gabor Gevay, Greg Hogan, Gyula Fora, Jark Wu, Jelmer Kuperus, Joerg Schad, John Eismeier, Kailash HD, Ken Geis, Ken Krugler, Kent Murra, Leonid Ishimnikov, Malcolm Taylor, Matrix42, Michael Fong, [...]
-`}),e.add({id:247,href:"/2018/03/15/apache-flink-1.3.3-released/",title:"Apache Flink 1.3.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.3 series.
+`}),e.add({id:248,href:"/2018/03/15/apache-flink-1.3.3-released/",title:"Apache Flink 1.3.3 Released",section:"Flink Blog",content:`The Apache Flink community released the third bugfix version of the Apache Flink 1.3 series.
This release includes 4 critical fixes related to checkpointing and recovery. The list below includes a detailed list of all fixes.
We highly recommend all Flink 1.3 series users to upgrade to Flink 1.3.3.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.3.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.3.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-7783] - Don't always remove checkpoints in ZooKeeperCompletedCheckpointStore#recover() Bug [FLINK-7283] - PythonPlanBinderTest issues with python paths [FLINK-8487] - State loss after multiple restart attempts [FLINK-8807] - ZookeeperCompleted checkpoint store can get stuck in infinite loop Improvement [FLINK-8890] - Compare checkpoints with order in CompletedCheckpoint.checkpointsMatch() `}),e.add({id:248,href:"/2018/03/08/apache-flink-1.4.2-released/",title:"Apache [...]
+Sub-task [FLINK-7783] - Don't always remove checkpoints in ZooKeeperCompletedCheckpointStore#recover() Bug [FLINK-7283] - PythonPlanBinderTest issues with python paths [FLINK-8487] - State loss after multiple restart attempts [FLINK-8807] - ZookeeperCompleted checkpoint store can get stuck in infinite loop Improvement [FLINK-8890] - Compare checkpoints with order in CompletedCheckpoint.checkpointsMatch() `}),e.add({id:249,href:"/2018/03/08/apache-flink-1.4.2-released/",title:"Apache [...]
This release includes more than 10 fixes and minor improvements for Flink 1.4.1. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.4.2.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.4.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.4.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-6321] - RocksDB state backend Checkpointing is not working with KeyedCEP. [FLINK-7756] - RocksDB state backend Checkpointing (Async and Incremental) is not working with CEP. Bug [FLINK-8423] - OperatorChain#pushToOperator catch block may fail with NPE [FLINK-8451] - CaseClassSerializer is not backwards compatible in 1.4 [FLINK-8520] - CassandraConnectorITCase.testCassandraTableSink unstable on Travis [FLINK-8621] - PrometheusReporterTest.endpointIsUnavailableAfterReporter [...]
+Sub-task [FLINK-6321] - RocksDB state backend Checkpointing is not working with KeyedCEP. [FLINK-7756] - RocksDB state backend Checkpointing (Async and Incremental) is not working with CEP. Bug [FLINK-8423] - OperatorChain#pushToOperator catch block may fail with NPE [FLINK-8451] - CaseClassSerializer is not backwards compatible in 1.4 [FLINK-8520] - CassandraConnectorITCase.testCassandraTableSink unstable on Travis [FLINK-8621] - PrometheusReporterTest.endpointIsUnavailableAfterReporter [...]
Apache Flink 1.4.0, released in December 2017, introduced a significant milestone for stream processing with Flink: a new feature called TwoPhaseCommitSinkFunction (relevant Jira here) that extracts the common logic of the two-phase commit protocol and makes it possible to build end-to-end exactly-once applications with Flink and a selection of data sources and sinks, including Apache Kafka versions 0.11 and beyond. It provides a layer of abstraction and requires a user to implement only [...]
If that’s all you need to hear, let us point you to the relevant place in the Flink documentation, where you can read about how to put TwoPhaseCommitSinkFunction to use.
But if you’d like to learn more, in this post, we’ll share an in-depth overview of the new feature and what is happening behind the scenes in Flink.
@@ -4821,13 +4843,13 @@ There are a handful of other edge cases that TwoPhaseCommitSinkFunction takes in
Wrapping Up # If you’ve made it this far, thanks for staying with us through a detailed post. Here are some key points that we covered:
Flink’s checkpointing system serves as Flink’s basis for supporting a two-phase commit protocol and providing end-to-end exactly-once semantics. An advantage of this approach is that Flink does not materialize data in transit the way that some other systems do–there’s no need to write every stage of the computation to disk as is the case is most batch processing. Flink’s new TwoPhaseCommitSinkFunction extracts the common logic of the two-phase commit protoco [...]
This post first appeared on the data Artisans blog and was contributed to Apache Flink and the Flink blog by the original authors Piotr Nowojski and Mike Winters.
-`}),e.add({id:250,href:"/2018/02/15/apache-flink-1.4.1-released/",title:"Apache Flink 1.4.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.4 series.
+`}),e.add({id:251,href:"/2018/02/15/apache-flink-1.4.1-released/",title:"Apache Flink 1.4.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.4 series.
This release includes more than 60 fixes and minor improvements for Flink 1.4.0. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.4.1.
Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-6321] - RocksDB state backend Checkpointing is not working with KeyedCEP. [FLINK-7499] - double buffer release in SpillableSubpartitionView [FLINK-7756] - RocksDB state backend Checkpointing (Async and Incremental) is not working with CEP. [FLINK-7760] - Restore failing from external checkpointing metadata. [FLINK-8323] - Fix Mod scala function bug Bug [FLINK-5506] - Java 8 - CommunityDetection.java:158 - java.lang.NullPointerException [FLINK-6951] - Incompatible versions [...]
+Sub-task [FLINK-6321] - RocksDB state backend Checkpointing is not working with KeyedCEP. [FLINK-7499] - double buffer release in SpillableSubpartitionView [FLINK-7756] - RocksDB state backend Checkpointing (Async and Incremental) is not working with CEP. [FLINK-7760] - Restore failing from external checkpointing metadata. [FLINK-8323] - Fix Mod scala function bug Bug [FLINK-5506] - Java 8 - CommunityDetection.java:158 - java.lang.NullPointerException [FLINK-6951] - Incompatible versions [...]
State is a fundamental, enabling concept in stream processing required for a majority of complex use cases. Some examples highlighted in the Flink documentation:
When an application searches for certain event patterns, the state stores the sequence of events encountered so far. When aggregating events per minute, the state holds the pending aggregates. When training a machine learning model over a stream of data points, the state holds the current version of the model parameters. However, stateful stream processing is only useful in production environments if the state is fault tolerant. “Fault tolerance” means that even if there&rsqu [...]
Flink’s fault tolerance has always been a powerful and popular feature, minimizing the impact of software or machine failure on your business and making it possible to guarantee exactly-once results from a Flink application.
@@ -4853,7 +4875,7 @@ Restoring Checkpoints and Performance Considerations # If you enable incremental
Though the feature can lead to a substantial improvement in checkpoint time for users with a large state, there are trade-offs to consider with incremental checkpointing. Overall, the process reduces the checkpointing time during normal operations but can lead to a longer recovery time depending on the size of your state. If the cluster failure is particularly severe and the Flink TaskManagers have to read from multiple checkpoints, recovery can be a slower operation than when using non- [...]
There are some strategies for improving the convenience/performance trade-off, and I recommend you read the Flink documentation for more details.
This post originally appeared on the data Artisans blog and was contributed to the Flink blog by Stefan Richter and Chris Ward.
-`}),e.add({id:252,href:"/2017/12/21/apache-flink-in-2017-year-in-review/",title:"Apache Flink in 2017: Year in Review",section:"Flink Blog",content:`2017 was another exciting year for the Apache Flink® community, with 3 major version releases (Flink 1.2.0 in February, Flink 1.3.0 in June, and Flink 1.4.0 in December) and the first-ever Flink Forward in San Francisco, giving Flink community members in another corner of the globe an opportunity to connect. Users shared details about their [...]
+`}),e.add({id:253,href:"/2017/12/21/apache-flink-in-2017-year-in-review/",title:"Apache Flink in 2017: Year in Review",section:"Flink Blog",content:`2017 was another exciting year for the Apache Flink® community, with 3 major version releases (Flink 1.2.0 in February, Flink 1.3.0 in June, and Flink 1.4.0 in December) and the first-ever Flink Forward in San Francisco, giving Flink community members in another corner of the globe an opportunity to connect. Users shared details about their [...]
In this post, we’ll look back on the project’s progress over the course of 2017, and we’ll also preview what 2018 has in store.
{%toc%}
Community Growth # Github # First, here’s a summary of community statistics from GitHub. At the time of writing:
@@ -4881,7 +4903,7 @@ Looking ahead to 2018 # A good source of information about the Flink community&r
Work is already underway on a number of these features, and some will be included in Flink 1.5 at the beginning of 2018.
Improved BLOB storage architecture, as described in FLIP-19 to consolidate API usage and improve concurrency. Integration of SQL and CEP, as described in FLIP-20 to allow developers to create complex event processing (CEP) patterns using SQL statements. Unified checkpoints and savepoints, as described in FLIP-10, to allow savepoints to be triggered automatically–important for program updates for the sake of error handling because savepoints allow the user to modify both the job and Flink [...]
Lastly, we’d like to extend a sincere thank you to all the Flink community for making 2017 a great year!
-`}),e.add({id:253,href:"/2017/12/12/apache-flink-1.4.0-release-announcement/",title:"Apache Flink 1.4.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the 1.4.0 release. Over the past 5 months, the Flink community has been working hard to resolve more than 900 issues. See the complete changelog for more detail.
+`}),e.add({id:254,href:"/2017/12/12/apache-flink-1.4.0-release-announcement/",title:"Apache Flink 1.4.0 Release Announcement",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the 1.4.0 release. Over the past 5 months, the Flink community has been working hard to resolve more than 900 issues. See the complete changelog for more detail.
This is the fifth major release in the 1.x.y series. It is API-compatible with the other 1.x.y releases for APIs annotated with the @Public annotation.
We encourage everyone to download the release and check out the documentation.
Feedback through the Flink mailing lists is, as always, gladly encouraged!
@@ -4926,7 +4948,7 @@ This also means that in cases where you used connectors to HDFS, such as the Buc
Bundled S3 FileSystems # Flink 1.4 comes bundled with two different S3 FileSystems based on the Presto S3 FileSystem and the Hadoop S3A FileSystem. They don’t have dependencies (because all dependencies are shaded/relocated) and you can use them by dropping the respective file from the opt directory into the lib directory of your Flink installation. For more information about this, please refer to the documentation.
List of Contributors # According to git shortlog, the following 106 people contributed to the 1.4.0 release. Thank you to all contributors!
Ajay Tripathy, Alejandro Alcalde, Aljoscha Krettek, Bang, Phiradet, Bowen Li, Chris Ward, Cristian, Dan Kelley, David Anderson, Dawid Wysakowicz, Dian Fu, Dmitrii Kniazev, DmytroShkvyra, Fabian Hueske, FlorianFan, Fokko Driesprong, Gabor Gevay, Gary Yao, Greg Hogan, Haohui Mai, Hequn Cheng, James Lafa, Jark Wu, Jie Shen, Jing Fan, JingsongLi, Joerg Schad, Juan Paulo Gutierrez, Ken Geis, Kent Murra, Kurt Young, Lim Chee Hau, Maximilian Bode, Michael Fong, Mike Kobit, Mikhail Lipkovich, Ni [...]
-`}),e.add({id:254,href:"/2017/11/21/looking-ahead-to-apache-flink-1.4.0-and-1.5.0/",title:"Looking Ahead to Apache Flink 1.4.0 and 1.5.0",section:"Flink Blog",content:`The Apache Flink 1.4.0 release is on track to happen in the next couple of weeks, and for all of the readers out there who haven’t been following the release discussion on Flink’s developer mailing list, we’d like to provide some details on what’s coming in Flink 1.4.0 as well as a preview of what the Flink community will [...]
+`}),e.add({id:255,href:"/2017/11/21/looking-ahead-to-apache-flink-1.4.0-and-1.5.0/",title:"Looking Ahead to Apache Flink 1.4.0 and 1.5.0",section:"Flink Blog",content:`The Apache Flink 1.4.0 release is on track to happen in the next couple of weeks, and for all of the readers out there who haven’t been following the release discussion on Flink’s developer mailing list, we’d like to provide some details on what’s coming in Flink 1.4.0 as well as a preview of what the Flink community will [...]
Both releases include ambitious features that we believe will move Flink to an entirely new level in terms of the types of problems it can solve and applications it can support. The community deserves lots of credit for its hard work over the past few months, and we’re excited to see these features in the hands of users.
This post will describe how the community plans to get there and the rationale behind the approach.
Coming soon: Major Changes to Flink’s Runtime # There are 3 significant improvements to the Apache Flink engine that the community has nearly completed and that will have a meaningful impact on Flink’s operability and performance.
@@ -4947,7 +4969,7 @@ The soon-to-be-released Flink 1.4 represents the current state of Flink without
A significantly improved dependency structure, removing many of Flink’s dependencies and subtle runtime conflicts. This increases overall stability and removes friction when embedding Flink or calling Flink “library style”. Reversed class loading for dynamically-loaded user code, allowing for different dependencies than those included in the core framework. An Apache Kafka 0.11 exactly-once producer, making it possible to build end-to-end exactly once applications with Flink [...]
We’re excited by what each of these represents for Apache Flink, and we’d like to extend our thanks to the Flink community for all of their hard work.
If you’d like to follow along with release discussions, please subscribe to the dev@ mailing list.
-`}),e.add({id:255,href:"/2017/08/05/apache-flink-1.3.2-released/",title:"Apache Flink 1.3.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.3 series.
+`}),e.add({id:256,href:"/2017/08/05/apache-flink-1.3.2-released/",title:"Apache Flink 1.3.2 Released",section:"Flink Blog",content:`The Apache Flink community released the second bugfix version of the Apache Flink 1.3 series.
This release includes more than 60 fixes and minor improvements for Flink 1.3.1. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.3.2.
Important Notice: A user reported a bug in the FlinkKafkaConsumer (FLINK-7143) that is causing incorrect partition assignment in large Kafka deployments in the presence of inconsistent broker metadata. In that case multiple parallel instances of the FlinkKafkaConsumer may read from the same topic partition, leading to data duplication. In Flink 1.3.2 this bug is fixed but incorrect assignments from Flink 1.3.0 and 1.3.1 cannot be automatically fixed by upgrading to Flink 1.3.2 via a save [...]
@@ -4956,7 +4978,7 @@ Notable changes:
The default Kafka version for Flink Kafka Consumer 0.10 was bumped from 0.10.0.1 to 0.10.2.1. Some default values for configurations of AWS API call behaviors in the Flink Kinesis Consumer were adapted for better default consumption performance: 1) SHARD_GETRECORDS_MAX default changed to 10,000, and 2) SHARD_GETRECORDS_INTERVAL_MILLIS default changed to 200ms. Updated Maven dependencies:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
List of resolved issues:
-Sub-task [FLINK-6665] - Pass a ScheduledExecutorService to the RestartStrategy [FLINK-6667] - Pass a callback type to the RestartStrategy, rather than the full ExecutionGraph [FLINK-6680] - App & Flink migration guide: updates for the 1.3 release Bug [FLINK-5488] - yarnClient should be closed in AbstractYarnClusterDescriptor for error conditions [FLINK-6376] - when deploy flink cluster on the yarn, it is lack of hdfs delegation token. [FLINK-6541] - Jar upload directory not created [ [...]
+Sub-task [FLINK-6665] - Pass a ScheduledExecutorService to the RestartStrategy [FLINK-6667] - Pass a callback type to the RestartStrategy, rather than the full ExecutionGraph [FLINK-6680] - App & Flink migration guide: updates for the 1.3 release Bug [FLINK-5488] - yarnClient should be closed in AbstractYarnClusterDescriptor for error conditions [FLINK-6376] - when deploy flink cluster on the yarn, it is lack of hdfs delegation token. [FLINK-6541] - Jar upload directory not created [ [...]
In contrast, operators in stateless stream processing only consider their current inputs, without further context and knowledge about the past. A simple example to illustrate this difference: let us consider a source stream that emits events with schema e = {event_id:int, event_value:int}. Our goal is, for each event, to extract and output the event_value. We can easily achieve this with a simple source-map-sink pipeline, where the map function extracts the event_value from the event and [...]
But what if we want to modify our job to output the event_value only if it is larger than the value from the previous event? In this case, our map function obviously needs some way to remember the event_value from a past event — and so this is an instance of stateful stream processing.
This example should demonstrate that state is a fundamental, enabling concept in stream processing that is required for a majority of interesting use cases.
@@ -5006,7 +5028,7 @@ Flink 1.3.0, which was released earlier this month, adds more tooling for state
…for Flink 1.4.0 and beyond.
If you’d like to learn more, we recommend starting with the Apache Flink documentation.
This is an excerpt from a post that originally appeared on the data Artisans blog. If you’d like to read the original post in its entirety, you can find it here (external link).
-`}),e.add({id:257,href:"/2017/06/23/apache-flink-1.3.1-released/",title:"Apache Flink 1.3.1 Released",section:"Flink Blog",content:"The Apache Flink community released the first bugfix version of the Apache Flink 1.3 series.\nThis release includes 50 fixes and minor improvements for Flink 1.3.0. The list below includes a detailed list of all fixes.\nWe highly recommend all users to upgrade to Flink 1.3.1.\n<dependency> <groupId>org.apache.flink</groupId> <artifactId& [...]
+`}),e.add({id:258,href:"/2017/06/23/apache-flink-1.3.1-released/",title:"Apache Flink 1.3.1 Released",section:"Flink Blog",content:"The Apache Flink community released the first bugfix version of the Apache Flink 1.3 series.\nThis release includes 50 fixes and minor improvements for Flink 1.3.0. The list below includes a detailed list of all fixes.\nWe highly recommend all users to upgrade to Flink 1.3.1.\n<dependency> <groupId>org.apache.flink</groupId> <artifactId& [...]
This is the fourth major release in the 1.x.y series. It is API compatible with the other 1.x.y releases for APIs annotated with the @Public annotation.
Users can expect Flink releases now in a 4 month cycle. At the beginning of the 1.3 release cycle, the community decided to follow a strict time-based release model.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, gladly encouraged!
@@ -5047,7 +5069,7 @@ Support for different continuity requirements (FLINK-6208)
Support for iterative conditions (FLINK-6197)
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-6775: StateDescriptor cannot be shared by multiple subtasks List of Contributors # According to git shortlog, the following 103 [...]
Addison Higham, Alexey Diomin, Aljoscha Krettek, Andrea Sella, Andrey Melentyev, Anton Mushin, barcahead, biao.liub, Bowen Li, Chen Qin, Chico Sokol, David Anderson, Dawid Wysakowicz, DmytroShkvyra, Fabian Hueske, Fabian Wollert, fengyelei, Flavio Pompermaier, FlorianFan, Fokko Driesprong, Geoffrey Mon, godfreyhe, gosubpl, Greg Hogan, guowei.mgw, hamstah, Haohui Mai, Hequn Cheng, hequn.chq, heytitle, hongyuhong, Jamie Grier, Jark Wu, jingzhang, Jinkui Shi, Jin Mingjian, Joerg Schad, Josh [...]
-`}),e.add({id:259,href:"/2017/05/16/introducing-docker-images-for-apache-flink/",title:"Introducing Docker Images for Apache Flink",section:"Flink Blog",content:`For some time, the Apache Flink community has provided scripts to build a Docker image to run Flink. Now, starting with version 1.2.1, Flink will have a Docker image on the Docker Hub. This image is maintained by the Flink community and curated by the Docker team to ensure it meets the quality standards for container images of t [...]
+`}),e.add({id:260,href:"/2017/05/16/introducing-docker-images-for-apache-flink/",title:"Introducing Docker Images for Apache Flink",section:"Flink Blog",content:`For some time, the Apache Flink community has provided scripts to build a Docker image to run Flink. Now, starting with version 1.2.1, Flink will have a Docker image on the Docker Hub. This image is maintained by the Flink community and curated by the Docker team to ensure it meets the quality standards for container images of t [...]
A community-maintained way to run Apache Flink on Docker and other container runtimes and orchestrators is part of the ongoing effort by the Flink community to make Flink a first-class citizen of the container world.
If you want to use the Docker image today you can get the latest version by running:
docker pull flink And to run a local Flink cluster with one TaskManager and the Web UI exposed on port 8081, run:
@@ -5055,12 +5077,12 @@ docker run -t -p 8081:8081 flink local With this image there are various ways to
While this announcement is an important milestone, it’s just the first step to help users run containerized Flink in production. There are improvements to be made in Flink itself and we will continue to improve these Docker images and for the documentation and examples surrounding them.
This is of course a team effort, so any contribution is welcome. The docker-flink GitHub organization hosts the source files to generate the images and the documentation that is presented alongside the images on Docker Hub.
Disclaimer: The docker images are provided as a community project by individuals on a best-effort basis. They are not official releases by the Apache Flink PMC.
-`}),e.add({id:260,href:"/2017/04/26/apache-flink-1.2.1-released/",title:"Apache Flink 1.2.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.2 series.
+`}),e.add({id:261,href:"/2017/04/26/apache-flink-1.2.1-released/",title:"Apache Flink 1.2.1 Released",section:"Flink Blog",content:`The Apache Flink community released the first bugfix version of the Apache Flink 1.2 series.
This release includes many critical fixes for Flink 1.2.0. The list below includes a detailed list of all fixes.
We highly recommend all users to upgrade to Flink 1.2.1.
Please note that there are two unresolved major issues in Flink 1.2.1 and 1.2.0:
FLINK-6353 Restoring using CheckpointedRestoring does not work from 1.2 to 1.2 FLINK-6188 Some setParallelism() methods can’t cope with default parallelism <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.2.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.2.1</ver [...]
-Release Notes - Flink - Version 1.2.1 Sub-task [FLINK-5546] - java.io.tmpdir setted as project build directory in surefire plugin [FLINK-5640] - configure the explicit Unit Test file suffix [FLINK-5723] - Use "Used" instead of "Initial" to make taskmanager tag more readable [FLINK-5825] - In yarn mode, a small pic can not be loaded Bug [FLINK-4813] - Having flink-test-utils as a dependency outside Flink fails the build [FLINK-4848] - keystoreFilePath should be checked [...]
+Release Notes - Flink - Version 1.2.1 Sub-task [FLINK-5546] - java.io.tmpdir setted as project build directory in surefire plugin [FLINK-5640] - configure the explicit Unit Test file suffix [FLINK-5723] - Use "Used" instead of "Initial" to make taskmanager tag more readable [FLINK-5825] - In yarn mode, a small pic can not be loaded Bug [FLINK-4813] - Having flink-test-utils as a dependency outside Flink fails the build [FLINK-4848] - keystoreFilePath should be checked [...]
Apache Flink is very well suited to power streaming analytics applications because it provides support for event-time semantics, stateful exactly-once processing, and achieves high throughput and low latency at the same time. Due to these features, Flink is able to compute exact and deterministic results from high-volume input streams in near real-time while providing exactly-once semantics in case of failures.
Flink’s core API for stream processing, the DataStream API, is very expressive and provides primitives for many common operations. Among other features, it offers highly customizable windowing logic, different state primitives with varying performance characteristics, hooks to register and react on timers, and tooling for efficient asynchronous requests to external systems. On the other hand, many stream analytics applications follow similar patterns and do not require the level of [...]
Why is SQL on Streams a Big Deal? # SQL is the most widely used language for data analytics for many good reasons:
@@ -5102,7 +5124,7 @@ What will Change When Switching to Dynamic Tables? # In version 1.2, all streami
The answer to all these questions is simple. The current processing model is a subset of the dynamic table model. Using the terminology we introduced in this post, the current model converts a stream into a dynamic table in append mode, i.e., an infinitely growing table. Since all operators only accept insert changes and produce insert changes on their result table (i.e., emit new rows), all supported queries result in dynamic append tables, which are converted back into DataStreams usin [...]
Conclusion and Outlook # Flink’s relational APIs are great to implement stream analytics applications in no time and used in several production settings. In this blog post we discussed the future of the Table API and SQL. This effort will make Flink and stream processing accessible to more people. Moreover, the unified semantics for querying historic and real-time data as well as the concept of querying and maintaining dynamic tables will enable and significantly ease the implement [...]
In recent months, many members of the Flink community have been discussing and contributing to the relational APIs. We made great progress so far. While most work has focused on processing streams in append mode, the next steps on the agenda are to work on dynamic tables to support queries that update their results. If you are excited about the idea of processing streams with SQL and would like to contribute to this effort, please give feedback, join the discussions on the mailing list, [...]
-`}),e.add({id:262,href:"/2017/03/29/from-streams-to-tables-and-back-again-an-update-on-flinks-table-sql-api/",title:"From Streams to Tables and Back Again: An Update on Flink's Table & SQL API",section:"Flink Blog",content:`Stream processing can deliver a lot of value. Many organizations have recognized the benefit of managing large volumes of data in real-time, reacting quickly to trends, and providing customers with live services at scale. Streaming applications with well-defined busin [...]
+`}),e.add({id:263,href:"/2017/03/29/from-streams-to-tables-and-back-again-an-update-on-flinks-table-sql-api/",title:"From Streams to Tables and Back Again: An Update on Flink's Table & SQL API",section:"Flink Blog",content:`Stream processing can deliver a lot of value. Many organizations have recognized the benefit of managing large volumes of data in real-time, reacting quickly to trends, and providing customers with live services at scale. Streaming applications with well-defined busin [...]
Flink’s DataStream abstraction is a powerful API which lets you flexibly define both basic and complex streaming pipelines. Additionally, it offers low-level operations such as Async IO and ProcessFunctions. However, many users do not need such a deep level of flexibility. They need an API which quickly solves 80% of their use cases where simple tasks can be defined using little code.
To deliver the power of stream processing to a broader set of users, the Apache Flink community is developing APIs that provide simpler abstractions and more concise syntax so that users can focus on their business logic instead of advanced streaming concepts. Along with other APIs (such as CEP for complex event processing on streams), Flink offers a relational API that aims to unify stream and batch processing: the Table & SQL API, often referred to as the Table API.
Recently, contributors working for companies such as Alibaba, Huawei, data Artisans, and more decided to further develop the Table API. Over the past year, the Table API has been rewritten entirely. Since Flink 1.1, its core has been based on Apache Calcite, which parses SQL and optimizes all relational queries. Today, the Table API can address a wide range of use cases in both batch and stream environments with unified semantics.
@@ -5130,10 +5152,10 @@ Using the previously-mentioned customer table, let’s assume we want to produce
class PropertiesExtractor extends TableFunction[Row] { def eval(prefs: String): Unit = { // split string into (key, value) pairs val pairs = prefs .split(",") .map { kv => val split = kv.split("=") (split(0), split(1)) } val color = pairs.find(\\_.\\_1 == "color").map(\\_.\\_2) val size = pairs.find(\\_.\\_1 == "size").map(\\_.\\_2) // emit a row if color and size are specified (color, size) match { case (Some(c), Some(s)) => collect(Row.of(c, s)) ca [...]
Contributions like support of Apache Hive UDFs, external catalogs, more TableSources, additional windows, and more operators will make the Table API an even more useful tool. Particularly, the upcoming introduction of Dynamic Tables, which is worth a blog post of its own, shows that even in 2017, new relational APIs open the door to a number of possibilities.
Try it out, or even better, join the design discussions on the mailing lists and JIRA and start contributing!
-`}),e.add({id:263,href:"/2017/03/23/apache-flink-1.1.5-released/",title:"Apache Flink 1.1.5 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.1 series.
+`}),e.add({id:264,href:"/2017/03/23/apache-flink-1.1.5-released/",title:"Apache Flink 1.1.5 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.1 series.
This release includes critical fixes for HA recovery robustness, fault tolerance guarantees of the Flink Kafka Connector, as well as classloading issues with the Kryo serializer. We highly recommend all users to upgrade to Flink 1.1.5.
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.1.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.1.5</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
-Release Notes - Flink - Version 1.1.5 # Bug # [FLINK-5701] - FlinkKafkaProducer should check asyncException on checkpoints [FLINK-6006] - Kafka Consumer can lose state if queried partition list is incomplete on restore [FLINK-5940] - ZooKeeperCompletedCheckpointStore cannot handle broken state handles [FLINK-5942] - Harden ZooKeeperStateHandleStore to deal with corrupted data [FLINK-6025] - User code ClassLoader not used when KryoSerializer fallbacks to serialization for copying [FLINK-5 [...]
+Release Notes - Flink - Version 1.1.5 # Bug # [FLINK-5701] - FlinkKafkaProducer should check asyncException on checkpoints [FLINK-6006] - Kafka Consumer can lose state if queried partition list is incomplete on restore [FLINK-5940] - ZooKeeperCompletedCheckpointStore cannot handle broken state handles [FLINK-5942] - Harden ZooKeeperStateHandleStore to deal with corrupted data [FLINK-6025] - User code ClassLoader not used when KryoSerializer fallbacks to serialization for copying [FLINK-5 [...]
This is the third major release in the 1.x.y series. It is API compatible with the other 1.x.y releases for APIs annotated with the @Public annotation.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, gladly encouraged!
You can find the binaries on the updated Downloads page. Some highlights of the release are listed below.
@@ -5166,11 +5188,11 @@ Miscellaneous improvements # Metrics in Flink web interface: A metrics system wa
Kafka 0.10 support: Flink 1.2 now provides a connector for Apache Kafka 0.10.0.x, including support for consuming and producing messages with a timestamp using Flink’s internal event time (Kafka Connector Documentation)
Evictor Semantics: Flink 1.2 ships with more expressive evictor semantics that allow the programmer to evict elements form a window both before and after the application of the window function, and to remove elements arbitrarily (Evictor Semantics Documentation)
List of Contributors # According to git shortlog, the following 122 people contributed to the 1.2.0 release. Thank you to all contributors!
-Abhishek R. Singh Ahmad Ragab Aleksandr Chermenin Alexander Pivovarov Alexander Shoshin Alexey Diomin Aljoscha Krettek Andrey Melentyev Anton Mushin Bob Thorman Boris Osipov Bram Vogelaar Bruno Aranda David Anderson Dominik Evgeny_Kincharov Fabian Hueske Fokko Driesprong Gabor Gevay George Gordon Tai Greg Hogan Gyula Fora Haohui Mai Holger Frydrych HungUnicorn Ismaël Mejía Ivan Mushketyk Jakub Havlik Jark Wu Jendrik Poloczek Jincheng Sun Josh Joshi Keiji Yoshida Kirill Morozov Kurt Young [...]
+Abhishek R. Singh Ahmad Ragab Aleksandr Chermenin Alexander Pivovarov Alexander Shoshin Alexey Diomin Aljoscha Krettek Andrey Melentyev Anton Mushin Bob Thorman Boris Osipov Bram Vogelaar Bruno Aranda David Anderson Dominik Evgeny_Kincharov Fabian Hueske Fokko Driesprong Gabor Gevay George Gordon Tai Greg Hogan Gyula Fora Haohui Mai Holger Frydrych HungUnicorn Ismaël Mejía Ivan Mushketyk Jakub Havlik Jark Wu Jendrik Poloczek Jincheng Sun Josh Joshi Keiji Yoshida Kirill Morozov Kurt Young [...]
This release includes major robustness improvements for checkpoint cleanup on failures and consumption of intermediate streams. We highly recommend all users to upgrade to Flink 1.1.4.
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.1.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
Note for RocksDB Backend Users # We updated Flink’s RocksDB dependency version from 4.5.1 to 4.11.2. Between these versions some of RocksDB’s internal configuration defaults changed that would affect the memory footprint of running Flink with RocksDB. Therefore, we manually reset them to the previous defaults. If you want to run with the new Rocks 4.11.2 defaults, you can do this via:
-RocksDBStateBackend backend = new RocksDBStateBackend("..."); // Use the new default options. Otherwise, the default for RocksDB 4.5.1 // \`PredefinedOptions.DEFAULT_ROCKS_4_5_1\` will be used. backend.setPredefinedOptions(PredefinedOptions.DEFAULT); Release Notes - Flink - Version 1.1.4 # Sub-task # [FLINK-4510] - Always create CheckpointCoordinator [FLINK-4984] - Add Cancellation Barriers to BarrierTracker and BarrierBuffer [FLINK-4985] - Report Declined/Canceled Checkpoints to [...]
+RocksDBStateBackend backend = new RocksDBStateBackend("..."); // Use the new default options. Otherwise, the default for RocksDB 4.5.1 // \`PredefinedOptions.DEFAULT_ROCKS_4_5_1\` will be used. backend.setPredefinedOptions(PredefinedOptions.DEFAULT); Release Notes - Flink - Version 1.1.4 # Sub-task # [FLINK-4510] - Always create CheckpointCoordinator [FLINK-4984] - Add Cancellation Barriers to BarrierTracker and BarrierBuffer [FLINK-4985] - Report Declined/Canceled Checkpoints to [...]
In this post, we’ll look back on the project’s progress over the course of 2016, and we’ll also preview what 2017 has in store.
{%toc%}
Community Growth # Github # First, here’s a summary of community statistics from GitHub. At the time of writing:
@@ -5200,19 +5222,19 @@ Table API window aggregations, as described in FLIP-11, to support group-window
Side inputs, as described in this design document, to enable the joining of a main, high-throughput stream with one more more inputs with static or slowly-changing data.
If you’re interested in getting involved with Flink, we encourage you to take a look at the FLIPs and to join the discussion via the Flink mailing lists.
Lastly, we’d like to extend a sincere thank you to all of the Flink community for making 2016 a great year!
-`}),e.add({id:267,href:"/2016/10/12/apache-flink-1.1.3-released/",title:"Apache Flink 1.1.3 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.1. series.
+`}),e.add({id:268,href:"/2016/10/12/apache-flink-1.1.3-released/",title:"Apache Flink 1.1.3 Released",section:"Flink Blog",content:`The Apache Flink community released the next bugfix version of the Apache Flink 1.1. series.
We recommend all users to upgrade to Flink 1.1.3.
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
Note for RocksDB Backend Users # It is highly recommended to use the “fully async” mode for the RocksDB state backend. The “fully async” mode will most likely allow you to easily upgrade to Flink 1.2 (via savepoints) when it is released. The “semi async” mode will no longer be supported by Flink 1.2.
-RocksDBStateBackend backend = new RocksDBStateBackend("..."); backend.enableFullyAsyncSnapshots(); Release Notes - Flink - Version 1.1.3 # Bug [FLINK-2662] - CompilerException: "Bug: Plan generation for Unions picked a ship strategy between binary plan operators." [FLINK-4311] - TableInputFormat fails when reused on next split [FLINK-4329] - Fix Streaming File Source Timestamps/Watermarks Handling [FLINK-4485] - Finished jobs in yarn session fill /tmp filesystem [FLINK- [...]
+RocksDBStateBackend backend = new RocksDBStateBackend("..."); backend.enableFullyAsyncSnapshots(); Release Notes - Flink - Version 1.1.3 # Bug [FLINK-2662] - CompilerException: "Bug: Plan generation for Unions picked a ship strategy between binary plan operators." [FLINK-4311] - TableInputFormat fails when reused on next split [FLINK-4329] - Fix Streaming File Source Timestamps/Watermarks Handling [FLINK-4485] - Finished jobs in yarn session fill /tmp filesystem [FLINK- [...]
We recommend all users to upgrade to Flink 1.1.2.
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
-Release Notes - Flink - Version 1.1.2 [FLINK-4236] - Flink Dashboard stops showing list of uploaded jars if main method cannot be looked up [FLINK-4309] - Potential null pointer dereference in DelegatingConfiguration#keySet() [FLINK-4334] - Shaded Hadoop1 jar not fully excluded in Quickstart [FLINK-4341] - Kinesis connector does not emit maximum watermark properly [FLINK-4402] - Wrong metrics parameter names in documentation [FLINK-4409] - class conflict between jsr305-1.3.9.jar and flin [...]
+Release Notes - Flink - Version 1.1.2 [FLINK-4236] - Flink Dashboard stops showing list of uploaded jars if main method cannot be looked up [FLINK-4309] - Potential null pointer dereference in DelegatingConfiguration#keySet() [FLINK-4334] - Shaded Hadoop1 jar not fully excluded in Quickstart [FLINK-4341] - Kinesis connector does not emit maximum watermark properly [FLINK-4402] - Wrong metrics parameter names in documentation [FLINK-4409] - class conflict between jsr305-1.3.9.jar and flin [...]
Ted Dunning has been announced as a keynote speaker at the event. Ted is the VP of Incubator at Apache Software Foundation, the Chief Application Architect at MapR Technologies, and a mentor on many recent projects. He'll present "How Can We Take Flink Forward?" on the second day of the conference.
Following Ted's keynote there will be a panel discussion on "Large Scale Streaming in Production". As stream processing systems become more mainstream, companies are looking to empower their users to take advantage of this technology. We welcome leading stream processing experts Xiaowei Jiang (Alibaba), Monal Daxini (Netflix), Maxim Fateev (Uber), and Ted Dunning (MapR Technologies) on stage to talk about the challenges they have faced and the solutions they have discovered while impleme [...]
The welcome keynote on Monday, September 12, will be presented by data Artisans' co-founders Kostas Tzoumas and Stephan Ewen. They will talk about "The maturing data streaming ecosystem and Apache Flink’s accelerated growth". In this talk, Kostas and Stephan discuss several large-scale stream processing use cases that the data Artisans team has seen over the past year.
And one more recent addition to the program: Maxim Fateev of Uber will present "Beyond the Watermark: On-Demand Backfilling in Flink". Flink’s time-progress model is built around a single watermark, which is incompatible with Uber’s business need for generating aggregates retroactively. Maxim's talk covers Uber's solution for on-demand backfilling.
-We hope to see many community members at Flink Forward 2016. Registration is available online: flink-forward.org/registration `}),e.add({id:270,href:"/2016/08/04/announcing-apache-flink-1.1.0/",title:"Announcing Apache Flink 1.1.0",section:"Flink Blog",content:`Important: The Maven artifacts published with version 1.1.0 on Maven central have a Hadoop dependency issue. It is highly recommended to use 1.1.1 or 1.1.1-hadoop1 as the Flink version. The Apache Flink community is pleased to ann [...]
+We hope to see many community members at Flink Forward 2016. Registration is available online: flink-forward.org/registration `}),e.add({id:271,href:"/2016/08/04/announcing-apache-flink-1.1.0/",title:"Announcing Apache Flink 1.1.0",section:"Flink Blog",content:`Important: The Maven artifacts published with version 1.1.0 on Maven central have a Hadoop dependency issue. It is highly recommended to use 1.1.1 or 1.1.1-hadoop1 as the Flink version. The Apache Flink community is pleased to ann [...]
This release is the first major release in the 1.X.X series of releases, which maintains API compatibility with 1.0.0. This means that your applications written against stable APIs of Flink 1.0.0 will compile and run with Flink 1.1.0. 95 contributors provided bug fixes, improvements, and new features such that in total more than 450 JIRA issues could be resolved. See the complete changelog for more details.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, very welcome!
Some highlights of the release are listed in the following sections.
@@ -5240,11 +5262,11 @@ Metrics # Flink’s new metrics system allows you to easily gather and expose me
Counter counter = getRuntimeContext() .getMetricGroup() .counter("my-counter"); All registered metrics will be exposed via reporters. Out of the box, Flinks comes with support for JMX, Ganglia, Graphite, and statsD. In addition to your custom metrics, Flink exposes many internal metrics like checkpoint sizes and JVM stats.
Check out the Metrics documentation for more details.
List of Contributors # The following 95 people contributed to this release:
-Abdullah Ozturk Ajay Bhat Alexey Savartsov Aljoscha Krettek Andrea Sella Andrew Palumbo Chenguang He Chiwan Park David Moravek Dominik Bruhn Dyana Rose Fabian Hueske Flavio Pompermaier Gabor Gevay Gabor Horvath Geoffrey Mon Gordon Tai Greg Hogan Gyula Fora Henry Saputra Ignacio N. Lucero Ascencio Igor Berman Ismaël Mejía Ivan Mushketyk Jark Wu Jiri Simsa Jonas Traub Josh Joshi Joshua Herman Ken Krugler Konstantin Knauf Lasse Dalegaard Li Fanxi MaBiao Mao Wei Mark Reddy Martin Junghanns M [...]
+Abdullah Ozturk Ajay Bhat Alexey Savartsov Aljoscha Krettek Andrea Sella Andrew Palumbo Chenguang He Chiwan Park David Moravek Dominik Bruhn Dyana Rose Fabian Hueske Flavio Pompermaier Gabor Gevay Gabor Horvath Geoffrey Mon Gordon Tai Greg Hogan Gyula Fora Henry Saputra Ignacio N. Lucero Ascencio Igor Berman Ismaël Mejía Ivan Mushketyk Jark Wu Jiri Simsa Jonas Traub Josh Joshi Joshua Herman Ken Krugler Konstantin Knauf Lasse Dalegaard Li Fanxi MaBiao Mao Wei Mark Reddy Martin Junghanns M [...]
The Maven artifacts published on Maven central for 1.1.0 had a Hadoop dependency issue: No Hadoop 1 specific version (with version 1.1.0-hadoop1) was deployed and 1.1.0 artifacts have a dependency on Hadoop 1 instead of Hadoop 2.
This was fixed with this release and we highly recommend all users to use this version of Flink by bumping your Flink dependencies to version 1.1.1:
<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.10</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.10</artifactId> <versio [...]
-`}),e.add({id:272,href:"/2016/05/24/stream-processing-for-everyone-with-sql-and-apache-flink/",title:"Stream Processing for Everyone with SQL and Apache Flink",section:"Flink Blog",content:`The capabilities of open source systems for distributed stream processing have evolved significantly over the last years. Initially, the first systems in the field (notably Apache Storm) provided low latency processing, but were limited to at-least-once guarantees, processing-time semantics, and rathe [...]
+`}),e.add({id:273,href:"/2016/05/24/stream-processing-for-everyone-with-sql-and-apache-flink/",title:"Stream Processing for Everyone with SQL and Apache Flink",section:"Flink Blog",content:`The capabilities of open source systems for distributed stream processing have evolved significantly over the last years. Initially, the first systems in the field (notably Apache Storm) provided low latency processing, but were limited to at-least-once guarantees, processing-time semantics, and rathe [...]
In the meantime, stream processing has taken off in the industry. We are witnessing a rapidly growing interest in stream processing which is reflected by prevalent deployments of streaming processing infrastructure such as Apache Kafka and Apache Flink. The increasing number of available data streams results in a demand for people that can analyze streaming data and turn it into real-time insights. However, stream data analysis requires a special skill set including knowledge of streamin [...]
About six months ago, the Apache Flink community started an effort to add a SQL interface for stream data analysis. SQL is the standard language to access and process data. Everybody who occasionally analyzes data is familiar with SQL. Consequently, a SQL interface for stream data processing will make this technology accessible to a much wider audience. Moreover, SQL support for streaming data will also enable new use cases such as interactive and ad-hoc stream analysis and significantly [...]
Where did we come from? # With the 0.9.0-milestone1 release, Apache Flink added an API to process relational data with SQL-like expressions called the Table API. The central concept of this API is a Table, a structured data set or stream on which relational operations can be applied. The Table API is tightly integrated with the DataSet and DataStream API. A Table can be easily created from a DataSet or DataStream and can also be converted back into a DataSet or DataStream as the followin [...]
@@ -5263,14 +5285,14 @@ Although we haven’t completely fleshed out the details of how windows will be
SQL (following the syntax proposal of Calcite’s streaming SQL document) # SELECT STREAM TUMBLE_END(time, INTERVAL '1' DAY) AS day, location AS room, AVG((tempF - 32) * 0.556) AS avgTempC FROM sensorData WHERE location LIKE 'room%' GROUP BY TUMBLE(time, INTERVAL '1' DAY), location Table API # val avgRoomTemp: Table = tableEnv.ingest("sensorData") .where('location.like("room%")) .partitionBy('location) .window(Tumbling every Days(1) on 't [...]
In Flink 1.2.0, the feature set of SQL on streams will be significantly extended. Among other things, we plan to support different types of window aggregates and maybe also streaming joins. For this effort, we want to closely collaborate with the Apache Calcite community and help extending Calcite’s support for relational operations on streaming data when necessary.
If this post made you curious and you want to try out Flink’s SQL interface and the new Table API, we encourage you to do so! Simply clone the SNAPSHOT master branch and check out the Table API documentation for the SNAPSHOT version. Please note that the branch is under heavy development, and hence some code examples in this blog post might not work. We are looking forward to your feedback and welcome contributions.
-`}),e.add({id:273,href:"/2016/05/11/flink-1.0.3-released/",title:"Flink 1.0.3 Released",section:"Flink Blog",content:`Today, the Flink community released Flink version 1.0.3, the third bugfix release of the 1.0 series.
+`}),e.add({id:274,href:"/2016/05/11/flink-1.0.3-released/",title:"Flink 1.0.3 Released",section:"Flink Blog",content:`Today, the Flink community released Flink version 1.0.3, the third bugfix release of the 1.0 series.
We recommend all users updating to this release by bumping the version of your Flink dependencies to 1.0.3 and updating the binaries on the server. You can find the binaries on the updated Downloads page.
-Fixed Issues # Bug # [FLINK-3790] [streaming] Use proper hadoop config in rolling sink [FLINK-3840] Remove Testing Files in RocksDB Backend [FLINK-3835] [optimizer] Add input id to JSON plan to resolve ambiguous input names [hotfix] OptionSerializer.duplicate to respect stateful element serializer [FLINK-3803] [runtime] Pass CheckpointStatsTracker to ExecutionGraph [hotfix] [cep] Make cep window border treatment consistent Improvement # [FLINK-3678] [dist, docs] Make Flink logs directory [...]
+Fixed Issues # Bug # [FLINK-3790] [streaming] Use proper hadoop config in rolling sink [FLINK-3840] Remove Testing Files in RocksDB Backend [FLINK-3835] [optimizer] Add input id to JSON plan to resolve ambiguous input names [hotfix] OptionSerializer.duplicate to respect stateful element serializer [FLINK-3803] [runtime] Pass CheckpointStatsTracker to ExecutionGraph [hotfix] [cep] Make cep window border treatment consistent Improvement # [FLINK-3678] [dist, docs] Make Flink logs directory [...]
We recommend all users updating to this release by bumping the version of your Flink dependencies to 1.0.2 and updating the binaries on the server. You can find the binaries on the updated Downloads page.
-Fixed Issues # Bug # [FLINK-3657] [dataSet] Change access of DataSetUtils.countElements() to ‘public’ [FLINK-3762] [core] Enable Kryo reference tracking [FLINK-3732] [core] Fix potential null deference in ExecutionConfig#equals() [FLINK-3760] Fix StateDescriptor.readObject [FLINK-3730] Fix RocksDB Local Directory Initialization [FLINK-3712] Make all dynamic properties available to the CLI frontend [FLINK-3688] WindowOperator.trigger() does not emit Watermark anymore [FLINK-36 [...]
+Fixed Issues # Bug # [FLINK-3657] [dataSet] Change access of DataSetUtils.countElements() to ‘public’ [FLINK-3762] [core] Enable Kryo reference tracking [FLINK-3732] [core] Fix potential null deference in ExecutionConfig#equals() [FLINK-3760] Fix StateDescriptor.readObject [FLINK-3730] Fix RocksDB Local Directory Initialization [FLINK-3712] Make all dynamic properties available to the CLI frontend [FLINK-3688] WindowOperator.trigger() does not emit Watermark anymore [FLINK-36 [...]
The conference welcomes submissions on everything Flink-related, including experiences with using Flink, products based on Flink, technical talks on extending Flink, as well as connecting Flink with other open source or proprietary software.
Read more here.
-`}),e.add({id:276,href:"/2016/04/06/introducing-complex-event-processing-cep-with-apache-flink/",title:"Introducing Complex Event Processing (CEP) with Apache Flink",section:"Flink Blog",content:`With the ubiquity of sensor networks and smart devices continuously collecting more and more data, we face the challenge to analyze an ever growing stream of data in near real-time. Being able to react quickly to changing trends or to deliver up to date business intelligence can be a decisive fa [...]
+`}),e.add({id:277,href:"/2016/04/06/introducing-complex-event-processing-cep-with-apache-flink/",title:"Introducing Complex Event Processing (CEP) with Apache Flink",section:"Flink Blog",content:`With the ubiquity of sensor networks and smart devices continuously collecting more and more data, we face the challenge to analyze an ever growing stream of data in near real-time. Being able to react quickly to changing trends or to deliver up to date business intelligence can be a decisive fa [...]
Complex event processing (CEP) addresses exactly this problem of matching continuously incoming events against a pattern. The result of a matching are usually complex events which are derived from the input events. In contrast to traditional DBMSs where a query is executed on stored data, CEP executes data on a stored query. All data which is not relevant for the query can be immediately discarded. The advantages of this approach are obvious, given that CEP queries are applied on a poten [...]
Consequently, CEP’s processing paradigm drew significant interest and found application in a wide variety of use cases. Most notably, CEP is used nowadays for financial applications such as stock market trend and credit card fraud detection. Moreover, it is used in RFID-based tracking and monitoring, for example, to detect thefts in a warehouse where items are not properly checked out. CEP can also be used to detect network intrusion by specifying patterns of suspicious user behaviour.
Apache Flink with its true streaming nature and its capabilities for low latency as well as high throughput stream processing is a natural fit for CEP workloads. Consequently, the Flink community has introduced the first version of a new CEP library with Flink 1.0. In the remainder of this blog post, we introduce Flink’s CEP library and we illustrate its ease of use through the example of monitoring a data center.
@@ -5294,9 +5316,9 @@ The full source code for the presented example as well as an example data source
Conclusion # In this blog post we have seen how easy it is to reason about event streams using Flink’s CEP library. Using the example of monitoring and alert generation for a data center, we have implemented a short program which notifies us when a rack is about to overheat and potentially to fail.
In the future, the Flink community will further extend the CEP library’s functionality and expressiveness. Next on the road map is support for a regular expression-like pattern specification, including Kleene star, lower and upper bounds, and negation. Furthermore, it is planned to allow the where-clause to access fields of previously matched events. This feature will allow to prune unpromising event sequences early.
Note: The example code requires Flink 1.0.1 or higher.
-`}),e.add({id:277,href:"/2016/04/06/flink-1.0.1-released/",title:"Flink 1.0.1 Released",section:"Flink Blog",content:`Today, the Flink community released Flink version 1.0.1, the first bugfix release of the 1.0 series.
+`}),e.add({id:278,href:"/2016/04/06/flink-1.0.1-released/",title:"Flink 1.0.1 Released",section:"Flink Blog",content:`Today, the Flink community released Flink version 1.0.1, the first bugfix release of the 1.0 series.
We recommend all users updating to this release by bumping the version of your Flink dependencies to 1.0.1 and updating the binaries on the server. You can find the binaries on the updated Downloads page.
-Fixed Issues # Bug [FLINK-3179] - Combiner is not injected if Reduce or GroupReduce input is explicitly partitioned [FLINK-3472] - JDBCInputFormat.nextRecord(..) has misleading message on NPE [FLINK-3491] - HDFSCopyUtilitiesTest fails on Windows [FLINK-3495] - RocksDB Tests can't run on Windows [FLINK-3533] - Update the Gelly docs wrt examples and cluster execution [FLINK-3563] - .returns() doesn't compile when using .map() with a custom MapFunction [FLINK-3566] - Input type vali [...]
+Fixed Issues # Bug [FLINK-3179] - Combiner is not injected if Reduce or GroupReduce input is explicitly partitioned [FLINK-3472] - JDBCInputFormat.nextRecord(..) has misleading message on NPE [FLINK-3491] - HDFSCopyUtilitiesTest fails on Windows [FLINK-3495] - RocksDB Tests can't run on Windows [FLINK-3533] - Update the Gelly docs wrt examples and cluster execution [FLINK-3563] - .returns() doesn't compile when using .map() with a custom MapFunction [FLINK-3566] - Input type vali [...]
Flink version 1.0.0 marks the beginning of the 1.X.X series of releases, which will maintain backwards compatibility with 1.0.0. This means that applications written against stable APIs of Flink 1.0.0 will compile and run with all Flink versions in the 1. series. This is the first time we are formally guaranteeing compatibility in Flink’s history, and we therefore see this release as a major milestone of the project, perhaps the most important since graduation as a top-level project.
Apart from backwards compatibility, Flink 1.0.0 brings a variety of new user-facing features, as well as tons of bug fixes. About 64 contributors provided bug fixes, improvements, and new features such that in total more than 450 JIRA issues could be resolved.
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, very welcome!
@@ -5311,9 +5333,9 @@ Improved checkpointing control and monitoring # The checkpointing has been exten
The checkpoint coordinator now exposes statistics through our REST monitoring API and the web interface. Users can review the checkpoint size and duration on a per-operator basis and see the last completed checkpoints. This is helpful for identifying performance issues, such as processing slowdown by the checkpoints.
Improved Kafka connector and support for Kafka 0.9 # Flink 1.0 supports both Kafka 0.8 and 0.9. With the new release, Flink exposes Kafka metrics for the producers and the 0.9 consumer through Flink’s accumulator system. We also enhanced the existing connector for Kafka 0.8, allowing users to subscribe to multiple topics in one source.
Changelog and known issues # This release resolves more than 450 issues, including bug fixes, improvements, and new features. See the complete changelog and known issues.
-List of contributors # Abhishek Agarwal Ajay Bhat Aljoscha Krettek Andra Lungu Andrea Sella Chesnay Schepler Chiwan Park Daniel Pape Fabian Hueske Filipe Correia Frederick F. Kautz IV Gabor Gevay Gabor Horvath Georgios Andrianakis Greg Hogan Gyula Fora Henry Saputra Hilmi Yildirim Hubert Czerpak Jark Wu Johannes Jun Aoki Jun Aoki Kostas Kloudas Li Chengxiang Lun Gao Martin Junghanns Martin Liesenberg Matthias J. Sax Maximilian Michels Márton Balassi Nick Dimiduk Niels Basjes Omer Katz Pa [...]
+List of contributors # Abhishek Agarwal Ajay Bhat Aljoscha Krettek Andra Lungu Andrea Sella Chesnay Schepler Chiwan Park Daniel Pape Fabian Hueske Filipe Correia Frederick F. Kautz IV Gabor Gevay Gabor Horvath Georgios Andrianakis Greg Hogan Gyula Fora Henry Saputra Hilmi Yildirim Hubert Czerpak Jark Wu Johannes Jun Aoki Jun Aoki Kostas Kloudas Li Chengxiang Lun Gao Martin Junghanns Martin Liesenberg Matthias J. Sax Maximilian Michels Márton Balassi Nick Dimiduk Niels Basjes Omer Katz Pa [...]
We recommend all users updating to this release by bumping the version of your Flink dependencies to 0.10.2 and updating the binaries on the server.
-Issues fixed # FLINK-3242: Adjust StateBackendITCase for 0.10 signatures of state backends FLINK-3236: Flink user code classloader as parent classloader from Flink core classes FLINK-2962: Cluster startup script refers to unused variable FLINK-3151: Downgrade to Netty version 4.0.27.Final FLINK-3224: Call setInputType() on output formats that implement InputTypeConfigurable FLINK-3218: Fix overriding of user parameters when merging Hadoop configurations FLINK-3189: Fix argument parsing o [...]
+Issues fixed # FLINK-3242: Adjust StateBackendITCase for 0.10 signatures of state backends FLINK-3236: Flink user code classloader as parent classloader from Flink core classes FLINK-2962: Cluster startup script refers to unused variable FLINK-3151: Downgrade to Netty version 4.0.27.Final FLINK-3224: Call setInputType() on output formats that implement InputTypeConfigurable FLINK-3218: Fix overriding of user parameters when merging Hadoop configurations FLINK-3189: Fix argument parsing o [...]
Overall, we have seen Flink grow in terms of functionality from an engine to one of the most complete open-source stream processing frameworks available. The community grew from a relatively small and geographically focused team, to a truly global, and one of the largest big data communities in the the Apache Software Foundation.
We will also look at some interesting stats, including that the busiest days for Flink are Mondays (who would have thought :-).
Community growth # Let us start with some simple statistics from Flink’s github repository. During 2015, the Flink community doubled in size, from about 75 contributors to over 150. Forks of the repository more than tripled from 160 in February 2015 to 544 in December 2015, and the number of stars of the repository almost tripled from 289 to 813.
@@ -5336,7 +5358,7 @@ Support for Apache Mesos, and resource-dynamic YARN support: support for both Me
Security: encrypt both the messages exchanged between TaskManagers and JobManager, as well as the connections for data exchange between workers.
More streaming connectors, more runtime metrics, and continuous DataStream API enhancements: add support for more sources and sinks (e.g., Amazon Kinesis, Cassandra, Flume, etc), expose more metrics to the user, and provide continuous improvements to the DataStream API.
If you are interested in these features, we highly encourage you to take a look at the current draft, and join the discussion on the Flink mailing lists.
-`}),e.add({id:281,href:"/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/",title:"Storm Compatibility in Apache Flink: How to run existing Storm topologies on Flink",section:"Flink Blog",content:`Apache Storm was one of the first distributed and scalable stream processing systems available in the open source space offering (near) real-time tuple-by-tuple processing semantics. Initially released by the developers at Backtype in 2011 under the E [...]
+`}),e.add({id:282,href:"/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/",title:"Storm Compatibility in Apache Flink: How to run existing Storm topologies on Flink",section:"Flink Blog",content:`Apache Storm was one of the first distributed and scalable stream processing systems available in the open source space offering (near) real-time tuple-by-tuple processing semantics. Initially released by the developers at Backtype in 2011 under the E [...]
Apache Flink is a stream processing engine that improves upon older technologies like Storm in several dimensions, including strong consistency guarantees (“exactly once”), a higher level DataStream API, support for event time and a rich windowing system, as well as superior throughput with competitive low latency.
While Flink offers several technical benefits over Storm, an existing investment on a codebase of applications developed for Storm often makes it difficult to switch engines. For these reasons, as part of the Flink 0.10 release, Flink ships with a Storm compatibility package that allows users to:
Run unmodified Storm topologies using Apache Flink benefiting from superior performance. Embed Storm code (spouts and bolts) as operators inside Flink DataStream programs. Only minor code changes are required in order to submit the program to Flink instead of Storm. This minimizes the work for developers to run existing Storm topologies while leveraging Apache Flink’s fast and robust execution engine.
@@ -5353,7 +5375,7 @@ Outlook # The Storm compatibility package is currently in beta and undergoes con
Summary # Flink’s compatibility package for Storm allows using unmodified Spouts and Bolts within Flink. This enables you to even embed third-party Spouts and Bolts where the source code is not available. While you can embed Spouts/Bolts in a Flink program and mix-and-match them with Flink operators, running whole topologies is the easiest way to get started and can be achieved with almost no code changes.
If you want to try out Flink’s Storm compatibility package checkout our Documentation.
1. We confess, there are three lines changed compared to a Storm project —because the example covers local and remote execution. ↩
-`}),e.add({id:282,href:"/2015/12/04/introducing-stream-windows-in-apache-flink/",title:"Introducing Stream Windows in Apache Flink",section:"Flink Blog",content:`The data analysis space is witnessing an evolution from batch to stream processing for many use cases. Although batch can be handled as a special case of stream processing, analyzing never-ending streaming data often requires a shift in the mindset and comes with its own terminology (for example, “windowing” and “at-least-once”/ [...]
+`}),e.add({id:283,href:"/2015/12/04/introducing-stream-windows-in-apache-flink/",title:"Introducing Stream Windows in Apache Flink",section:"Flink Blog",content:`The data analysis space is witnessing an evolution from batch to stream processing for many use cases. Although batch can be handled as a special case of stream processing, analyzing never-ending streaming data often requires a shift in the mindset and comes with its own terminology (for example, “windowing” and “at-least-once”/ [...]
In this blog post, we discuss the concept of windows for stream processing, present Flink’s built-in windows, and explain its support for custom windowing semantics.
What are windows and what are they good for? # Consider the example of a traffic sensor that counts every 15 seconds the number of vehicles passing a certain location. The resulting stream could look like:
If you would like to know, how many vehicles passed that location, you would simply sum the individual counts. However, the nature of a sensor stream is that it continuously produces data. Such a stream never ends and it is not possible to compute a final sum that can be returned. Instead, it is possible to compute rolling sums, i.e., return for each input event an updated sum record. This would yield a new stream of partial sums.
@@ -5380,9 +5402,9 @@ val input: DataStream[IN] = ... // created a keyed stream using a key selector f
// specify an optional evictor windowed = windowed .evictor(myEvictor: Evictor[IN, WINDOW]) Finally, we apply a WindowFunction that returns elements of type OUT to obtain a DataStream[OUT].
// apply window function to windowed stream val output: DataStream[OUT] = windowed .apply(myWinFunc: WindowFunction[IN, OUT, KEY, WINDOW]) With Flink’s internal windowing mechanics and its exposure through the DataStream API it is possible to implement very custom windowing logic such as session windows or windows that emit early results if the values exceed a certain threshold.
Conclusion # Support for various types of windows over continuous data streams is a must-have for modern stream processors. Apache Flink is a stream processor with a very strong feature set, including a very flexible mechanism to build and evaluate windows over continuous data streams. Flink provides pre-defined window operators for common uses cases as well as a toolbox that allows to define very custom windowing logic. The Flink community will add more pre-defined window operators as w [...]
-`}),e.add({id:283,href:"/2015/11/27/flink-0.10.1-released/",title:"Flink 0.10.1 released",section:"Flink Blog",content:`Today, the Flink community released the first bugfix release of the 0.10 series of Flink.
+`}),e.add({id:284,href:"/2015/11/27/flink-0.10.1-released/",title:"Flink 0.10.1 released",section:"Flink Blog",content:`Today, the Flink community released the first bugfix release of the 0.10 series of Flink.
We recommend all users updating to this release, by bumping the version of your Flink dependencies and updating the binaries on the server.
-Issues fixed # [FLINK-2879] - Links in documentation are broken [FLINK-2938] - Streaming docs not in sync with latest state changes [FLINK-2942] - Dangling operators in web UI's program visualization (non-deterministic) [FLINK-2967] - TM address detection might not always detect the right interface on slow networks / overloaded JMs [FLINK-2977] - Cannot access HBase in a Kerberos secured Yarn cluster [FLINK-2987] - Flink 0.10 fails to start on YARN 2.6.0 [FLINK-2989] - Job Cancel but [...]
+Issues fixed # [FLINK-2879] - Links in documentation are broken [FLINK-2938] - Streaming docs not in sync with latest state changes [FLINK-2942] - Dangling operators in web UI's program visualization (non-deterministic) [FLINK-2967] - TM address detection might not always detect the right interface on slow networks / overloaded JMs [FLINK-2977] - Cannot access HBase in a Kerberos secured Yarn cluster [FLINK-2987] - Flink 0.10 fails to start on YARN 2.6.0 [FLINK-2989] - Job Cancel but [...]
For Flink 0.10.0, the focus of the community was to graduate the DataStream API from beta and to evolve Apache Flink into a production-ready stream data processor with a competitive feature set. These efforts resulted in support for event-time and out-of-order streams, exactly-once guarantees in the case of failures, a very flexible windowing mechanism, sophisticated operator state management, and a highly-available cluster operation mode. Flink 0.10.0 also brings a new monitoring dashbo [...]
We encourage everyone to download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, very welcome!
New Features # Event-time Stream Processing # Many stream processing applications consume data from sources that produce events with associated timestamps such as sensor or user-interaction events. Very often, events have to be collected from several sources such that it is usually not guaranteed that events arrive in the exact order of their timestamps at the stream processor. Consequently, stream processors must take out-of-order elements into account in order to produce results which [...]
@@ -5397,7 +5419,7 @@ Outer Joins # Outer joins have been one of the most frequently requested feature
Gelly: Major Improvements and Scala API # Gelly is Flink’s API and library for processing and analyzing large-scale graphs. Gelly was introduced with release 0.9.0 and has been very well received by users and contributors. Based on user feedback, Gelly has been improved since then. In addition, Flink 0.10.0 introduces a Scala API for Gelly. See FLINK-2857 and FLINK-1962 for details.
More Improvements and Fixes # The Flink community resolved more than 400 issues. The following list is a selection of new features and fixed bugs.
FLINK-1851 Java Table API does not support Casting FLINK-2152 Provide zipWithIndex utility in flink-contrib FLINK-2158 NullPointerException in DateSerializer. FLINK-2240 Use BloomFilter to minimize probe side records which are spilled to disk in Hybrid-Hash-Join FLINK-2533 Gap based random sample optimization FLINK-2555 Hadoop Input/Output Formats are unable to access secured HDFS clusters FLINK-2565 Support primitive arrays as keys FLINK-2582 Document how to build Flink with other Scala [...]
-Contributors # Alexander Alexandrov Marton Balassi Enrique Bautista Faye Beligianni Bryan Bende Ajay Bhat Chris Brinkman Dmitry Buzdin Kun Cao Paris Carbone Ufuk Celebi Shivani Chandna Liang Chen Felix Cheung Hubert Czerpak Vimal Das Behrouz Derakhshan Suminda Dharmasena Stephan Ewen Fengbin Fang Gyula Fora Lun Gao Gabor Gevay Piotr Godek Sachin Goel Anton Haglund Gábor Hermann Greg Hogan Fabian Hueske Martin Junghanns Vasia Kalavri Ulf Karlsson Frederick F. Kautz Samia Khalid Johannes K [...]
+Contributors # Alexander Alexandrov Marton Balassi Enrique Bautista Faye Beligianni Bryan Bende Ajay Bhat Chris Brinkman Dmitry Buzdin Kun Cao Paris Carbone Ufuk Celebi Shivani Chandna Liang Chen Felix Cheung Hubert Czerpak Vimal Das Behrouz Derakhshan Suminda Dharmasena Stephan Ewen Fengbin Fang Gyula Fora Lun Gao Gabor Gevay Piotr Godek Sachin Goel Anton Haglund Gábor Hermann Greg Hogan Fabian Hueske Martin Junghanns Vasia Kalavri Ulf Karlsson Frederick F. Kautz Samia Khalid Johannes K [...]
In this blog post, we will look at how Flink exploits off-heap memory. The feature is part of the upcoming release, but you can try it out with the latest nightly builds. We will also give a few interesting insights into the behavior for Java’s JIT compiler for highly optimized methods and loops.
Recap: Memory Management in Flink # To understand Flink’s approach to off-heap memory, we need to recap Flink’s approach to custom managed memory. We have written an earlier blog post about how Flink manages JVM memory itself
As a summary, the core part is that Flink implements its algorithms not against Java objects, arrays, or lists, but actually against a data structure similar to java.nio.ByteBuffer. Flink uses its own specialized version, called MemorySegment on which algorithms put and get at specific positions ints, longs, byte arrays, etc, and compare and copy memory. The memory segments are held and distributed by a central component (called MemoryManager) from which algorithms request segments accor [...]
@@ -5458,7 +5480,7 @@ Writing 100000 x 8192 ints to 32768 bytes segment
Segment Time HeapMemorySegment, mixed 578 msecs HybridMemorySegment, heap, mixed 580 msecs HybridMemorySegment, off-heap, mixed 576 msecs PureHeapSegment 624 msecs PureHybridSegment, heap 576 msecs PureHybridSegment, off-heap 578 msecs Reading 100000 x 8192 ints from 32768 bytes segment
Segment Time HeapMemorySegment, mixed 464 msecs HybridMemorySegment, heap, mixed 464 msecs HybridMemorySegment, off-heap, mixed 465 msecs PureHeapSegment 463 msecs PureHybridSegment, heap 464 msecs PureHybridSegment, off-heap 463 msecs Writing 10 x 268435456 ints to 1073741824 bytes segment
Segment Time HeapMemorySegment, mixed 2,187 msecs HybridMemorySegment, heap, mixed 2,161 msecs HybridMemorySegment, off-heap, mixed 2,152 msecs PureHeapSegment 2,770 msecs PureHybridSegment, heap 2,161 msecs PureHybridSegment, off-heap 2,157 msecs Reading 10 x 268435456 ints from 1073741824 bytes segment
-Segment Time HeapMemorySegment, mixed 1,782 msecs HybridMemorySegment, heap, mixed 1,783 msecs HybridMemorySegment, off-heap, mixed 1,774 msecs PureHeapSegment 1,501 msecs PureHybridSegment, heap 1,774 msecs PureHybridSegment, off-heap 1,771 msecs `}),e.add({id:286,href:"/2015/09/03/announcing-flink-forward-2015/",title:"Announcing Flink Forward 2015",section:"Flink Blog",content:`Flink Forward 2015 is the first conference with Flink at its center that aims to bring together the Apache F [...]
+Segment Time HeapMemorySegment, mixed 1,782 msecs HybridMemorySegment, heap, mixed 1,783 msecs HybridMemorySegment, off-heap, mixed 1,774 msecs PureHeapSegment 1,501 msecs PureHybridSegment, heap 1,774 msecs PureHybridSegment, off-heap 1,771 msecs `}),e.add({id:287,href:"/2015/09/03/announcing-flink-forward-2015/",title:"Announcing Flink Forward 2015",section:"Flink Blog",content:`Flink Forward 2015 is the first conference with Flink at its center that aims to bring together the Apache F [...]
The conference program has been announced by the organizers and a program committee consisting of Flink PMC members. The agenda contains talks from industry and academia as well as a dedicated session on hands-on Flink training.
Some highlights of the talks include
A keynote by William Vambenepe, lead of the product management team responsible for Big Data services on Google Cloud Platform (BigQuery, Dataflow, etc…) on data streaming, Google Cloud Dataflow, and Apache Flink.
@@ -5466,11 +5488,11 @@ Talks by several practitioners on how they are putting Flink to work in their pr
Talks on how open source projects, including Apache Mahout, Apache SAMOA (incubating), Apache Zeppelin (incubating), Apache BigTop, and Apache Storm integrate with Apache Flink.
Talks by Flink committers on several aspects of the system, such as fault tolerance, the internal runtime architecture, and others.
Check out the schedule and register for the conference.
-`}),e.add({id:287,href:"/2015/09/01/apache-flink-0.9.1-available/",title:"Apache Flink 0.9.1 available",section:"Flink Blog",content:`The Flink community is happy to announce that Flink 0.9.1 is now available.
+`}),e.add({id:288,href:"/2015/09/01/apache-flink-0.9.1-available/",title:"Apache Flink 0.9.1 available",section:"Flink Blog",content:`The Flink community is happy to announce that Flink 0.9.1 is now available.
0.9.1 is a maintenance release, which includes a lot of minor fixes across several parts of the system. We suggest all users of Flink to work with this latest stable version.
Download the release and [check out the documentation]({{ site.docs-stable }}). Feedback through the Flink mailing lists is, as always, very welcome!
The following issues were fixed for this release:
-FLINK-1916 EOFException when running delta-iteration job FLINK-2089 “Buffer recycled” IllegalStateException during cancelling FLINK-2189 NullPointerException in MutableHashTable FLINK-2205 Confusing entries in JM Webfrontend Job Configuration section FLINK-2229 Data sets involving non-primitive arrays cannot be unioned FLINK-2238 Scala ExecutionEnvironment.fromCollection does not work with Sets FLINK-2248 Allow disabling of sdtout logging output FLINK-2257 Open and close of R [...]
+FLINK-1916 EOFException when running delta-iteration job FLINK-2089 “Buffer recycled” IllegalStateException during cancelling FLINK-2189 NullPointerException in MutableHashTable FLINK-2205 Confusing entries in JM Webfrontend Job Configuration section FLINK-2229 Data sets involving non-primitive arrays cannot be unioned FLINK-2238 Scala ExecutionEnvironment.fromCollection does not work with Sets FLINK-2248 Allow disabling of sdtout logging output FLINK-2257 Open and close of R [...]
Gelly allows Flink users to perform end-to-end data analysis in a single system. Gelly can be seamlessly used with Flink’s DataSet API, which means that pre-processing, graph creation, analysis, and post-processing can be done in the same application. At the end of this post, we will go through a step-by-step example in order to demonstrate that loading, transformation, filtering, graph creation, and analysis can be performed in a single Flink program.
Overview
What is Gelly? Graph Representation and Creation Transformations and Utilities Iterative Graph Processing Library of Graph Algorithms Use-Case: Music Profiles Ongoing and Future Work What is Gelly? # Gelly is a Graph API for Flink. It is currently supported in both Java and Scala. The Scala methods are implemented as wrappers on top of the basic Java operations. The API contains a set of utility functions for graph analysis, supports iterative graph processing and introduces a library of [...]
@@ -5531,7 +5553,7 @@ In the near future, we would like to see how Gelly can be integrated with graph
Curious? Read more about our plans for Gelly in the roadmap.
Back to top
Links # Gelly Documentation
-`}),e.add({id:289,href:"/2015/06/24/announcing-apache-flink-0.9.0/",title:"Announcing Apache Flink 0.9.0",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the availability of the 0.9.0 release. The release is the result of many months of hard work within the Flink community. It contains many new features and improvements which were previewed in the 0.9.0-milestone1 release and have been polished since then. This is the largest Flink release so far.
+`}),e.add({id:290,href:"/2015/06/24/announcing-apache-flink-0.9.0/",title:"Announcing Apache Flink 0.9.0",section:"Flink Blog",content:`The Apache Flink community is pleased to announce the availability of the 0.9.0 release. The release is the result of many months of hard work within the Flink community. It contains many new features and improvements which were previewed in the 0.9.0-milestone1 release and have been polished since then. This is the largest Flink release so far.
Download the release and check out the documentation. Feedback through the Flink mailing lists is, as always, very welcome!
New Features # Exactly-once Fault Tolerance for streaming programs # This release introduces a new fault tolerance mechanism for streaming dataflows. The new checkpointing algorithm takes data sources and also user-defined state into account and recovers failures such that all records are reflected exactly once in the operator states.
The checkpointing algorithm is lightweight and driven by barriers that are periodically injected into the data streams at the sources. As such, it has an extremely low coordination overhead and is able to sustain very high throughput rates. User-defined state can be automatically backed up to configurable storage by the fault tolerance mechanism.
@@ -5608,14 +5630,14 @@ FLINK-2188: Reading from big HBase Tables
FLINK-1781: Quickstarts broken due to Scala Version Variables
Notice # The 0.9 series of Flink is the last version to support Java 6. If you are still using Java 6, please consider upgrading to Java 8 (Java 7 ended its free support in April 2015).
Flink will require at least Java 7 in major releases after 0.9.0.
-`}),e.add({id:290,href:"/2015/05/14/april-2015-in-the-flink-community/",title:"April 2015 in the Flink community",section:"Flink Blog",content:`April was an packed month for Apache Flink.
+`}),e.add({id:291,href:"/2015/05/14/april-2015-in-the-flink-community/",title:"April 2015 in the Flink community",section:"Flink Blog",content:`April was an packed month for Apache Flink.
Flink runner for Google Cloud Dataflow # A Flink runner for Google Cloud Dataflow was announced. See the blog posts by data Artisans and the Google Cloud Platform Blog. Google Cloud Dataflow programs can be written using and open-source SDK and run in multiple backends, either as a managed service inside Google’s infrastructure, or leveraging open source runners, including Apache Flink.
Flink 0.9.0-milestone1 release # The highlight of April was of course the availability of Flink 0.9-milestone1. This was a release packed with new features, including, a Python DataSet API, the new SQL-like Table API, FlinkML, a machine learning library on Flink, Gelly, FLink’s Graph API, as well as a mode to run Flink on YARN leveraging Tez. In case you missed it, check out the release announcement blog post for details
Conferences and meetups # April kicked off the conference season. Apache Flink was presented at ApacheCon in Texas (slides), the Hadoop Summit in Brussels featured two talks on Flink (see slides here and here), as well as at the Hadoop User Groups of the Netherlands (slides) and Stockholm. The brand new Apache Flink meetup Stockholm was also established.
Google Summer of Code # Three students will work on Flink during Google’s Summer of Code program on distributed pattern matching, exact and approximate statistics for data streams and windows, as well as asynchronous iterations and updates.
Flink on the web # Fabian Hueske gave an interview at InfoQ on Apache Flink.
Upcoming events # Stay tuned for a wealth of upcoming events! Two Flink talsk will be presented at Berlin Buzzwords, Flink will be presented at the Hadoop Summit in San Jose. A training workshop on Apache Flink is being organized in Berlin. Finally, Flink Forward, the first conference to bring together the whole Flink community is taking place in Berlin in October 2015.
-`}),e.add({id:291,href:"/2015/05/11/juggling-with-bits-and-bytes/",title:"Juggling with Bits and Bytes",section:"Flink Blog",content:` How Apache Flink operates on binary data # Nowadays, a lot of open-source systems for analyzing large data sets are implemented in Java or other JVM-based programming languages. The most well-known example is Apache Hadoop, but also newer frameworks such as Apache Spark, Apache Drill, and also Apache Flink run on JVMs. A common challenge that JVM-based da [...]
+`}),e.add({id:292,href:"/2015/05/11/juggling-with-bits-and-bytes/",title:"Juggling with Bits and Bytes",section:"Flink Blog",content:` How Apache Flink operates on binary data # Nowadays, a lot of open-source systems for analyzing large data sets are implemented in Java or other JVM-based programming languages. The most well-known example is Apache Hadoop, but also newer frameworks such as Apache Spark, Apache Drill, and also Apache Flink run on JVMs. A common challenge that JVM-based da [...]
In this blog post we discuss how Apache Flink manages memory, talk about its custom data de/serialization stack, and show how it operates on binary data.
Data Objects? Let’s put them on the heap! # The most straight-forward approach to process lots of data in a JVM is to put it as objects on the heap and operate on these objects. Caching a data set as objects would be as simple as maintaining a list containing an object for each record. An in-memory sort would simply sort the list of objects. However, this approach has a few notable drawbacks. First of all it is not trivial to watch and control heap memory usage when a lot of objects are [...]
What is Flink doing about that? # Apache Flink has its roots at a research project which aimed to combine the best technologies of MapReduce-based systems and parallel database systems. Coming from this background, Flink has always had its own way of processing data in-memory. Instead of putting lots of objects on the heap, Flink serializes objects into a fixed number of pre-allocated memory segments. Its DBMS-style sort and join algorithms operate as much as possible on this binary data [...]
@@ -5643,7 +5665,7 @@ The memory usage charts shows that the flink-serialized and kryo-serialized cons
Occupied Memory Object-on-Heap Flink-Serialized Kryo-Serialized Sort on Integer approx. 700 MB (heap) 277 MB (sort buffer) 266 MB (sort buffer) Sort on String approx. 700 MB (heap) 315 MB (sort buffer) 266 MB (sort buffer) To summarize, the experiments verify the previously stated benefits of operating on binary data.
We’re not done yet! # Apache Flink features quite a bit of advanced techniques to safely and efficiently process huge amounts of data with limited memory resources. However, there are a few points that could make Flink even more efficient. The Flink community is working on moving the managed memory to off-heap memory. This will allow for smaller JVMs, lower garbage collection overhead, and also easier system configuration. With Flink’s Table API, the semantics of all operations such as a [...]
The groundwork (and a lot more) for operating on binary data is done but there is still some room for making Flink even better and faster. If you are crazy about performance and like to juggle with lot of bits and bytes, join the Flink community!
-TL;DR; Give me three things to remember! # Flink’s active memory management avoids nasty OutOfMemoryErrors that kill your JVMs and reduces garbage collection overhead. Flink features a highly efficient data de/serialization stack that facilitates operations on binary data and makes more data fit into memory. Flink’s DBMS-style operators operate natively on binary data yielding high performance in-memory and destage gracefully to disk if necessary. `}),e.add({id:292,href:"/2015/04/13/anno [...]
+TL;DR; Give me three things to remember! # Flink’s active memory management avoids nasty OutOfMemoryErrors that kill your JVMs and reduces garbage collection overhead. Flink features a highly efficient data de/serialization stack that facilitates operations on binary data and makes more data fit into memory. Flink’s DBMS-style operators operate natively on binary data yielding high performance in-memory and destage gracefully to disk if necessary. `}),e.add({id:293,href:"/2015/04/13/anno [...]
You can download the release here and check out the latest documentation here. Feedback through the Flink mailing lists is, as always, very welcome!
New Features # Table API # Flink’s new Table API offers a higher-level abstraction for interacting with structured data sources. The Table API allows users to execute logical, SQL-like queries on distributed data sets while allowing them to freely mix declarative queries with regular Flink operators. Here is an example that groups and joins two tables:
val clickCounts = clicks .groupBy('user).select('userId, 'url.count as 'count) val activeUsers = users.join(clickCounts) .where('id === 'userId && 'count > 10).select('username, 'count, ...) Tables consist of logical attributes that can be selected by name rather than physical Java and Scala data types. This alleviates a lot of boilerplate code for common ETL tasks and raises the abstraction for Flink programs. Tables are available for both [...]
@@ -5682,7 +5704,7 @@ FLINK-1179: Add button to JobManager web interface to request stack trace of a T
FLINK-1105: Add support for locally sorted output
FLINK-1688: Add socket sink
FLINK-1436: Improve usability of command line interface
-`}),e.add({id:293,href:"/2015/04/07/march-2015-in-the-flink-community/",title:"March 2015 in the Flink community",section:"Flink Blog",content:`March has been a busy month in the Flink community.
+`}),e.add({id:294,href:"/2015/04/07/march-2015-in-the-flink-community/",title:"March 2015 in the Flink community",section:"Flink Blog",content:`March has been a busy month in the Flink community.
Scaling ALS # Flink committers employed at data Artisans published a blog post on how they scaled matrix factorization with Flink and Google Compute Engine to matrices with 28 billion elements.
Learn about the internals of Flink # The community has started an effort to better document the internals of Flink. Check out the first articles on the Flink wiki on how Flink manages memory, how tasks in Flink exchange data, type extraction and serialization in Flink, as well as how Flink builds on Akka for distributed coordination.
Check out also the new blog post on how Flink executes joins with several insights into Flink’s runtime.
@@ -5690,7 +5712,7 @@ Meetups and talks # Flink’s machine learning efforts were presented at the
In the Flink master # Table API in Scala and Java # The new Table API in Flink is now available in both Java and Scala. Check out the examples here (Java) and here (Scala).
Additions to the Machine Learning library # Flink’s Machine Learning library is seeing quite a bit of traction. Recent additions include the CoCoA algorithm for distributed optimization.
Exactly-once delivery guarantees for streaming jobs # Flink streaming jobs now provide exactly once processing guarantees when coupled with persistent sources (notably Apache Kafka). Flink periodically checkpoints and persists the offsets of the sources and restarts from those checkpoints at failure recovery. This functionality is currently limited in that it does not yet handle large state and iterative programs.
-`}),e.add({id:294,href:"/2015/03/13/peeking-into-apache-flinks-engine-room/",title:"Peeking into Apache Flink's Engine Room",section:"Flink Blog",content:` Join Processing in Apache Flink # Joins are prevalent operations in many data processing applications. Most data processing systems feature APIs that make joining data sets very easy. However, the internal algorithms for join processing are much more involved – especially if large data sets need to be efficiently handled. Therefore, j [...]
+`}),e.add({id:295,href:"/2015/03/13/peeking-into-apache-flinks-engine-room/",title:"Peeking into Apache Flink's Engine Room",section:"Flink Blog",content:` Join Processing in Apache Flink # Joins are prevalent operations in many data processing applications. Most data processing systems feature APIs that make joining data sets very easy. However, the internal algorithms for join processing are much more involved – especially if large data sets need to be efficiently handled. Therefore, j [...]
In this blog post, we cut through Apache Flink’s layered architecture and take a look at its internals with a focus on how it handles joins. Specifically, I will
show how easy it is to join data sets using Flink’s fluent APIs, discuss basic distributed join strategies, Flink’s join implementations, and its memory management, talk about Flink’s optimizer that automatically chooses join strategies, show some performance numbers for joining data sets of different sizes, and finally briefly discuss joining of co-located and pre-sorted data sets. Disclaimer: This blog post is exclusively about equi-joins. Whenever I say “join” in the following, I actu [...]
How do I join with Flink? # Flink provides fluent APIs in Java and Scala to write data flow programs. Flink’s APIs are centered around parallel data collections which are called data sets. data sets are processed by applying Transformations that compute new data sets. Flink’s transformations include Map and Reduce as known from MapReduce [1] but also operators for joining, co-grouping, and iterative processing. The documentation gives an overview of all available transformations [2].
@@ -5721,7 +5743,7 @@ Broadcast-Forward, Hybrid-Hash-Join (broadcasting and building with the smaller
As in the single-core benchmark, we run 1:N joins, generate the data on-the-fly, and immediately discard the result after the join. We run the benchmark on 10 n1-highmem-8 Google Compute Engine instances. Each instance is equipped with 8 cores, 52GB RAM, 40GB of which are configured as working memory (5GB per core), and one local SSD for spilling to disk. All benchmarks are performed using the same configuration, i.e., no fine tuning for the respective data sizes is done. The programs ar [...]
As expected, the Broadcast-Forward strategy performs best for very small inputs because the large probe side is not shipped over the network and is locally joined. However, when the size of the broadcasted side grows, two problems arise. First the amount of data which is shipped increases but also each parallel instance has to process the full broadcasted data set. The performance of both Repartitioning strategies behaves similar for growing input sizes which indicates that these strateg [...]
I’ve got sooo much data to join, do I really need to ship it? # We have seen that off-the-shelf distributed joins work really well in Flink. But what if your data is so huge that you do not want to shuffle it across your cluster? We recently added some features to Flink for specifying semantic properties (partitioning and sorting) on input splits and co-located reading of local input files. With these tools at hand, it is possible to join pre-partitioned data sets from your local filesys [...]
-tl;dr: What should I remember from all of this? # Flink’s fluent Scala and Java APIs make joins and other data transformations easy as cake. The optimizer does the hard choices for you, but gives you control in case you know better. Flink’s join implementations perform very good in-memory and gracefully degrade when going to disk. Due to Flink’s robust memory management, there is no need for job- or data-specific memory tuning to avoid a nasty OutOfMemoryException. It just runs out-of-th [...]
+tl;dr: What should I remember from all of this? # Flink’s fluent Scala and Java APIs make joins and other data transformations easy as cake. The optimizer does the hard choices for you, but gives you control in case you know better. Flink’s join implementations perform very good in-memory and gracefully degrade when going to disk. Due to Flink’s robust memory management, there is no need for job- or data-specific memory tuning to avoid a nasty OutOfMemoryException. It just runs out-of-th [...]
0.8.1 release # Flink 0.8.1 was released. This bugfixing release resolves a total of 22 issues.
New committer # Max Michels has been voted a committer by the Flink PMC.
Flink adapter for Apache SAMOA # Apache SAMOA (incubating) is a distributed streaming machine learning (ML) framework with a programming abstraction for distributed streaming ML algorithms. SAMOA runs on a variety of backend engines, currently Apache Storm and Apache S4. A pull request is available at the SAMOA repository that adds a Flink adapter for SAMOA.
@@ -5737,7 +5759,7 @@ Graph<Long, Double, Double> graph = Graph.fromDataSet(vertices, edges, env
Flink Expressions # The newly merged flink-table module is the first step in Flink’s roadmap towards logical queries and SQL support. Here’s a preview on how you can read two CSV file, assign a logical schema to, and apply transformations like filters and joins using logical attributes rather than physical data types.
val customers = getCustomerDataSet(env) .as('id, 'mktSegment) .filter( 'mktSegment === "AUTOMOBILE" ) val orders = getOrdersDataSet(env) .filter( o => dateFormat.parse(o.orderDate).before(date) ) .as('orderId, 'custId, 'orderDate, 'shipPrio) val items = orders.join(customers) .where('custId === 'id) .select('orderId, 'orderDate, 'shipPrio) Access to HCatalog tables # With the flink-hcatalog module, you can now conveniently access [...]
Access to secured YARN clusters/HDFS. # With this change users can access Kerberos secured YARN (and HDFS) Hadoop clusters. Also, basic support for accessing secured HDFS with a standalone Flink setup is now available.
-`}),e.add({id:296,href:"/2015/02/09/introducing-flink-streaming/",title:"Introducing Flink Streaming",section:"Flink Blog",content:`This post is the first of a series of blog posts on Flink Streaming, the recent addition to Apache Flink that makes it possible to analyze continuous data sources in addition to static files. Flink Streaming uses the pipelined Flink engine to process data streams in real time and offers a new API including definition of flexible windows.
+`}),e.add({id:297,href:"/2015/02/09/introducing-flink-streaming/",title:"Introducing Flink Streaming",section:"Flink Blog",content:`This post is the first of a series of blog posts on Flink Streaming, the recent addition to Apache Flink that makes it possible to analyze continuous data sources in addition to static files. Flink Streaming uses the pipelined Flink engine to process data streams in real time and offers a new API including definition of flexible windows.
In this post, we go through an example that uses the Flink Streaming API to compute statistics on stock market data that arrive continuously and combine the stock market data with Twitter streams. See the Streaming Programming Guide for a detailed presentation of the Streaming API.
First, we read a bunch of stock price streams and combine them into one stream of market data. We apply several transformations on this market data stream, like rolling aggregations per stock. Then we emit price warning alerts when the prices are rapidly changing. Moving towards more advanced features, we compute rolling correlations between the market data streams and a Twitter stream with stock mentions.
For running the example implementation please use the 0.9-SNAPSHOT version of Flink as a dependency. The full example code base can be found here in Scala and here in Java7.
@@ -5761,7 +5783,7 @@ Other things to try # For a full feature overview please check the Streaming Gui
Upcoming for streaming # There are some aspects of Flink Streaming that are subjects to change by the next release making this application look even nicer.
Stay tuned for later blog posts on how Flink Streaming works internally, fault tolerance, and performance measurements!
Back to top
-`}),e.add({id:297,href:"/2015/02/04/january-2015-in-the-flink-community/",title:"January 2015 in the Flink community",section:"Flink Blog",content:`Happy 2015! Here is a (hopefully digestible) summary of what happened last month in the Flink community.
+`}),e.add({id:298,href:"/2015/02/04/january-2015-in-the-flink-community/",title:"January 2015 in the Flink community",section:"Flink Blog",content:`Happy 2015! Here is a (hopefully digestible) summary of what happened last month in the Flink community.
0.8.0 release # Flink 0.8.0 was released. See here for the release notes.
Flink roadmap # The community has published a roadmap for 2015 on the Flink wiki. Check it out to see what is coming up in Flink, and pick up an issue to contribute!
Articles in the press # The Apache Software Foundation announced Flink as a Top-Level Project. The announcement was picked up by the media, e.g., here, here, and here.
@@ -5772,7 +5794,7 @@ Using off-heap memory # This pull request enables Flink to use off-heap memory f
Gelly, Flink’s Graph API # This pull request introduces Gelly, Flink’s brand new Graph API. Gelly offers a native graph programming abstraction with functionality for vertex-centric programming, as well as available graph algorithms. See this slide set for an overview of Gelly.
Semantic annotations # Semantic annotations are a powerful mechanism to expose information about the behavior of Flink functions to Flink’s optimizer. The optimizer can leverage this information to generate more efficient execution plans. For example the output of a Reduce operator that groups on the second field of a tuple is still partitioned on that field if the Reduce function does not modify the value of the second field. By exposing this information to the optimizer, the optimizer [...]
New YARN client # The improved YARN client of Flink now allows users to deploy Flink on YARN for executing a single job. Older versions only supported a long-running YARN session. The code of the YARN client has been refactored to provide an (internal) Java API for controlling YARN clusters more easily.
-`}),e.add({id:298,href:"/2015/01/21/apache-flink-0.8.0-available/",title:"Apache Flink 0.8.0 available",section:"Flink Blog",content:`We are pleased to announce the availability of Flink 0.8.0. This release includes new user-facing features as well as performance and bug fixes, extends the support for filesystems and introduces the Scala API and flexible windowing semantics for Flink Streaming. A total of 33 people have contributed to this release, a big thanks to all of them!
+`}),e.add({id:299,href:"/2015/01/21/apache-flink-0.8.0-available/",title:"Apache Flink 0.8.0 available",section:"Flink Blog",content:`We are pleased to announce the availability of Flink 0.8.0. This release includes new user-facing features as well as performance and bug fixes, extends the support for filesystems and introduces the Scala API and flexible windowing semantics for Flink Streaming. A total of 33 people have contributed to this release, a big thanks to all of them!
Download Flink 0.8.0
See the release changelog
Overview of major new features # Extended filesystem support: The former DistributedFileSystem interface has been generalized to HadoopFileSystem now supporting all sub classes of org.apache.hadoop.fs.FileSystem. This allows users to use all file systems supported by Hadoop with Apache Flink. See connecting to other systems
@@ -5783,7 +5805,7 @@ Performance and usability improvements: The new Apache Flink 0.8.0 release bring
Improved input split assignment which maximizes computation locality Smart broadcasting mechanism which minimizes network I/O Custom partitioners which let the user control how the data is partitioned within the cluster. This helps to prevent data skewness and allows to implement highly efficient algorithms. coGroup operator now supports group sorting for its inputs Kryo is the new fallback serializer: Apache Flink has a sophisticated type analysis and serialization framework that is abl [...]
Hadoop 2.2.0+ is now the default Hadoop dependency: With Flink 0.8.0 we made the “hadoop2” build profile the default build for Flink. This means that all users using Hadoop 1 (0.2X or 1.2.X versions) have to specify version “0.8.0-hadoop1” in their pom files.
HBase module updated The HBase version has been updated to 0.98.6.1. Also, Hbase is now available to the Hadoop1 and Hadoop2 profile of Flink.
-Contributors # Marton Balassi Daniel Bali Carsten Brandt Moritz Borgmann Stefan Bunk Paris Carbone Ufuk Celebi Nils Engelbach Stephan Ewen Gyula Fora Gabor Hermann Fabian Hueske Vasiliki Kalavri Johannes Kirschnick Aljoscha Krettek Suneel Marthi Robert Metzger Felix Neutatz Chiwan Park Flavio Pompermaier Mingliang Qi Shiva Teja Reddy Till Rohrmann Henry Saputra Kousuke Saruta Chesney Schepler Erich Schubert Peter Szabo Jonas Traub Kostas Tzoumas Timo Walther Daniel Warneke Chen Xu `}),e. [...]
+Contributors # Marton Balassi Daniel Bali Carsten Brandt Moritz Borgmann Stefan Bunk Paris Carbone Ufuk Celebi Nils Engelbach Stephan Ewen Gyula Fora Gabor Hermann Fabian Hueske Vasiliki Kalavri Johannes Kirschnick Aljoscha Krettek Suneel Marthi Robert Metzger Felix Neutatz Chiwan Park Flavio Pompermaier Mingliang Qi Shiva Teja Reddy Till Rohrmann Henry Saputra Kousuke Saruta Chesney Schepler Erich Schubert Peter Szabo Jonas Traub Kostas Tzoumas Timo Walther Daniel Warneke Chen Xu `}),e. [...]
Flink graduation # The biggest news is that the Apache board approved Flink as a top-level Apache project! The Flink team is working closely with the Apache press team for an official announcement, so stay tuned for details!
New Flink website # The Flink website got a total make-over, both in terms of appearance and content.
Flink IRC channel # A new IRC channel called #flink was created at irc.freenode.org. An easy way to access the IRC channel is through the web client. Feel free to stop by to ask anything or share your ideas about Apache Flink!
@@ -5797,7 +5819,7 @@ Sorting of very large records # Flink’s internal sort-algorithms were impr
Kryo Serialization as the new default fallback # Flink’s build-in type serialization framework is handles all common types very efficiently. Prior versions uses Avro to serialize types that the built-in framework could not handle. Flink serialization system improved a lot over time and by now surpasses the capabilities of Avro in many cases. Kryo now serves as the default fallback serialization framework, supporting a much broader range of types.
Hadoop FileSystem support # This change permits users to use all file systems supported by Hadoop with Flink. In practice this means that users can use Flink with Tachyon, Google Cloud Storage (also out of the box Flink YARN support on Google Compute Cloud), FTP and all the other file system implementations for Hadoop.
Heading to the 0.8.0 release # The community is working hard together with the Apache infra team to migrate the Flink infrastructure to a top-level project. At the same time, the Flink community is working on the Flink 0.8.0 release which should be out very soon.
-`}),e.add({id:300,href:"/2014/11/18/hadoop-compatibility-in-flink/",title:"Hadoop Compatibility in Flink",section:"Flink Blog",content:`Apache Hadoop is an industry standard for scalable analytical data processing. Many data analysis applications have been implemented as Hadoop MapReduce jobs and run in clusters around the world. Apache Flink can be an alternative to MapReduce and improves it in many dimensions. Among other features, Flink provides much better performance and offers APIs [...]
+`}),e.add({id:301,href:"/2014/11/18/hadoop-compatibility-in-flink/",title:"Hadoop Compatibility in Flink",section:"Flink Blog",content:`Apache Hadoop is an industry standard for scalable analytical data processing. Many data analysis applications have been implemented as Hadoop MapReduce jobs and run in clusters around the world. Apache Flink can be an alternative to MapReduce and improves it in many dimensions. Among other features, Flink provides much better performance and offers APIs [...]
Flink’s Hadoop Compatibility Package # To close this gap, Flink provides a Hadoop Compatibility package to wrap functions implemented against Hadoop’s MapReduce interfaces and embed them in Flink programs. This package was developed as part of a Google Summer of Code 2014 project.
With the Hadoop Compatibility package, you can reuse all your Hadoop
InputFormats (mapred and mapreduce APIs) OutputFormats (mapred and mapreduce APIs) Mappers (mapred API) Reducers (mapred API) in Flink programs without changing a line of code. Moreover, Flink also natively supports all Hadoop data types (Writables and WritableComparable).
@@ -5807,7 +5829,7 @@ Hadoop functions can be used at any position within a Flink program and of cours
What comes next? # While the Hadoop compatibility package is already very useful, we are currently working on a dedicated Hadoop Job operation to embed and execute Hadoop jobs as a whole in Flink programs, including their custom partitioning, sorting, and grouping code. With this feature, you will be able to chain multiple Hadoop jobs, mix them with Flink functions, and other operations such as Spargel operations (Pregel/Giraph-style jobs).
Summary # Flink lets you reuse a lot of the code you wrote for Hadoop MapReduce, including all data types, all Input- and OutputFormats, and Mapper and Reducers of the mapred-API. Hadoop functions can be used within Flink programs and mixed with all other Flink functions. Due to Flink’s pipelined execution, Hadoop functions can arbitrarily be assembled without data exchange via HDFS. Moreover, the Flink community is currently working on a dedicated Hadoop Job operation to supporting the [...]
If you want to use Flink’s Hadoop compatibility package checkout our documentation.
-`}),e.add({id:301,href:"/2014/11/04/apache-flink-0.7.0-available/",title:"Apache Flink 0.7.0 available",section:"Flink Blog",content:`We are pleased to announce the availability of Flink 0.7.0. This release includes new user-facing features as well as performance and bug fixes, brings the Scala and Java APIs in sync, and introduces Flink Streaming. A total of 34 people have contributed to this release, a big thanks to all of them!
+`}),e.add({id:302,href:"/2014/11/04/apache-flink-0.7.0-available/",title:"Apache Flink 0.7.0 available",section:"Flink Blog",content:`We are pleased to announce the availability of Flink 0.7.0. This release includes new user-facing features as well as performance and bug fixes, brings the Scala and Java APIs in sync, and introduces Flink Streaming. A total of 34 people have contributed to this release, a big thanks to all of them!
Download Flink 0.7.0 here
See the release changelog here
Overview of major new features # Flink Streaming: The gem of the 0.7.0 release is undoubtedly Flink Streaming. Available currently in alpha, Flink Streaming provides a Java API on top of Apache Flink that can consume streaming data sources (e.g., from Apache Kafka, Apache Flume, and others) and process them in real time. A dedicated blog post on Flink Streaming and its performance is coming up here soon. You can check out the Streaming programming guide here.
@@ -5819,7 +5841,7 @@ Record API deprecated: The (old) Stratosphere Record API has been marked as depr
BLOB service: This release contains a new service to distribute jar files and other binary data among the JobManager, TaskManagers and the client.
Intermediate data sets: A major rewrite of the system internals introduces intermediate data sets as first class citizens. The internal state machine that tracks the distributed tasks has also been completely rewritten for scalability. While this is not visible as a user-facing feature yet, it is the foundation for several upcoming exciting features.
Note: Currently, there is limited support for Java 8 lambdas when compiling and running from an IDE. The problem is due to type erasure and whether Java compilers retain type information. We are currently working with the Eclipse and OpenJDK communities to resolve this.
-Contributors # Tamas Ambrus Mariem Ayadi Marton Balassi Daniel Bali Ufuk Celebi Hung Chang David Eszes Stephan Ewen Judit Feher Gyula Fora Gabor Hermann Fabian Hueske Vasiliki Kalavri Kristof Kovacs Aljoscha Krettek Sebastian Kruse Sebastian Kunert Matyas Manninger Robert Metzger Mingliang Qi Till Rohrmann Henry Saputra Chesnay Schelper Moritz Schubotz Hung Sendoh Chang Peter Szabo Jonas Traub Fabian Tschirschnitz Artem Tsikiridis Kostas Tzoumas Timo Walther Daniel Warneke Tobias Wiens Y [...]
+Contributors # Tamas Ambrus Mariem Ayadi Marton Balassi Daniel Bali Ufuk Celebi Hung Chang David Eszes Stephan Ewen Judit Feher Gyula Fora Gabor Hermann Fabian Hueske Vasiliki Kalavri Kristof Kovacs Aljoscha Krettek Sebastian Kruse Sebastian Kunert Matyas Manninger Robert Metzger Mingliang Qi Till Rohrmann Henry Saputra Chesnay Schelper Moritz Schubotz Hung Sendoh Chang Peter Szabo Jonas Traub Fabian Tschirschnitz Artem Tsikiridis Kostas Tzoumas Timo Walther Daniel Warneke Tobias Wiens Y [...]
We are looking forward to seeing you at any of these events. The following is an overview of each event and links to the respective Meetup pages.
Flink Hackathon, Stockholm (Oct 8-9) # The hackathon will take place at KTH/SICS from Oct 8th-9th. You can sign up here: https://docs.google.com/spreadsheet/viewform?formkey=dDZnMlRtZHJ3Z0hVTlFZVjU2MWtoX0E6MA.
Here is a rough agenda and a list of topics to work upon or look into. Suggestions and more topics are welcome.
@@ -5843,10 +5865,10 @@ http://www.meetup.com/stockholm-hug/events/207323222/
http://www.meetup.com/Apache-Flink-Meetup/events/208227422/
Meetup: Pasadena Big Data User Group (Oct 29) # http://www.meetup.com/Pasadena-Big-Data-Users-Group/
Meetup: Silicon Valley Hands On Programming Events (Nov 4) # http://www.meetup.com/HandsOnProgrammingEvents/events/210504392/
-`}),e.add({id:303,href:"/2014/09/26/apache-flink-0.6.1-available/",title:"Apache Flink 0.6.1 available",section:"Flink Blog",content:`We are happy to announce the availability of Flink 0.6.1.
+`}),e.add({id:304,href:"/2014/09/26/apache-flink-0.6.1-available/",title:"Apache Flink 0.6.1 available",section:"Flink Blog",content:`We are happy to announce the availability of Flink 0.6.1.
0.6.1 is a maintenance release, which includes minor fixes across several parts of the system. We suggest all users of Flink to work with this newest version.
Download the release today.
-`}),e.add({id:304,href:"/2014/08/26/apache-flink-0.6-available/",title:"Apache Flink 0.6 available",section:"Flink Blog",content:`We are happy to announce the availability of Flink 0.6. This is the first release of the system inside the Apache Incubator and under the name Flink. Releases up to 0.5 were under the name Stratosphere, the academic and open source project that Flink originates from.
+`}),e.add({id:305,href:"/2014/08/26/apache-flink-0.6-available/",title:"Apache Flink 0.6 available",section:"Flink Blog",content:`We are happy to announce the availability of Flink 0.6. This is the first release of the system inside the Apache Incubator and under the name Flink. Releases up to 0.5 were under the name Stratosphere, the academic and open source project that Flink originates from.
What is Flink? # Apache Flink is a general-purpose data processing engine for clusters. It runs on YARN clusters on top of data stored in Hadoop, as well as stand-alone. Flink currently has programming APIs in Java and Scala. Jobs are executed via Flink’s own runtime engine. Flink features:
Robust in-memory and out-of-core processing: once read, data stays in memory as much as possible, and is gracefully de-staged to disk in the presence of memory pressure from limited memory or other applications. The runtime is designed to perform very well both in setups with abundant memory and in setups where memory is scarce.
POJO-based APIs: when programming, you do not have to pack your data into key-value pairs or some other framework-specific data model. Rather, you can use arbitrary Java and Scala types to model your data.
@@ -5856,7 +5878,7 @@ Data pipelining/streaming: Flink’s runtime is designed as a pipelined data
Release 0.6 # Flink 0.6 builds on the latest Stratosphere 0.5 release. It includes many bug fixes and improvements that make the system more stable and robust, as well as breaking API changes.
The full release notes are available here.
Download the release here.
-Contributors # Wilson Cao Ufuk Celebi Stephan Ewen Jonathan Hasenburg Markus Holzemer Fabian Hueske Sebastian Kunert Vikhyat Korrapati Aljoscha Krettek Sebastian Kruse Raymond Liu Robert Metzger Mingliang Qi Till Rohrmann Henry Saputra Chesnay Schepler Kostas Tzoumas Robert Waury Timo Walther Daniel Warneke Tobias Wiens `}),e.add({id:305,href:"/how-to-contribute/code-style-and-quality-common/",title:"Code Style and Quality Guide — Common Rules",section:"How to Contribute",content:` Code [...]
+Contributors # Wilson Cao Ufuk Celebi Stephan Ewen Jonathan Hasenburg Markus Holzemer Fabian Hueske Sebastian Kunert Vikhyat Korrapati Aljoscha Krettek Sebastian Kruse Raymond Liu Robert Metzger Mingliang Qi Till Rohrmann Henry Saputra Chesnay Schepler Kostas Tzoumas Robert Waury Timo Walther Daniel Warneke Tobias Wiens `}),e.add({id:306,href:"/how-to-contribute/code-style-and-quality-common/",title:"Code Style and Quality Guide — Common Rules",section:"How to Contribute",content:` Code [...]
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by [...]
Warnings # We strive for zero warnings Even though there are many warnings in existing code, new changes should not add any additional compiler warnings If it is not possible to address the warning in a sane way (in some cases when working with generics) add an annotation to suppress the warning When deprecating methods, check that this does not introduce additional warnings 3. Comments And Code Readability # Comments # Golden rule: Comment as much as necessary to support code understand [...]
Think about
@@ -5905,7 +5927,7 @@ Example of tests in Flink that follow this pattern are:
https://github.com/apache/flink/blob/master/flink-core/src/test/java/org/apache/flink/util/LinkedOptionalMapTest.java https://github.com/apache/flink/blob/master/flink-filesystems/flink-s3-fs-base/src/test/java/org/apache/flink/fs/s3/common/writer/RecoverableMultiPartUploadImplTest.java Avoid Mockito - Use reusable test implementations # Mockito-based tests tend to be costly to maintain in the long run by encouraging duplication of functionality and testing for implementation rather than [...]
At the same time, any timeout value that you manually set is arbitrary. If it’s set too low, you get test instabilities. What too low means depends on numerous factors, such as hardware and current utilization (especially I/O). Moreover, a local timeout is more maintenance-intensive. It’s one more knob where you can tweak a build. If you change the test a bit, you also need to double-check the timeout. Hence, there have been quite a few commits that just increase timeouts.
We are keeping such frameworks out of Flink, to make debugging easier and avoid dependency clashes. ↩︎
-`}),e.add({id:306,href:"/how-to-contribute/code-style-and-quality-components/",title:"Code Style and Quality Guide — Components Guide",section:"How to Contribute",content:` Code Style and Quality Guide — Components Guide # Preamble # Pull Requests & Changes # Common Coding Guide # Java Language Guide # Scala Language Guide # Components Guide # Formatting Guide # Component Specific Guidelines # Additional guidelines about changes in specific components.
+`}),e.add({id:307,href:"/how-to-contribute/code-style-and-quality-components/",title:"Code Style and Quality Guide — Components Guide",section:"How to Contribute",content:` Code Style and Quality Guide — Components Guide # Preamble # Pull Requests & Changes # Common Coding Guide # Java Language Guide # Scala Language Guide # Components Guide # Formatting Guide # Component Specific Guidelines # Additional guidelines about changes in specific components.
Configuration Changes # Where should the config option go?
‘flink-conf.yaml’: All configuration that pertains to execution behavior that one may want to standardize across jobs. Think of it as parameters someone would set wearing an “ops” hat, or someone that provides a stream processing platform to other teams.
‘ExecutionConfig’: Parameters specific to an individual Flink application, needed by the operators during execution. Typical examples are watermark interval, serializer parameters, object reuse.
@@ -5929,7 +5951,7 @@ The Table API is an Embedded Domain Specific Language for analytical programs fo
SQL natively supports NULL for almost every operation and has a 3-valued boolean logic. Make sure to test every feature for nullability as well. Avoid full integration tests
Spawning a Flink mini-cluster and performing compilation of generated code for a SQL query is expensive. Avoid integration tests for planner tests or variations of API calls. Instead, use unit tests that validate the optimized plan which comes out of a planner. Or test the behavior of a runtime operator directly. Compatibility # Don’t introduce physical plan changes in patch releases!
Backwards compatibility for state in streaming SQL relies on the fact that the physical execution plan remains stable. Otherwise the generated Operator Names/IDs change and state cannot be matched and restored. Every bug fix that leads to changes in the optimized physical plan of a streaming pipeline hences breaks compatibility. As a consequence, changes of the kind that lead to different optimizer plans can only be merged in major releases for now. Scala / Java interoperability (legacy [...]
-Consider whether a class will need to interact with a Java class in the future. Use Java collections and Java Optional in interfaces for a smooth integration with Java code. Don’t use features of case classes such as .copy() or apply() for construction if a class is subjected to be converted to Java. Pure Scala user-facing APIs should use pure Scala collections/iterables/etc. for natural and idiomatic (“scalaesk”) integration with Scala. `}),e.add({id:307,href:"/how-to-contribute/code-st [...]
+Consider whether a class will need to interact with a Java class in the future. Use Java collections and Java Optional in interfaces for a smooth integration with Java code. Don’t use features of case classes such as .copy() or apply() for construction if a class is subjected to be converted to Java. Pure Scala user-facing APIs should use pure Scala collections/iterables/etc. for natural and idiomatic (“scalaesk”) integration with Scala. `}),e.add({id:308,href:"/how-to-contribute/code-st [...]
License # Apache license headers. Make sure you have Apache License headers in your files. The RAT plugin is checking for that when you build the code. Imports # Empty line before and after package declaration. No unused imports. No redundant imports. No wildcard imports. They can cause problems when adding to the code and in some cases even during refactoring. Import order. Imports must be ordered alphabetically, grouped into the following blocks, with each block separated by an empty l [...]
Two major sources of long lines are:
Long list of arguments in function declaration or call: void func(type1 arg1, type2 arg2, ...) Long sequence of chained calls: list.stream().map(...).reduce(...).collect(...)... Rules about breaking the long lines:
@@ -5937,7 +5959,7 @@ Break the argument list or chain of calls if the line exceeds limit or earlier i
The opening parenthesis always stays on the line of the parent function name The possible thrown exception list is never broken and stays on the same last line, even if the line length exceeds its limit The line of the function argument should end with a comma staying on the same line except the last argument Example of breaking the list of function arguments:
public void func( int arg1, int arg2, ...) throws E1, E2, E3 { } The dot of a chained call is always on the line of that chained call proceeding the call at the beginning.
Example of breaking the list of chained calls:
-values .stream() .map(...) .collect(...); Braces # Left curly braces ({) must not be placed on a new line. Right curly braces (}) must always be placed at the beginning of the line. Blocks. All statements after if, for, while, do, … must always be encapsulated in a block with curly braces (even if the block contains one statement). Javadocs # All public/protected methods and classes must have a Javadoc. The first sentence of the Javadoc must end with a period. Paragraphs must be separate [...]
+values .stream() .map(...) .collect(...); Braces # Left curly braces ({) must not be placed on a new line. Right curly braces (}) must always be placed at the beginning of the line. Blocks. All statements after if, for, while, do, … must always be encapsulated in a block with curly braces (even if the block contains one statement). Javadocs # All public/protected methods and classes must have a Javadoc. The first sentence of the Javadoc must end with a period. Paragraphs must be separate [...]
Do not use Java Serialization for anything !!! !!!
Do not use Java Serialization for anything !!! !!! !!!
Internal to Flink, Java serialization is used to transport messages and programs through RPC. This is the only case where we use Java serialization. Because of that, some classes need to be serializable (if they are transported via RPC).
@@ -5951,7 +5973,7 @@ map.computeIfAbsent(key, x -> key.toLowerCase()) do:
map.computeIfAbsent(key, k -> k.toLowerCase()); Consider method references instead of inline lambdas
don’t:
map.computeIfAbsent(key, k-> Loader.load(k)); do:
-map.computeIfAbsent(key, Loader::load); Java Streams # Avoid Java Streams in any performance critical code. The main motivation to use Java Streams would be to improve code readability. As such, they can be a good match in parts of the code that are not data-intensive, but deal with coordination.. Even in the latter case, try to limit the scope to a method, or a few private methods within an internal class. `}),e.add({id:309,href:"/how-to-contribute/code-style-and-quality-pull-requests/" [...]
+map.computeIfAbsent(key, Loader::load); Java Streams # Avoid Java Streams in any performance critical code. The main motivation to use Java Streams would be to improve code readability. As such, they can be a good match in parts of the code that are not data-intensive, but deal with coordination.. Even in the latter case, try to limit the scope to a method, or a few private methods within an internal class. `}),e.add({id:310,href:"/how-to-contribute/code-style-and-quality-pull-requests/" [...]
Reviews are much faster and thus contributions get merged sooner. We can ensure higher code quality by overlooking fewer issues in the contributions. Committers can review more contributions in the same time, which helps to keep up with the high rate of contributions that Flink is experiencing Please understand that contributions that do not follow this guide will take longer to review and thus will typically be picked up with lower priority by the community. That is not ill intend, it i [...]
1. JIRA issue and Naming # Make sure that the pull request corresponds to a JIRA issue.
Exceptions are hotfixes, like fixing typos in JavaDocs or documentation files.
@@ -5972,7 +5994,7 @@ https://github.com/apache/flink/pull/6692 (splits cleanup and refactoring from m
In some cases, the issue might be a subtask here, and the component may be different from the Pull Request’s main component. For example, when the commit introduces an end-to-end test for a runtime change, the PR would be tagged as [runtime], but the individual commit would be tagged as [e2e].
Examples for commit messages:
[hotfix] Fix update_branch_version.sh to allow version suffixes [hotfix] [table] Remove unused geometry dependency [FLINK-11704][tests] Improve AbstractCheckpointStateOutputStreamTestBase [FLINK-10569][runtime] Remove Instance usage in ExecutionVertexCancelTest [FLINK-11702][table-planner-blink] Introduce a new table type system 5. Changes to the observable behavior of the system # Contributors should be aware of changes in their PRs that break the observable behavior of Flink in any way [...]
-Assertions have been changed to make tests pass again with the breaking change. Configuration setting that must suddenly be set to (non-default) values to keep existing tests passing. This can happen in particular for new settings with a breaking default. Existing scripts or configurations have to be adjusted. `}),e.add({id:310,href:"/how-to-contribute/code-style-and-quality-scala/",title:"Code Style and Quality Guide — Scala",section:"How to Contribute",content:` Code Style and Quality [...]
+Assertions have been changed to make tests pass again with the breaking change. Configuration setting that must suddenly be set to (non-default) values to keep existing tests passing. This can happen in particular for new settings with a breaking default. Existing scripts or configurations have to be adjusted. `}),e.add({id:311,href:"/how-to-contribute/code-style-and-quality-scala/",title:"Code Style and Quality Guide — Scala",section:"How to Contribute",content:` Code Style and Quality [...]
We do not use Scala in the core APIs and runtime components. We aim to remove existing Scala use (code and dependencies) from those components.
⇒ This is not because we do not like Scala, it is a consequence of “the right tool for the right job” approach (see below).
For APIs, we develop the foundation in Java, and layer Scala on top.
@@ -5985,16 +6007,16 @@ Don’t:
var expressions = new java.util.ArrayList[String]() Do:
var expressions: java.util.List[String] = new java.util.ArrayList[]() Type inference for local variables on the stack is fine.
Use strict visibility. Avoid Scala’s package private features (such as private[flink]) and use regular private/protected instead. Keep in mind that private[flink] and protected members are public in Java. Keep in mind that private[flink] still exposes all members in Flink provided examples. Coding Formatting # Use line wrapping to structure your code.
-Scala’s functional nature allows for long transformation chains (x.map().map().foreach()). In order to force implementers to structure their code, the line length is therefore limited to 100 characters. Use one line per transformation for better maintainability. `}),e.add({id:311,href:"/flink-packages/",title:"flink-packages.org",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is the Flink Kubernetes Operator? # All information on the flink-packages can b [...]
-`}),e.add({id:312,href:"/material/",title:"Material",section:"Apache Flink® — Stateful Computations over Data Streams",content:` Material # Apache Flink Logos # We provide the Apache Flink logo in different sizes and formats. You can download all variants (7.4 MB) or just pick the one you need from this page.
+Scala’s functional nature allows for long transformation chains (x.map().map().foreach()). In order to force implementers to structure their code, the line length is therefore limited to 100 characters. Use one line per transformation for better maintainability. `}),e.add({id:312,href:"/flink-packages/",title:"flink-packages.org",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is the Flink Kubernetes Operator? # All information on the flink-packages can b [...]
+`}),e.add({id:313,href:"/material/",title:"Material",section:"Apache Flink® — Stateful Computations over Data Streams",content:` Material # Apache Flink Logos # We provide the Apache Flink logo in different sizes and formats. You can download all variants (7.4 MB) or just pick the one you need from this page.
Portable Network Graphics (PNG) # Colored logo White filled logo Black outline logo Sizes (px) 50x50, 100x100, 200x200, 500x500, 1000x1000 Sizes (px): 50x50, 100x100, 200x200, 500x500, 1000x1000
Sizes (px): 50x50, 100x100, 200x200, 500x500, 1000x1000 You can find more variants of the logo in this directory or download all variants (7.4 MB).
Scalable Vector Graphics (SVG) # Colored logo White filled logo Black outline logo Colored logo with black text (color_black.svg) White filled logo (white_filled.svg) Black outline logo (black_outline.svg) You can find more variants of the logo in this directory or download all variants (7.4 MB).
Photoshop (PSD) # You can download the logo in PSD format as well:
Colored logo: 1000x1000. Black outline logo with text: 1000x1000, 5000x5000. You can find more variants of the logo in this directory or download all variants (7.4 MB).
Color Scheme # You can use the provided color scheme which incorporates some colors of the Flink logo:
-PDF color scheme Powerpoint color scheme `}),e.add({id:313,href:"/what-is-flink-ml/",title:"What is Flink ML?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is Stateful Functions? # All information on Flink ML can be found on the Flink ML website.
-`}),e.add({id:314,href:"/what-is-flink-table-store/",title:"What is Paimon(incubating) (formerly Flink Table Store)?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is Apache Paimon (formerly Flink Table Store)? # The Flink Table Store had joined Apache Incubator as Apache Paimon(incubating). All information on the Apache Paimon(incubating) can be found on the Paimon website.
-`}),e.add({id:315,href:"/what-is-stateful-functions/",title:"What is Stateful Functions?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is Stateful Functions? # All information on Stateful Functions can be found on the Stateful Functions project website.
-`}),e.add({id:316,href:"/what-is-the-flink-kubernetes-operator/",title:"What is the Flink Kubernetes Operator?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is the Flink Kubernetes Operator? # All information on the Flink Kubernetes Operator can be found on the Flink Kubernetes Operator website.
+PDF color scheme Powerpoint color scheme `}),e.add({id:314,href:"/what-is-flink-ml/",title:"What is Flink ML?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is Stateful Functions? # All information on Flink ML can be found on the Flink ML website.
+`}),e.add({id:315,href:"/what-is-flink-table-store/",title:"What is Paimon(incubating) (formerly Flink Table Store)?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is Apache Paimon (formerly Flink Table Store)? # The Flink Table Store had joined Apache Incubator as Apache Paimon(incubating). All information on the Apache Paimon(incubating) can be found on the Paimon website.
+`}),e.add({id:316,href:"/what-is-stateful-functions/",title:"What is Stateful Functions?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is Stateful Functions? # All information on Stateful Functions can be found on the Stateful Functions project website.
+`}),e.add({id:317,href:"/what-is-the-flink-kubernetes-operator/",title:"What is the Flink Kubernetes Operator?",section:"Apache Flink® — Stateful Computations over Data Streams",content:` What is the Flink Kubernetes Operator? # All information on the Flink Kubernetes Operator can be found on the Flink Kubernetes Operator website.
`})})()
\ No newline at end of file
diff --git a/content/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js b/content/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js
similarity index 84%
rename from content/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js
rename to content/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js
index b9e6aa6229..c0ebcb7ad1 100644
--- a/content/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js
+++ b/content/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js
@@ -1 +1 @@
-"use strict";(function(){const e=document.querySelector("#book-search-input"),t=document.querySelector("#book-search-results");if(!e)return;e.addEventListener("focus",n),e.addEventListener("keyup",s),document.addEventListener("keypress",i);function i(t){if(e===document.activeElement)return;const n=String.fromCharCode(t.charCode);if(!a(n))return;e.focus(),t.preventDefault()}function a(t){const n=e.getAttribute("data-hotkeys")||"";return n.indexOf(t)>=0}function n(){e.removeEventListener(" [...]
\ No newline at end of file
+"use strict";(function(){const e=document.querySelector("#book-search-input"),t=document.querySelector("#book-search-results");if(!e)return;e.addEventListener("focus",n),e.addEventListener("keyup",s),document.addEventListener("keypress",i);function i(t){if(e===document.activeElement)return;const n=String.fromCharCode(t.charCode);if(!a(n))return;e.focus(),t.preventDefault()}function a(t){const n=e.getAttribute("data-hotkeys")||"";return n.indexOf(t)>=0}function n(){e.removeEventListener(" [...]
\ No newline at end of file
diff --git a/content/en/sitemap.xml b/content/en/sitemap.xml
index 5b2932e033..07af3f09c7 100644
--- a/content/en/sitemap.xml
+++ b/content/en/sitemap.xml
@@ -3,7 +3,7 @@
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://flink.apache.org/posts/</loc>
- <lastmod>2026-02-06T00:00:00+00:00</lastmod>
+ <lastmod>2026-02-15T18:00:00+00:00</lastmod>
</url><url>
<loc>https://flink.apache.org/what-is-flink/flink-architecture/</loc>
<xhtml:link
@@ -509,11 +509,11 @@
href="https://flink.apache.org/how-to-contribute/getting-help/"
/>
</url><url>
- <loc>https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/</loc>
- <lastmod>2026-02-06T00:00:00+00:00</lastmod>
+ <loc>https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/</loc>
+ <lastmod>2026-02-15T18:00:00+00:00</lastmod>
</url><url>
<loc>https://flink.apache.org/</loc>
- <lastmod>2026-02-06T00:00:00+00:00</lastmod>
+ <lastmod>2026-02-15T18:00:00+00:00</lastmod>
<xhtml:link
rel="alternate"
hreflang="zh"
@@ -524,6 +524,9 @@
hreflang="en"
href="https://flink.apache.org/"
/>
+ </url><url>
+ <loc>https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/</loc>
+ <lastmod>2026-02-06T00:00:00+00:00</lastmod>
</url><url>
<loc>https://flink.apache.org/2025/12/09/apache-flink-agents-0.1.1-release-announcement/</loc>
<lastmod>2025-12-09T09:00:00+00:00</lastmod>
diff --git a/content/flink-packages/index.html b/content/flink-packages/index.html
index 2cb0bbc604..130306efba 100644
--- a/content/flink-packages/index.html
+++ b/content/flink-packages/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/flink-packages/" title="flink-packages.org">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/index.html b/content/getting-started/index.html
index 63fe6f62e9..1bb5c127de 100644
--- a/content/getting-started/index.html
+++ b/content/getting-started/index.html
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/" title="教程">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/getting-started/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
diff --git a/content/getting-started/training-course/index.html b/content/getting-started/training-course/index.html
index 2aecc7759f..4f0c1ee4be 100644
--- a/content/getting-started/training-course/index.html
+++ b/content/getting-started/training-course/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/training-course/" title="Training Course">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/with-flink-agents/index.html b/content/getting-started/with-flink-agents/index.html
index e6605a5b26..d35bf848d4 100644
--- a/content/getting-started/with-flink-agents/index.html
+++ b/content/getting-started/with-flink-agents/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/with-flink-agents/" title="With Flink Agents">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/with-flink-cdc/index.html b/content/getting-started/with-flink-cdc/index.html
index a4ac076c95..ec232d75ed 100644
--- a/content/getting-started/with-flink-cdc/index.html
+++ b/content/getting-started/with-flink-cdc/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/with-flink-cdc/" title="With Flink CDC">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/with-flink-kubernetes-operator/index.html b/content/getting-started/with-flink-kubernetes-operator/index.html
index 18883a014a..f9a591beac 100644
--- a/content/getting-started/with-flink-kubernetes-operator/index.html
+++ b/content/getting-started/with-flink-kubernetes-operator/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/with-flink-kubernetes-operator/" title="With Flink Kubernetes Operator">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/with-flink-ml/index.html b/content/getting-started/with-flink-ml/index.html
index f117678fe8..e3ba535fc6 100644
--- a/content/getting-started/with-flink-ml/index.html
+++ b/content/getting-started/with-flink-ml/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/with-flink-ml/" title="With Flink ML">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/with-flink-stateful-functions/index.html b/content/getting-started/with-flink-stateful-functions/index.html
index 159f34852c..3fac6206db 100644
--- a/content/getting-started/with-flink-stateful-functions/index.html
+++ b/content/getting-started/with-flink-stateful-functions/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/with-flink-stateful-functions/" title="With Flink Stateful Functions">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/getting-started/with-flink/index.html b/content/getting-started/with-flink/index.html
index 3b77152d57..31059021b3 100644
--- a/content/getting-started/with-flink/index.html
+++ b/content/getting-started/with-flink/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/getting-started/with-flink/" title="With Flink">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/code-style-and-quality-common/index.html b/content/how-to-contribute/code-style-and-quality-common/index.html
index 50cab2db94..de1dc76a5a 100644
--- a/content/how-to-contribute/code-style-and-quality-common/index.html
+++ b/content/how-to-contribute/code-style-and-quality-common/index.html
@@ -30,7 +30,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-common/" title="Code Style and Quality Guide — Common Rules">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -508,33 +508,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Common Rules
<a class="anchor" href="#code-style-and-quality-guide--common-rules">#</a>
</h1>
-<h4 id="preamblehahahugoshortcode65s0hbhb">
+<h4 id="preamblehahahugoshortcode62s0hbhb">
<a href="/how-to-contribute/code-style-and-quality-preamble/">Preamble</a>
- <a class="anchor" href="#preamblehahahugoshortcode65s0hbhb">#</a>
+ <a class="anchor" href="#preamblehahahugoshortcode62s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode65s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode62s1hbhb">
<a href="/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode65s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode62s1hbhb">#</a>
</h4>
-<h4 id="common-coding-guidehahahugoshortcode65s2hbhb">
+<h4 id="common-coding-guidehahahugoshortcode62s2hbhb">
<a href="/how-to-contribute/code-style-and-quality-common/">Common Coding Guide</a>
- <a class="anchor" href="#common-coding-guidehahahugoshortcode65s2hbhb">#</a>
+ <a class="anchor" href="#common-coding-guidehahahugoshortcode62s2hbhb">#</a>
</h4>
-<h4 id="java-language-guidehahahugoshortcode65s3hbhb">
+<h4 id="java-language-guidehahahugoshortcode62s3hbhb">
<a href="/how-to-contribute/code-style-and-quality-java/">Java Language Guide</a>
- <a class="anchor" href="#java-language-guidehahahugoshortcode65s3hbhb">#</a>
+ <a class="anchor" href="#java-language-guidehahahugoshortcode62s3hbhb">#</a>
</h4>
-<h4 id="scala-language-guidehahahugoshortcode65s4hbhb">
+<h4 id="scala-language-guidehahahugoshortcode62s4hbhb">
<a href="/how-to-contribute/code-style-and-quality-scala/">Scala Language Guide</a>
- <a class="anchor" href="#scala-language-guidehahahugoshortcode65s4hbhb">#</a>
+ <a class="anchor" href="#scala-language-guidehahahugoshortcode62s4hbhb">#</a>
</h4>
-<h4 id="components-guidehahahugoshortcode65s5hbhb">
+<h4 id="components-guidehahahugoshortcode62s5hbhb">
<a href="/how-to-contribute/code-style-and-quality-components/">Components Guide</a>
- <a class="anchor" href="#components-guidehahahugoshortcode65s5hbhb">#</a>
+ <a class="anchor" href="#components-guidehahahugoshortcode62s5hbhb">#</a>
</h4>
-<h4 id="formatting-guidehahahugoshortcode65s6hbhb">
+<h4 id="formatting-guidehahahugoshortcode62s6hbhb">
<a href="/how-to-contribute/code-style-and-quality-formatting/">Formatting Guide</a>
- <a class="anchor" href="#formatting-guidehahahugoshortcode65s6hbhb">#</a>
+ <a class="anchor" href="#formatting-guidehahahugoshortcode62s6hbhb">#</a>
</h4>
<hr>
<h2 id="1-copyright">
diff --git a/content/how-to-contribute/code-style-and-quality-components/index.html b/content/how-to-contribute/code-style-and-quality-components/index.html
index 18492ce13b..c0ccf52d70 100644
--- a/content/how-to-contribute/code-style-and-quality-components/index.html
+++ b/content/how-to-contribute/code-style-and-quality-components/index.html
@@ -32,7 +32,7 @@ Configuration Changes # Where should the config option go?
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-components/" title="Apache Flink 代码样式和质量指南 — 组件">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -510,33 +510,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Components Guide
<a class="anchor" href="#code-style-and-quality-guide--components-guide">#</a>
</h1>
-<h4 id="preamblehahahugoshortcode68s0hbhb">
+<h4 id="preamblehahahugoshortcode72s0hbhb">
<a href="/how-to-contribute/code-style-and-quality-preamble/">Preamble</a>
- <a class="anchor" href="#preamblehahahugoshortcode68s0hbhb">#</a>
+ <a class="anchor" href="#preamblehahahugoshortcode72s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode68s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode72s1hbhb">
<a href="/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode68s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode72s1hbhb">#</a>
</h4>
-<h4 id="common-coding-guidehahahugoshortcode68s2hbhb">
+<h4 id="common-coding-guidehahahugoshortcode72s2hbhb">
<a href="/how-to-contribute/code-style-and-quality-common/">Common Coding Guide</a>
- <a class="anchor" href="#common-coding-guidehahahugoshortcode68s2hbhb">#</a>
+ <a class="anchor" href="#common-coding-guidehahahugoshortcode72s2hbhb">#</a>
</h4>
-<h4 id="java-language-guidehahahugoshortcode68s3hbhb">
+<h4 id="java-language-guidehahahugoshortcode72s3hbhb">
<a href="/how-to-contribute/code-style-and-quality-java/">Java Language Guide</a>
- <a class="anchor" href="#java-language-guidehahahugoshortcode68s3hbhb">#</a>
+ <a class="anchor" href="#java-language-guidehahahugoshortcode72s3hbhb">#</a>
</h4>
-<h4 id="scala-language-guidehahahugoshortcode68s4hbhb">
+<h4 id="scala-language-guidehahahugoshortcode72s4hbhb">
<a href="/how-to-contribute/code-style-and-quality-scala/">Scala Language Guide</a>
- <a class="anchor" href="#scala-language-guidehahahugoshortcode68s4hbhb">#</a>
+ <a class="anchor" href="#scala-language-guidehahahugoshortcode72s4hbhb">#</a>
</h4>
-<h4 id="components-guidehahahugoshortcode68s5hbhb">
+<h4 id="components-guidehahahugoshortcode72s5hbhb">
<a href="/how-to-contribute/code-style-and-quality-components/">Components Guide</a>
- <a class="anchor" href="#components-guidehahahugoshortcode68s5hbhb">#</a>
+ <a class="anchor" href="#components-guidehahahugoshortcode72s5hbhb">#</a>
</h4>
-<h4 id="formatting-guidehahahugoshortcode68s6hbhb">
+<h4 id="formatting-guidehahahugoshortcode72s6hbhb">
<a href="/how-to-contribute/code-style-and-quality-formatting/">Formatting Guide</a>
- <a class="anchor" href="#formatting-guidehahahugoshortcode68s6hbhb">#</a>
+ <a class="anchor" href="#formatting-guidehahahugoshortcode72s6hbhb">#</a>
</h4>
<h2 id="component-specific-guidelines">
Component Specific Guidelines
diff --git a/content/how-to-contribute/code-style-and-quality-formatting/index.html b/content/how-to-contribute/code-style-and-quality-formatting/index.html
index cf80bce2c0..63ac9cbc0c 100644
--- a/content/how-to-contribute/code-style-and-quality-formatting/index.html
+++ b/content/how-to-contribute/code-style-and-quality-formatting/index.html
@@ -30,7 +30,7 @@ License # Apache license headers." />
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-formatting/" title="Code Style and Quality Guide — Formatting Guide">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -508,33 +508,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Formatting Guide
<a class="anchor" href="#code-style-and-quality-guide--formatting-guide">#</a>
</h1>
-<h4 id="preamblehahahugoshortcode67s0hbhb">
+<h4 id="preamblehahahugoshortcode66s0hbhb">
<a href="/how-to-contribute/code-style-and-quality-preamble/">Preamble</a>
- <a class="anchor" href="#preamblehahahugoshortcode67s0hbhb">#</a>
+ <a class="anchor" href="#preamblehahahugoshortcode66s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode67s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode66s1hbhb">
<a href="/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode67s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode66s1hbhb">#</a>
</h4>
-<h4 id="common-coding-guidehahahugoshortcode67s2hbhb">
+<h4 id="common-coding-guidehahahugoshortcode66s2hbhb">
<a href="/how-to-contribute/code-style-and-quality-common/">Common Coding Guide</a>
- <a class="anchor" href="#common-coding-guidehahahugoshortcode67s2hbhb">#</a>
+ <a class="anchor" href="#common-coding-guidehahahugoshortcode66s2hbhb">#</a>
</h4>
-<h4 id="java-language-guidehahahugoshortcode67s3hbhb">
+<h4 id="java-language-guidehahahugoshortcode66s3hbhb">
<a href="/how-to-contribute/code-style-and-quality-java/">Java Language Guide</a>
- <a class="anchor" href="#java-language-guidehahahugoshortcode67s3hbhb">#</a>
+ <a class="anchor" href="#java-language-guidehahahugoshortcode66s3hbhb">#</a>
</h4>
-<h4 id="scala-language-guidehahahugoshortcode67s4hbhb">
+<h4 id="scala-language-guidehahahugoshortcode66s4hbhb">
<a href="/how-to-contribute/code-style-and-quality-scala/">Scala Language Guide</a>
- <a class="anchor" href="#scala-language-guidehahahugoshortcode67s4hbhb">#</a>
+ <a class="anchor" href="#scala-language-guidehahahugoshortcode66s4hbhb">#</a>
</h4>
-<h4 id="components-guidehahahugoshortcode67s5hbhb">
+<h4 id="components-guidehahahugoshortcode66s5hbhb">
<a href="/how-to-contribute/code-style-and-quality-components/">Components Guide</a>
- <a class="anchor" href="#components-guidehahahugoshortcode67s5hbhb">#</a>
+ <a class="anchor" href="#components-guidehahahugoshortcode66s5hbhb">#</a>
</h4>
-<h4 id="formatting-guidehahahugoshortcode67s6hbhb">
+<h4 id="formatting-guidehahahugoshortcode66s6hbhb">
<a href="/how-to-contribute/code-style-and-quality-formatting/">Formatting Guide</a>
- <a class="anchor" href="#formatting-guidehahahugoshortcode67s6hbhb">#</a>
+ <a class="anchor" href="#formatting-guidehahahugoshortcode66s6hbhb">#</a>
</h4>
<h2 id="java-code-formatting-style">
Java Code Formatting Style
diff --git a/content/how-to-contribute/code-style-and-quality-java/index.html b/content/how-to-contribute/code-style-and-quality-java/index.html
index f1b8c13e1d..4314983bf6 100644
--- a/content/how-to-contribute/code-style-and-quality-java/index.html
+++ b/content/how-to-contribute/code-style-and-quality-java/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-java/" title="Code Style and Quality Guide — Java">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -506,33 +506,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Java
<a class="anchor" href="#code-style-and-quality-guide--java">#</a>
</h1>
-<h4 id="preamblehahahugoshortcode69s0hbhb">
+<h4 id="preamblehahahugoshortcode68s0hbhb">
<a href="/how-to-contribute/code-style-and-quality-preamble/">Preamble</a>
- <a class="anchor" href="#preamblehahahugoshortcode69s0hbhb">#</a>
+ <a class="anchor" href="#preamblehahahugoshortcode68s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode69s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode68s1hbhb">
<a href="/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode69s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode68s1hbhb">#</a>
</h4>
-<h4 id="common-coding-guidehahahugoshortcode69s2hbhb">
+<h4 id="common-coding-guidehahahugoshortcode68s2hbhb">
<a href="/how-to-contribute/code-style-and-quality-common/">Common Coding Guide</a>
- <a class="anchor" href="#common-coding-guidehahahugoshortcode69s2hbhb">#</a>
+ <a class="anchor" href="#common-coding-guidehahahugoshortcode68s2hbhb">#</a>
</h4>
-<h4 id="java-language-guidehahahugoshortcode69s3hbhb">
+<h4 id="java-language-guidehahahugoshortcode68s3hbhb">
<a href="/how-to-contribute/code-style-and-quality-java/">Java Language Guide</a>
- <a class="anchor" href="#java-language-guidehahahugoshortcode69s3hbhb">#</a>
+ <a class="anchor" href="#java-language-guidehahahugoshortcode68s3hbhb">#</a>
</h4>
-<h4 id="scala-language-guidehahahugoshortcode69s4hbhb">
+<h4 id="scala-language-guidehahahugoshortcode68s4hbhb">
<a href="/how-to-contribute/code-style-and-quality-scala/">Scala Language Guide</a>
- <a class="anchor" href="#scala-language-guidehahahugoshortcode69s4hbhb">#</a>
+ <a class="anchor" href="#scala-language-guidehahahugoshortcode68s4hbhb">#</a>
</h4>
-<h4 id="components-guidehahahugoshortcode69s5hbhb">
+<h4 id="components-guidehahahugoshortcode68s5hbhb">
<a href="/how-to-contribute/code-style-and-quality-components/">Components Guide</a>
- <a class="anchor" href="#components-guidehahahugoshortcode69s5hbhb">#</a>
+ <a class="anchor" href="#components-guidehahahugoshortcode68s5hbhb">#</a>
</h4>
-<h4 id="formatting-guidehahahugoshortcode69s6hbhb">
+<h4 id="formatting-guidehahahugoshortcode68s6hbhb">
<a href="/how-to-contribute/code-style-and-quality-formatting/">Formatting Guide</a>
- <a class="anchor" href="#formatting-guidehahahugoshortcode69s6hbhb">#</a>
+ <a class="anchor" href="#formatting-guidehahahugoshortcode68s6hbhb">#</a>
</h4>
<h2 id="java-language-features-and-libraries">
Java Language Features and Libraries
diff --git a/content/how-to-contribute/code-style-and-quality-preamble/index.html b/content/how-to-contribute/code-style-and-quality-preamble/index.html
index 2ccd596e43..f98bb3725d 100644
--- a/content/how-to-contribute/code-style-and-quality-preamble/index.html
+++ b/content/how-to-contribute/code-style-and-quality-preamble/index.html
@@ -30,7 +30,7 @@ A code contribution (or any piece of code) can be evaluated in various ways: One
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-preamble/" title="代码样式与质量指南">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -508,33 +508,33 @@ https://github.com/alex-shpak/hugo-book
Apache Flink Code Style and Quality Guide
<a class="anchor" href="#apache-flink-code-style-and-quality-guide">#</a>
</h1>
-<h4 id="preamblehahahugoshortcode71s0hbhb">
+<h4 id="preamblehahahugoshortcode70s0hbhb">
<a href="/how-to-contribute/code-style-and-quality-preamble/">Preamble</a>
- <a class="anchor" href="#preamblehahahugoshortcode71s0hbhb">#</a>
+ <a class="anchor" href="#preamblehahahugoshortcode70s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode71s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode70s1hbhb">
<a href="/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode71s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode70s1hbhb">#</a>
</h4>
-<h4 id="common-coding-guidehahahugoshortcode71s2hbhb">
+<h4 id="common-coding-guidehahahugoshortcode70s2hbhb">
<a href="/how-to-contribute/code-style-and-quality-common/">Common Coding Guide</a>
- <a class="anchor" href="#common-coding-guidehahahugoshortcode71s2hbhb">#</a>
+ <a class="anchor" href="#common-coding-guidehahahugoshortcode70s2hbhb">#</a>
</h4>
-<h4 id="java-language-guidehahahugoshortcode71s3hbhb">
+<h4 id="java-language-guidehahahugoshortcode70s3hbhb">
<a href="/how-to-contribute/code-style-and-quality-java/">Java Language Guide</a>
- <a class="anchor" href="#java-language-guidehahahugoshortcode71s3hbhb">#</a>
+ <a class="anchor" href="#java-language-guidehahahugoshortcode70s3hbhb">#</a>
</h4>
-<h4 id="scala-language-guidehahahugoshortcode71s4hbhb">
+<h4 id="scala-language-guidehahahugoshortcode70s4hbhb">
<a href="/how-to-contribute/code-style-and-quality-scala/">Scala Language Guide</a>
- <a class="anchor" href="#scala-language-guidehahahugoshortcode71s4hbhb">#</a>
+ <a class="anchor" href="#scala-language-guidehahahugoshortcode70s4hbhb">#</a>
</h4>
-<h4 id="components-guidehahahugoshortcode71s5hbhb">
+<h4 id="components-guidehahahugoshortcode70s5hbhb">
<a href="/how-to-contribute/code-style-and-quality-components/">Components Guide</a>
- <a class="anchor" href="#components-guidehahahugoshortcode71s5hbhb">#</a>
+ <a class="anchor" href="#components-guidehahahugoshortcode70s5hbhb">#</a>
</h4>
-<h4 id="formatting-guidehahahugoshortcode71s6hbhb">
+<h4 id="formatting-guidehahahugoshortcode70s6hbhb">
<a href="/how-to-contribute/code-style-and-quality-formatting/">Formatting Guide</a>
- <a class="anchor" href="#formatting-guidehahahugoshortcode71s6hbhb">#</a>
+ <a class="anchor" href="#formatting-guidehahahugoshortcode70s6hbhb">#</a>
</h4>
<hr>
<p>This is an attempt to capture the code and quality standard that we want to maintain.</p>
diff --git a/content/how-to-contribute/code-style-and-quality-pull-requests/index.html b/content/how-to-contribute/code-style-and-quality-pull-requests/index.html
index 8b210cdafd..0d837faabe 100644
--- a/content/how-to-contribute/code-style-and-quality-pull-requests/index.html
+++ b/content/how-to-contribute/code-style-and-quality-pull-requests/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-pull-requests/" title="Code Style and Quality Guide — Pull Requests & Changes">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/code-style-and-quality-scala/index.html b/content/how-to-contribute/code-style-and-quality-scala/index.html
index 1b6863430b..7ed9c21648 100644
--- a/content/how-to-contribute/code-style-and-quality-scala/index.html
+++ b/content/how-to-contribute/code-style-and-quality-scala/index.html
@@ -30,7 +30,7 @@ We do not use Scala in the core APIs and runtime components. We aim to remove ex
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/code-style-and-quality-scala/" title="Code Style and Quality Guide — Scala">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
@@ -508,33 +508,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Scala
<a class="anchor" href="#code-style-and-quality-guide--scala">#</a>
</h1>
-<h4 id="preamblehahahugoshortcode75s0hbhb">
+<h4 id="preamblehahahugoshortcode74s0hbhb">
<a href="/how-to-contribute/code-style-and-quality-preamble/">Preamble</a>
- <a class="anchor" href="#preamblehahahugoshortcode75s0hbhb">#</a>
+ <a class="anchor" href="#preamblehahahugoshortcode74s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode75s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode74s1hbhb">
<a href="/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode75s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode74s1hbhb">#</a>
</h4>
-<h4 id="common-coding-guidehahahugoshortcode75s2hbhb">
+<h4 id="common-coding-guidehahahugoshortcode74s2hbhb">
<a href="/how-to-contribute/code-style-and-quality-common/">Common Coding Guide</a>
- <a class="anchor" href="#common-coding-guidehahahugoshortcode75s2hbhb">#</a>
+ <a class="anchor" href="#common-coding-guidehahahugoshortcode74s2hbhb">#</a>
</h4>
-<h4 id="java-language-guidehahahugoshortcode75s3hbhb">
+<h4 id="java-language-guidehahahugoshortcode74s3hbhb">
<a href="/how-to-contribute/code-style-and-quality-java/">Java Language Guide</a>
- <a class="anchor" href="#java-language-guidehahahugoshortcode75s3hbhb">#</a>
+ <a class="anchor" href="#java-language-guidehahahugoshortcode74s3hbhb">#</a>
</h4>
-<h4 id="scala-language-guidehahahugoshortcode75s4hbhb">
+<h4 id="scala-language-guidehahahugoshortcode74s4hbhb">
<a href="/how-to-contribute/code-style-and-quality-scala/">Scala Language Guide</a>
- <a class="anchor" href="#scala-language-guidehahahugoshortcode75s4hbhb">#</a>
+ <a class="anchor" href="#scala-language-guidehahahugoshortcode74s4hbhb">#</a>
</h4>
-<h4 id="components-guidehahahugoshortcode75s5hbhb">
+<h4 id="components-guidehahahugoshortcode74s5hbhb">
<a href="/how-to-contribute/code-style-and-quality-components/">Components Guide</a>
- <a class="anchor" href="#components-guidehahahugoshortcode75s5hbhb">#</a>
+ <a class="anchor" href="#components-guidehahahugoshortcode74s5hbhb">#</a>
</h4>
-<h4 id="formatting-guidehahahugoshortcode75s6hbhb">
+<h4 id="formatting-guidehahahugoshortcode74s6hbhb">
<a href="/how-to-contribute/code-style-and-quality-formatting/">Formatting Guide</a>
- <a class="anchor" href="#formatting-guidehahahugoshortcode75s6hbhb">#</a>
+ <a class="anchor" href="#formatting-guidehahahugoshortcode74s6hbhb">#</a>
</h4>
<h2 id="scala-language-features">
Scala Language Features
diff --git a/content/how-to-contribute/contribute-code/index.html b/content/how-to-contribute/contribute-code/index.html
index b1edcd8648..2f9e42f022 100644
--- a/content/how-to-contribute/contribute-code/index.html
+++ b/content/how-to-contribute/contribute-code/index.html
@@ -30,7 +30,7 @@ Please feel free to ask questions at any time. Either send a mail to the Dev mai
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/contribute-code/" title="贡献代码">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/contribute-documentation/index.html b/content/how-to-contribute/contribute-documentation/index.html
index 61e7714860..dc86d40e9e 100644
--- a/content/how-to-contribute/contribute-documentation/index.html
+++ b/content/how-to-contribute/contribute-documentation/index.html
@@ -30,7 +30,7 @@ Obtain the documentation sources # Apache Flink’s documentation is maintai
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/contribute-documentation/" title="贡献文档">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/documentation-style-guide/index.html b/content/how-to-contribute/documentation-style-guide/index.html
index 8baa3ca9fe..0993e25a2d 100644
--- a/content/how-to-contribute/documentation-style-guide/index.html
+++ b/content/how-to-contribute/documentation-style-guide/index.html
@@ -30,7 +30,7 @@ Language # The Flink documentation is maintained in US English and Chinese — w
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/documentation-style-guide/" title="文档样式指南">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/getting-help/index.html b/content/how-to-contribute/getting-help/index.html
index 8ba2490258..f4b81260ef 100644
--- a/content/how-to-contribute/getting-help/index.html
+++ b/content/how-to-contribute/getting-help/index.html
@@ -32,7 +32,7 @@ Before posting to the mailing list, you can search the mailing list archives for
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/getting-help/" title="获取帮助">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/improve-website/index.html b/content/how-to-contribute/improve-website/index.html
index 98f514da10..3a9baa30b0 100644
--- a/content/how-to-contribute/improve-website/index.html
+++ b/content/how-to-contribute/improve-website/index.html
@@ -32,7 +32,7 @@ Obtain the website sources # The website of Apache Flink is hosted in a dedicate
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/improve-website/" title="贡献网站">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/index.html b/content/how-to-contribute/index.html
index 5edf1126e7..991fc557be 100644
--- a/content/how-to-contribute/index.html
+++ b/content/how-to-contribute/index.html
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/" title="How to Contribute">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/how-to-contribute/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
diff --git a/content/how-to-contribute/overview/index.html b/content/how-to-contribute/overview/index.html
index 003f2d4288..d6d56257ec 100644
--- a/content/how-to-contribute/overview/index.html
+++ b/content/how-to-contribute/overview/index.html
@@ -30,7 +30,7 @@ What do you want to do?" />
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/overview/" title="如何参与贡献">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/how-to-contribute/reviewing-prs/index.html b/content/how-to-contribute/reviewing-prs/index.html
index 0ffff4e779..be7f4e1fbe 100644
--- a/content/how-to-contribute/reviewing-prs/index.html
+++ b/content/how-to-contribute/reviewing-prs/index.html
@@ -30,7 +30,7 @@ Contributors have a good contribution experience. Our reviews are structured and
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/how-to-contribute/reviewing-prs/" title="审核 Pull Request">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-1.png b/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-1.png
new file mode 100644
index 0000000000..c579ea01fc
Binary files /dev/null and b/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-1.png differ
diff --git a/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-2.png b/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-2.png
new file mode 100644
index 0000000000..0a55b092ea
Binary files /dev/null and b/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-diagram-2.png differ
diff --git a/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-modifications.png b/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-modifications.png
new file mode 100644
index 0000000000..9d608387df
Binary files /dev/null and b/content/img/blog/2026-02-16-release-kubernetes-operator-1.14.0/blue-green-modifications.png differ
diff --git a/content/index.html b/content/index.html
index 981b2ec8d0..af422ccf45 100644
--- a/content/index.html
+++ b/content/index.html
@@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
-<meta name="description" content="Recent Flink blogs Apache Flink Agents 0.2.0 Release Announcement February 6, 2026 - Xintong Song. The Apache Flink Community is excited to announce the release of Apache Flink Agents 0.2.0. Get access to Flink Agents 0.2.0 now: Download the release here. Find documentation and quickstart examples … Continue reading Apache Flink Agents 0.1.1 Release Announcement December 9, 2025 - Wenjin Xie. The Apache Flink Community is pleased to announce the first bu [...]
+<meta name="description" content="Recent Flink blogs Apache Flink Kubernetes Operator 1.14.0 Release Announcement February 15, 2026 - Sergio Chong Loo / Daniel Rossos. The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0! This release introduces a major new capability for production deployments: native Blue/Green … Continue reading Apache Flink Agents 0.2.0 Release Announcement February 6, 2026 - Xintong Song. The Apache Flink Community is exc [...]
<meta name="theme-color" content="#FFFFFF"><meta property="og:title" content="Apache Flink® — Stateful Computations over Data Streams" />
<meta property="og:description" content="" />
<meta property="og:type" content="website" />
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/" title="Apache Flink Documentation">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -659,6 +659,23 @@ under the License.
<div class="wrapper">
+ <div class="card">
+ <div class="heading">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</div>
+ <div class="body">
+ <p>
+ February 15, 2026 -
+
+ Sergio Chong Loo / Daniel Rossos.
+
+ </p>
+ <p class="truncate">
+ The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
+This release introduces a major new capability for production deployments: native Blue/Green …
+ </p>
+ <a href="/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Continue reading</a>
+ </div>
+ </div>
+
<div class="card">
<div class="heading">Apache Flink Agents 0.2.0 Release Announcement</div>
<div class="body">
@@ -694,22 +711,6 @@ This release includes 11 bug fixes, vulnerability fixes, and minor improvements
</div>
</div>
- <div class="card">
- <div class="heading">Apache Flink 2.2.0: Advancing Real-Time Data + AI and Empowering Stream Processing for the AI Era</div>
- <div class="body">
- <p>
- December 4, 2025 -
-
- Hang Ruan.
-
- </p>
- <p class="truncate">
- The Apache Flink PMC is proud to announce the release of Apache Flink 2.2.0. Flink 2.2.0 further enriches AI capabilities, enhances materialized tables and the Connector framework, and improves batch …
- </p>
- <a href="/2025/12/04/apache-flink-2.2.0-advancing-real-time-data--ai-and-empowering-stream-processing-for-the-ai-era/">Continue reading</a>
- </div>
- </div>
-
diff --git a/content/index.xml b/content/index.xml
index d325db1834..1941c465bd 100644
--- a/content/index.xml
+++ b/content/index.xml
@@ -6,7 +6,7 @@
<description>Recent content in Apache Flink® — Stateful Computations over Data Streams on Apache Flink</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
- <lastBuildDate>Fri, 06 Feb 2026 00:00:00 +0000</lastBuildDate>
+ <lastBuildDate>Sun, 15 Feb 2026 18:00:00 +0000</lastBuildDate>
<atom:link href="https://flink.apache.org/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Architecture</title>
@@ -274,6 +274,13 @@
<guid>https://flink.apache.org/how-to-contribute/getting-help/</guid>
<description>Getting Help # Having a Question? # The Apache Flink community answers many user questions every day. You can search for answers and advice in the archives or reach out to the community for help and guidance.
User Mailing List # Many Flink users, contributors, and committers are subscribed to Flink&rsquo;s user mailing list. The user mailing list is a very good place to ask for help.
Before posting to the mailing list, you can search the mailing list archiv [...]
</item>
+ <item>
+ <title>Apache Flink Kubernetes Operator 1.14.0 Release Announcement</title>
+ <link>https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/</link>
+ <pubDate>Sun, 15 Feb 2026 18:00:00 +0000</pubDate>
+ <guid>https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/</guid>
+ <description>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
This release introduces a major new capability for production deployments: native Blue/Green deployment support. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.
We encourage you to download the release and share your experience with the community through the Flink mailing lists [...]
+ </item>
<item>
<title>Apache Flink Agents 0.2.0 Release Announcement</title>
<link>https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/</link>
diff --git a/content/material/index.html b/content/material/index.html
index bbe916989e..7c4be96a6f 100644
--- a/content/material/index.html
+++ b/content/material/index.html
@@ -32,7 +32,7 @@ Sizes (px): 50x50, 100x100, 200x200, 500x500, 1000x1000 You can find more varian
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/material/" title="素材">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/news/2026/02/16/release-kubernetes-operator-1.14.0.html b/content/news/2026/02/16/release-kubernetes-operator-1.14.0.html
new file mode 100644
index 0000000000..86370c1dac
--- /dev/null
+++ b/content/news/2026/02/16/release-kubernetes-operator-1.14.0.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/</title>
+ <link rel="canonical" href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">
+ <meta name="robots" content="noindex">
+ <meta charset="utf-8">
+ <meta http-equiv="refresh" content="0; url=https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">
+ </head>
+</html>
diff --git a/content/posts/index.html b/content/posts/index.html
index 5eadd68acf..6278d1d5ec 100644
--- a/content/posts/index.html
+++ b/content/posts/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,31 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </h3>
+
+
+
+ February 15, 2026 -
+
+
+
+ Sergio Chong Loo / Daniel Rossos
+
+
+
+
+ <p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
+This release introduces a major new capability for production deployments: native Blue/Green deployment support. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.
+We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
+ <a href="/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">...</a>
+
+ </p>
+ <a href="/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
@@ -721,31 +746,6 @@ We highly recommend all users upgrade to Flink 1.20.3 or higher.
<a href="/2025/10/09/apache-flink-1.20.3-release-announcement/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/">Apache Flink Kubernetes Operator 1.13.0 Release Announcement</a>
- </h3>
-
-
-
- September 29, 2025 -
-
-
-
- Ferenc Csaky
-
-
-
-
- <p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.13.0! The version brings a number of important fixes and improvements to both core and autoscaler modules.
-We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
-Highlights # Flink 2.1 Support # The Flink Kubernetes Operator and Autoscaler 1.
- <a href="/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/">...</a>
-
- </p>
- <a href="/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -791,6 +791,10 @@ Highlights # Flink 2.1 Support # The Flink Kubernetes Operator and Autoscaler 1.
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/index.xml b/content/posts/index.xml
index f0b57749cc..ae2b4101c4 100644
--- a/content/posts/index.xml
+++ b/content/posts/index.xml
@@ -6,8 +6,15 @@
<description>Recent content in Flink Blog on Apache Flink</description>
<generator>Hugo -- gohugo.io</generator>
<language>en</language>
- <lastBuildDate>Fri, 06 Feb 2026 00:00:00 +0000</lastBuildDate>
+ <lastBuildDate>Sun, 15 Feb 2026 18:00:00 +0000</lastBuildDate>
<atom:link href="https://flink.apache.org/posts/index.xml" rel="self" type="application/rss+xml" />
+ <item>
+ <title>Apache Flink Kubernetes Operator 1.14.0 Release Announcement</title>
+ <link>https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/</link>
+ <pubDate>Sun, 15 Feb 2026 18:00:00 +0000</pubDate>
+ <guid>https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/</guid>
+ <description>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.14.0!
This release introduces a major new capability for production deployments: native Blue/Green deployment support. Deploy stateful streaming applications without interruption with automated Blue/Green deployments directly in your Kubernetes clusters.
We encourage you to download the release and share your experience with the community through the Flink mailing lists [...]
+ </item>
<item>
<title>Apache Flink Agents 0.2.0 Release Announcement</title>
<link>https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/</link>
diff --git a/content/posts/page/10/index.html b/content/posts/page/10/index.html
index 127885df26..5b9264debd 100644
--- a/content/posts/page/10/index.html
+++ b/content/posts/page/10/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,37 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2022/01/31/stateful-functions-3.2.0-release-announcement/">Stateful Functions 3.2.0 Release Announcement</a>
+ </h3>
+
+
+
+ January 31, 2022 -
+
+
+
+ Till Rohrmann
+
+ <a href="https://twitter.com/stsffap">(@stsffap)</a>
+
+
+ Igal Shilman
+
+ <a href="https://twitter.com/IgalShilman">(@IgalShilman)</a>
+
+
+
+
+ <p>Stateful Functions is a cross-platform stack for building Stateful Serverless applications, making it radically simpler to develop scalable, consistent, and elastic distributed applications. This new release brings various improvements to the StateFun runtime, a leaner way to specify StateFun module components, and a brand new JavaScript SDK!
+The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Java SDK, Python SDK,, GoLang SDK and JavaScript SDK distributions are available on Maven, PyPI, Github, and npm respectively.
+ <a href="/2022/01/31/stateful-functions-3.2.0-release-announcement/">...</a>
+
+ </p>
+ <a href="/2022/01/31/stateful-functions-3.2.0-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2022/01/20/pravega-flink-connector-101/">Pravega Flink Connector 101</a>
@@ -755,33 +786,6 @@ A retrospective on the release cycle # From the team, we collected emotions that
<a href="/2021/11/03/flink-backward-the-apache-flink-retrospective/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/">Sort-Based Blocking Shuffle Implementation in Flink - Part One</a>
- </h3>
-
-
-
- October 26, 2021 -
-
-
-
- Yingjie Cao (Kevin)
-
-
- Daisy Tsang
-
-
-
-
- <p>Part one of this blog post will explain the motivation behind introducing sort-based blocking shuffle, present benchmark results, and provide guidelines on how to use this new feature.
-How data gets passed around between operators # Data shuffling is an important stage in batch processing applications and describes how data is sent from one operator to the next. In this phase, output data of the upstream operator will spill over to persistent storages like disk, then the downstream operator will read the corresponding data and process it.
- <a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/">...</a>
-
- </p>
- <a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -827,6 +831,10 @@ How data gets passed around between operators # Data shuffling is an important s
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/11/index.html b/content/posts/page/11/index.html
index a7f370d429..5008dd444a 100644
--- a/content/posts/page/11/index.html
+++ b/content/posts/page/11/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,33 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/">Sort-Based Blocking Shuffle Implementation in Flink - Part One</a>
+ </h3>
+
+
+
+ October 26, 2021 -
+
+
+
+ Yingjie Cao (Kevin)
+
+
+ Daisy Tsang
+
+
+
+
+ <p>Part one of this blog post will explain the motivation behind introducing sort-based blocking shuffle, present benchmark results, and provide guidelines on how to use this new feature.
+How data gets passed around between operators # Data shuffling is an important stage in batch processing applications and describes how data is sent from one operator to the next. In this phase, output data of the upstream operator will spill over to persistent storages like disk, then the downstream operator will read the corresponding data and process it.
+ <a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/">...</a>
+
+ </p>
+ <a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-one/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2021/10/26/sort-based-blocking-shuffle-implementation-in-flink-part-two/">Sort-Based Blocking Shuffle Implementation in Flink - Part Two</a>
@@ -755,33 +782,6 @@ Updated Maven dependencies:
<a href="/2021/08/06/apache-flink-1.12.5-released/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2021/08/06/apache-flink-1.13.2-released/">Apache Flink 1.13.2 Released</a>
- </h3>
-
-
-
- August 6, 2021 -
-
-
-
- Yun Tang
-
-
-
-
- <p>The Apache Flink community released the second bugfix version of the Apache Flink 1.13 series.
-This release includes 127 fixes and minor improvements for Flink 1.13.2. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
-We highly recommend all users to upgrade to Flink 1.13.2.
-Updated Maven dependencies:
-<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.13.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.13.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
- <a href="/2021/08/06/apache-flink-1.13.2-released/">...</a>
-
- </p>
- <a href="/2021/08/06/apache-flink-1.13.2-released/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -827,6 +827,10 @@ Updated Maven dependencies:
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/12/index.html b/content/posts/page/12/index.html
index 16de21a642..60abe4b2a2 100644
--- a/content/posts/page/12/index.html
+++ b/content/posts/page/12/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,33 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2021/08/06/apache-flink-1.13.2-released/">Apache Flink 1.13.2 Released</a>
+ </h3>
+
+
+
+ August 6, 2021 -
+
+
+
+ Yun Tang
+
+
+
+
+ <p>The Apache Flink community released the second bugfix version of the Apache Flink 1.13 series.
+This release includes 127 fixes and minor improvements for Flink 1.13.2. The list below includes bugfixes and improvements. For a complete list of all changes see: JIRA.
+We highly recommend all users to upgrade to Flink 1.13.2.
+Updated Maven dependencies:
+<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.13.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.13.2</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <vers [...]
+ <a href="/2021/08/06/apache-flink-1.13.2-released/">...</a>
+
+ </p>
+ <a href="/2021/08/06/apache-flink-1.13.2-released/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2021/07/07/how-to-identify-the-source-of-backpressure/">How to identify the source of backpressure?</a>
@@ -751,30 +778,6 @@ Updated Maven dependencies:
<a href="/2021/03/03/apache-flink-1.12.2-released/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/">How to natively deploy Flink on Kubernetes with High-Availability (HA)</a>
- </h3>
-
-
-
- February 10, 2021 -
-
-
-
- Yang Wang
-
-
-
-
- <p>Flink has supported resource management systems like YARN and Mesos since the early days; however, these were not designed for the fast-moving cloud-native architectures that are increasingly gaining popularity these days, or the growing need to support complex, mixed workloads (e.g. batch, streaming, deep learning, web services). For these reasons, more and more users are using Kubernetes to automate the deployment, scaling and management of their Flink applications.
-From release to release, the Flink community has made significant progress in integrating natively with Kubernetes, from active resource management to “Zookeeperless” High Availability (HA).
- <a href="/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/">...</a>
-
- </p>
- <a href="/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -820,6 +823,10 @@ From release to release, the Flink community has made significant progress in in
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/13/index.html b/content/posts/page/13/index.html
index 05d5fcce2b..830934ee69 100644
--- a/content/posts/page/13/index.html
+++ b/content/posts/page/13/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,30 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/">How to natively deploy Flink on Kubernetes with High-Availability (HA)</a>
+ </h3>
+
+
+
+ February 10, 2021 -
+
+
+
+ Yang Wang
+
+
+
+
+ <p>Flink has supported resource management systems like YARN and Mesos since the early days; however, these were not designed for the fast-moving cloud-native architectures that are increasingly gaining popularity these days, or the growing need to support complex, mixed workloads (e.g. batch, streaming, deep learning, web services). For these reasons, more and more users are using Kubernetes to automate the deployment, scaling and management of their Flink applications.
+From release to release, the Flink community has made significant progress in integrating natively with Kubernetes, from active resource management to “Zookeeperless” High Availability (HA).
+ <a href="/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/">...</a>
+
+ </p>
+ <a href="/2021/02/10/how-to-natively-deploy-flink-on-kubernetes-with-high-availability-ha/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2021/01/29/apache-flink-1.10.3-released/">Apache Flink 1.10.3 Released</a>
@@ -740,33 +764,6 @@ The community has added support for efficient batch execution in the DataStream
<a href="/2020/12/02/improvements-in-task-scheduling-for-batch-workloads-in-apache-flink-1.12/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2020/11/11/stateful-functions-2.2.1-release-announcement/">Stateful Functions 2.2.1 Release Announcement</a>
- </h3>
-
-
-
- November 11, 2020 -
-
-
-
- Tzu-Li (Gordon) Tai
-
- <a href="https://twitter.com/tzulitai">(@tzulitai)</a>
-
-
-
-
- <p>The Apache Flink community released the first bugfix release of the Stateful Functions (StateFun) 2.2 series, version 2.2.1.
-This release fixes a critical bug that causes restoring the Stateful Functions cluster from snapshots (checkpoints or savepoints) to fail under certain conditions. Starting from this release, StateFun now creates snapshots with a more robust format that allows it to be restored safely going forward.
-We strongly recommend all users to upgrade to 2.
- <a href="/2020/11/11/stateful-functions-2.2.1-release-announcement/">...</a>
-
- </p>
- <a href="/2020/11/11/stateful-functions-2.2.1-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -812,6 +809,10 @@ We strongly recommend all users to upgrade to 2.
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/14/index.html b/content/posts/page/14/index.html
index 72d263153a..1456be6806 100644
--- a/content/posts/page/14/index.html
+++ b/content/posts/page/14/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,33 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2020/11/11/stateful-functions-2.2.1-release-announcement/">Stateful Functions 2.2.1 Release Announcement</a>
+ </h3>
+
+
+
+ November 11, 2020 -
+
+
+
+ Tzu-Li (Gordon) Tai
+
+ <a href="https://twitter.com/tzulitai">(@tzulitai)</a>
+
+
+
+
+ <p>The Apache Flink community released the first bugfix release of the Stateful Functions (StateFun) 2.2 series, version 2.2.1.
+This release fixes a critical bug that causes restoring the Stateful Functions cluster from snapshots (checkpoints or savepoints) to fail under certain conditions. Starting from this release, StateFun now creates snapshots with a more robust format that allows it to be restored safely going forward.
+We strongly recommend all users to upgrade to 2.
+ <a href="/2020/11/11/stateful-functions-2.2.1-release-announcement/">...</a>
+
+ </p>
+ <a href="/2020/11/11/stateful-functions-2.2.1-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2020/10/15/from-aligned-to-unaligned-checkpoints-part-1-checkpoints-alignment-and-backpressure/">From Aligned to Unaligned Checkpoints - Part 1: Checkpoints, Alignment, and Backpressure</a>
@@ -743,29 +770,6 @@ IoT networks are composed of many individual, but interconnected components, whi
<a href="/2020/08/18/monitoring-and-controlling-networks-of-iot-devices-with-flink-stateful-functions/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/">Accelerating your workload with GPU and other external resources</a>
- </h3>
-
-
-
- August 6, 2020 -
-
-
-
- Yangze Guo
-
-
-
-
- <p>Apache Flink 1.11 introduces a new External Resource Framework, which allows you to request external resources from the underlying resource management systems (e.g., Kubernetes) and accelerate your workload with those resources. As Flink provides a first-party GPU plugin at the moment, we will take GPU as an example and show how it affects Flink applications in the AI field. Other external resources (e.g. RDMA and SSD) can also be supported in a pluggable manner.
- <a href="/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/">...</a>
-
- </p>
- <a href="/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -811,6 +815,10 @@ IoT networks are composed of many individual, but interconnected components, whi
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/15/index.html b/content/posts/page/15/index.html
index bef847ff2b..4477fda710 100644
--- a/content/posts/page/15/index.html
+++ b/content/posts/page/15/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,29 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/">Accelerating your workload with GPU and other external resources</a>
+ </h3>
+
+
+
+ August 6, 2020 -
+
+
+
+ Yangze Guo
+
+
+
+
+ <p>Apache Flink 1.11 introduces a new External Resource Framework, which allows you to request external resources from the underlying resource management systems (e.g., Kubernetes) and accelerate your workload with those resources. As Flink provides a first-party GPU plugin at the moment, we will take GPU as an example and show how it affects Flink applications in the AI field. Other external resources (e.g. RDMA and SSD) can also be supported in a pluggable manner.
+ <a href="/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/">...</a>
+
+ </p>
+ <a href="/2020/08/06/accelerating-your-workload-with-gpu-and-other-external-resources/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2020/08/04/pyflink-the-integration-of-pandas-into-pyflink/">PyFlink: The integration of Pandas into PyFlink</a>
@@ -741,31 +764,6 @@ Streaming Data Visualization # With Zeppelin, you can build a real time streamin
<a href="/2020/06/23/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-2/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/">Flink on Zeppelin Notebooks for Interactive Data Analysis - Part 1</a>
- </h3>
-
-
-
- June 15, 2020 -
-
-
-
- Jeff Zhang
-
- <a href="https://twitter.com/zjffdu">(@zjffdu)</a>
-
-
-
-
- <p>The latest release of Apache Zeppelin comes with a redesigned interpreter for Apache Flink (version Flink 1.10+ is only supported moving forward) that allows developers to use Flink directly on Zeppelin notebooks for interactive data analysis. I wrote 2 posts about how to use Flink in Zeppelin. This is part-1 where I explain how the Flink interpreter in Zeppelin works, and provide a tutorial for running Streaming ETL with Flink on Zeppelin.
- <a href="/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/">...</a>
-
- </p>
- <a href="/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -811,6 +809,10 @@ Streaming Data Visualization # With Zeppelin, you can build a real time streamin
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/16/index.html b/content/posts/page/16/index.html
index c52773441d..dc5c862941 100644
--- a/content/posts/page/16/index.html
+++ b/content/posts/page/16/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,31 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/">Flink on Zeppelin Notebooks for Interactive Data Analysis - Part 1</a>
+ </h3>
+
+
+
+ June 15, 2020 -
+
+
+
+ Jeff Zhang
+
+ <a href="https://twitter.com/zjffdu">(@zjffdu)</a>
+
+
+
+
+ <p>The latest release of Apache Zeppelin comes with a redesigned interpreter for Apache Flink (version Flink 1.10+ is only supported moving forward) that allows developers to use Flink directly on Zeppelin notebooks for interactive data analysis. I wrote 2 posts about how to use Flink in Zeppelin. This is part-1 where I explain how the Flink interpreter in Zeppelin works, and provide a tutorial for running Streaming ETL with Flink on Zeppelin.
+ <a href="/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/">...</a>
+
+ </p>
+ <a href="/2020/06/15/flink-on-zeppelin-notebooks-for-interactive-data-analysis-part-1/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2020/06/10/flink-community-update-june20/">Flink Community Update - June'20</a>
@@ -735,32 +760,6 @@ In Flink 1.10, the community further extended the support for Python by adding P
<a href="/2020/04/09/pyflink-introducing-python-support-for-udfs-in-flinks-table-api/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/">Stateful Functions 2.0 - An Event-driven Database on Apache Flink</a>
- </h3>
-
-
-
- April 7, 2020 -
-
-
-
- Stephan Ewen
-
- <a href="https://twitter.com/stephanewen">(@stephanewen)</a>
-
-
-
-
- <p>Today, we are announcing the release of Stateful Functions (StateFun) 2.0 — the first release of Stateful Functions as part of the Apache Flink project. This release marks a big milestone: Stateful Functions 2.0 is not only an API update, but the first version of an event-driven database that is built on Apache Flink.
-Stateful Functions 2.0 makes it possible to combine StateFun’s powerful approach to state and composition with the elasticity, rapid scaling/scale-to-zero and rolling upgrade capabilities of FaaS implementations like AWS Lambda and modern resource orchestration frameworks like Kubernetes.
- <a href="/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/">...</a>
-
- </p>
- <a href="/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -806,6 +805,10 @@ Stateful Functions 2.0 makes it possible to combine StateFun’s powerful approa
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/17/index.html b/content/posts/page/17/index.html
index c9e20db19f..b2346b42ea 100644
--- a/content/posts/page/17/index.html
+++ b/content/posts/page/17/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,32 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/">Stateful Functions 2.0 - An Event-driven Database on Apache Flink</a>
+ </h3>
+
+
+
+ April 7, 2020 -
+
+
+
+ Stephan Ewen
+
+ <a href="https://twitter.com/stephanewen">(@stephanewen)</a>
+
+
+
+
+ <p>Today, we are announcing the release of Stateful Functions (StateFun) 2.0 — the first release of Stateful Functions as part of the Apache Flink project. This release marks a big milestone: Stateful Functions 2.0 is not only an API update, but the first version of an event-driven database that is built on Apache Flink.
+Stateful Functions 2.0 makes it possible to combine StateFun’s powerful approach to state and composition with the elasticity, rapid scaling/scale-to-zero and rolling upgrade capabilities of FaaS implementations like AWS Lambda and modern resource orchestration frameworks like Kubernetes.
+ <a href="/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/">...</a>
+
+ </p>
+ <a href="/2020/04/07/stateful-functions-2.0-an-event-driven-database-on-apache-flink/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2020/03/30/flink-community-update-april20/">Flink Community Update - April'20</a>
@@ -742,33 +768,6 @@ In order to provide a state-of-the-art experience to Flink developers, the Apach
<a href="/2020/01/29/state-unlocked-interacting-with-state-in-apache-flink/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/">Advanced Flink Application Patterns Vol.1: Case Study of a Fraud Detection System</a>
- </h3>
-
-
-
- January 15, 2020 -
-
-
-
- Alexander Fedulov
-
- <a href="https://twitter.com/alex_fedulov">(@alex_fedulov)</a>
-
-
-
-
- <p>In this series of blog posts you will learn about three powerful Flink patterns for building streaming applications:
-Dynamic updates of application logic Dynamic data partitioning (shuffle), controlled at runtime Low latency alerting based on custom windowing logic (without using the window API) These patterns expand the possibilities of what is achievable with statically defined data flows and provide the building blocks to fulfill complex business requirements.
-Dynamic updates of application logic allow Flink jobs to change at runtime, without downtime from stopping and resubmitting the code.
- <a href="/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/">...</a>
-
- </p>
- <a href="/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -814,6 +813,10 @@ Dynamic updates of application logic allow Flink jobs to change at runtime, with
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/18/index.html b/content/posts/page/18/index.html
index e3510fa5d6..01d6ddb640 100644
--- a/content/posts/page/18/index.html
+++ b/content/posts/page/18/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,33 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/">Advanced Flink Application Patterns Vol.1: Case Study of a Fraud Detection System</a>
+ </h3>
+
+
+
+ January 15, 2020 -
+
+
+
+ Alexander Fedulov
+
+ <a href="https://twitter.com/alex_fedulov">(@alex_fedulov)</a>
+
+
+
+
+ <p>In this series of blog posts you will learn about three powerful Flink patterns for building streaming applications:
+Dynamic updates of application logic Dynamic data partitioning (shuffle), controlled at runtime Low latency alerting based on custom windowing logic (without using the window API) These patterns expand the possibilities of what is achievable with statically defined data flows and provide the building blocks to fulfill complex business requirements.
+Dynamic updates of application logic allow Flink jobs to change at runtime, without downtime from stopping and resubmitting the code.
+ <a href="/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/">...</a>
+
+ </p>
+ <a href="/2020/01/15/advanced-flink-application-patterns-vol.1-case-study-of-a-fraud-detection-system/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2019/12/11/apache-flink-1.8.3-released/">Apache Flink 1.8.3 Released</a>
@@ -743,35 +770,6 @@ The Apache Flink project’s goal is to develop a stream processing system t
<a href="/2019/07/23/flink-network-stack-vol.-2-monitoring-metrics-and-that-backpressure-thing/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2019/07/02/apache-flink-1.8.1-released/">Apache Flink 1.8.1 Released</a>
- </h3>
-
-
-
- July 2, 2019 -
-
-
-
- Jincheng Sun
-
- <a href="https://twitter.com/sunjincheng121">(@sunjincheng121)</a>
-
-
-
-
- <p>The Apache Flink community released the first bugfix version of the Apache Flink 1.8 series.
-This release includes more than 40 fixes and minor improvements for Flink 1.8.1. The list below includes a detailed list of all improvements, sub-tasks and bug fixes.
-We highly recommend all users to upgrade to Flink 1.8.1.
-Updated Maven dependencies:
-<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
- <a href="/2019/07/02/apache-flink-1.8.1-released/">...</a>
-
- </p>
- <a href="/2019/07/02/apache-flink-1.8.1-released/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -817,6 +815,10 @@ Updated Maven dependencies:
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/19/index.html b/content/posts/page/19/index.html
index f7f2d669c5..1dbc7ec93d 100644
--- a/content/posts/page/19/index.html
+++ b/content/posts/page/19/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,35 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2019/07/02/apache-flink-1.8.1-released/">Apache Flink 1.8.1 Released</a>
+ </h3>
+
+
+
+ July 2, 2019 -
+
+
+
+ Jincheng Sun
+
+ <a href="https://twitter.com/sunjincheng121">(@sunjincheng121)</a>
+
+
+
+
+ <p>The Apache Flink community released the first bugfix version of the Apache Flink 1.8 series.
+This release includes more than 40 fixes and minor improvements for Flink 1.8.1. The list below includes a detailed list of all improvements, sub-tasks and bug fixes.
+We highly recommend all users to upgrade to Flink 1.8.1.
+Updated Maven dependencies:
+<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
+ <a href="/2019/07/02/apache-flink-1.8.1-released/">...</a>
+
+ </p>
+ <a href="/2019/07/02/apache-flink-1.8.1-released/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2019/06/26/a-practical-guide-to-broadcast-state-in-apache-flink/">A Practical Guide to Broadcast State in Apache Flink</a>
@@ -729,30 +758,6 @@ Flink 1.8.0 is API-compatible with previous 1.x.y releases for APIs annotated wi
<a href="/2019/03/06/what-to-expect-from-flink-forward-san-francisco-2019/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2019/02/25/apache-flink-1.6.4-released/">Apache Flink 1.6.4 Released</a>
- </h3>
-
-
-
- February 25, 2019 -
-
-
-
-
-
- <p>The Apache Flink community released the fourth bugfix version of the Apache Flink 1.6 series.
-This release includes more than 25 fixes and minor improvements for Flink 1.6.3. The list below includes a detailed list of all fixes.
-We highly recommend all users to upgrade to Flink 1.6.4.
-Updated Maven dependencies:
-<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
- <a href="/2019/02/25/apache-flink-1.6.4-released/">...</a>
-
- </p>
- <a href="/2019/02/25/apache-flink-1.6.4-released/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -798,6 +803,10 @@ Updated Maven dependencies:
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/2/index.html b/content/posts/page/2/index.html
index f954dd3403..a4f69e5763 100644
--- a/content/posts/page/2/index.html
+++ b/content/posts/page/2/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,31 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/">Apache Flink Kubernetes Operator 1.13.0 Release Announcement</a>
+ </h3>
+
+
+
+ September 29, 2025 -
+
+
+
+ Ferenc Csaky
+
+
+
+
+ <p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.13.0! The version brings a number of important fixes and improvements to both core and autoscaler modules.
+We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
+Highlights # Flink 2.1 Support # The Flink Kubernetes Operator and Autoscaler 1.
+ <a href="/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/">...</a>
+
+ </p>
+ <a href="/2025/09/29/apache-flink-kubernetes-operator-1.13.0-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2025/09/26/apache-flink-cdc-3.5.0-release-announcement/">Apache Flink CDC 3.5.0 Release Announcement</a>
@@ -722,31 +747,6 @@ Highlights # Flink 2.0 Preview Support # The Flink Kubernetes Operator and Autos
<a href="/2025/03/03/apache-flink-kubernetes-operator-1.11.0-release-announcement/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2025/02/12/apache-flink-1.19.2-release-announcement/">Apache Flink 1.19.2 Release Announcement</a>
- </h3>
-
-
-
- February 12, 2025 -
-
-
-
- Alexander Fedulov
-
-
-
-
- <p>The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.19 series.
-This release includes 73 bug fixes, vulnerability fixes, and minor improvements for Flink 1.19. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
-We highly recommend all users upgrade to Flink 1.19.2.
- <a href="/2025/02/12/apache-flink-1.19.2-release-announcement/">...</a>
-
- </p>
- <a href="/2025/02/12/apache-flink-1.19.2-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -792,6 +792,10 @@ We highly recommend all users upgrade to Flink 1.19.2.
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/20/index.html b/content/posts/page/20/index.html
index bcec1f486d..c79e9962f3 100644
--- a/content/posts/page/20/index.html
+++ b/content/posts/page/20/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,30 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2019/02/25/apache-flink-1.6.4-released/">Apache Flink 1.6.4 Released</a>
+ </h3>
+
+
+
+ February 25, 2019 -
+
+
+
+
+
+ <p>The Apache Flink community released the fourth bugfix version of the Apache Flink 1.6 series.
+This release includes more than 25 fixes and minor improvements for Flink 1.6.3. The list below includes a detailed list of all fixes.
+We highly recommend all users to upgrade to Flink 1.6.4.
+Updated Maven dependencies:
+<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.6.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
+ <a href="/2019/02/25/apache-flink-1.6.4-released/">...</a>
+
+ </p>
+ <a href="/2019/02/25/apache-flink-1.6.4-released/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2019/02/21/monitoring-apache-flink-applications-101/">Monitoring Apache Flink Applications 101</a>
@@ -731,30 +755,6 @@ Updated Maven dependencies:
<a href="/2018/10/29/apache-flink-1.6.2-released/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2018/09/20/apache-flink-1.5.4-released/">Apache Flink 1.5.4 Released</a>
- </h3>
-
-
-
- September 20, 2018 -
-
-
-
-
-
- <p>The Apache Flink community released the fourth bugfix version of the Apache Flink 1.5 series.
-This release includes more than 20 fixes and minor improvements for Flink 1.5.4. The list below includes a detailed list of all fixes.
-We highly recommend all users to upgrade to Flink 1.5.4.
-Updated Maven dependencies:
-<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
- <a href="/2018/09/20/apache-flink-1.5.4-released/">...</a>
-
- </p>
- <a href="/2018/09/20/apache-flink-1.5.4-released/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -800,6 +800,10 @@ Updated Maven dependencies:
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/21/index.html b/content/posts/page/21/index.html
index 5e36ffac29..12c7d37878 100644
--- a/content/posts/page/21/index.html
+++ b/content/posts/page/21/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,30 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2018/09/20/apache-flink-1.5.4-released/">Apache Flink 1.5.4 Released</a>
+ </h3>
+
+
+
+ September 20, 2018 -
+
+
+
+
+
+ <p>The Apache Flink community released the fourth bugfix version of the Apache Flink 1.5 series.
+This release includes more than 20 fixes and minor improvements for Flink 1.5.4. The list below includes a detailed list of all fixes.
+We highly recommend all users to upgrade to Flink 1.5.4.
+Updated Maven dependencies:
+<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.5.4</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
+ <a href="/2018/09/20/apache-flink-1.5.4-released/">...</a>
+
+ </p>
+ <a href="/2018/09/20/apache-flink-1.5.4-released/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2018/09/20/apache-flink-1.6.1-released/">Apache Flink 1.6.1 Released</a>
@@ -729,30 +753,6 @@ Apache Flink 1.4.0, released in December 2017, introduced a significant mileston
<a href="/2018/02/28/an-overview-of-end-to-end-exactly-once-processing-in-apache-flink-with-apache-kafka-too/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2018/02/15/apache-flink-1.4.1-released/">Apache Flink 1.4.1 Released</a>
- </h3>
-
-
-
- February 15, 2018 -
-
-
-
-
-
- <p>The Apache Flink community released the first bugfix version of the Apache Flink 1.4 series.
-This release includes more than 60 fixes and minor improvements for Flink 1.4.0. The list below includes a detailed list of all fixes.
-We highly recommend all users to upgrade to Flink 1.4.1.
-Updated Maven dependencies:
-<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
- <a href="/2018/02/15/apache-flink-1.4.1-released/">...</a>
-
- </p>
- <a href="/2018/02/15/apache-flink-1.4.1-released/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -798,6 +798,10 @@ Updated Maven dependencies:
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/22/index.html b/content/posts/page/22/index.html
index 4dff009ca3..b866322947 100644
--- a/content/posts/page/22/index.html
+++ b/content/posts/page/22/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,30 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2018/02/15/apache-flink-1.4.1-released/">Apache Flink 1.4.1 Released</a>
+ </h3>
+
+
+
+ February 15, 2018 -
+
+
+
+
+
+ <p>The Apache Flink community released the first bugfix version of the Apache Flink 1.4 series.
+This release includes more than 60 fixes and minor improvements for Flink 1.4.0. The list below includes a detailed list of all fixes.
+We highly recommend all users to upgrade to Flink 1.4.1.
+Updated Maven dependencies:
+<dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-java</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.11</artifactId> <version>1.4.1</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.11</artifactId> <versio [...]
+ <a href="/2018/02/15/apache-flink-1.4.1-released/">...</a>
+
+ </p>
+ <a href="/2018/02/15/apache-flink-1.4.1-released/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2018/01/30/managing-large-state-in-apache-flink-an-intro-to-incremental-checkpointing/">Managing Large State in Apache Flink: An Intro to Incremental Checkpointing</a>
@@ -739,30 +763,6 @@ A community-maintained way to run Apache Flink on Docker and other container run
<a href="/2017/05/16/introducing-docker-images-for-apache-flink/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2017/04/26/apache-flink-1.2.1-released/">Apache Flink 1.2.1 Released</a>
- </h3>
-
-
-
- April 26, 2017 -
-
-
-
-
-
- <p>The Apache Flink community released the first bugfix version of the Apache Flink 1.2 series.
-This release includes many critical fixes for Flink 1.2.0. The list below includes a detailed list of all fixes.
-We highly recommend all users to upgrade to Flink 1.2.1.
-Please note that there are two unresolved major issues in Flink 1.2.1 and 1.2.0:
-FLINK-6353 Restoring using CheckpointedRestoring does not work from 1.2 to 1.2 FLINK-6188 Some setParallelism() methods can’t cope with default parallelism <dependency> <groupId>org.
- <a href="/2017/04/26/apache-flink-1.2.1-released/">...</a>
-
- </p>
- <a href="/2017/04/26/apache-flink-1.2.1-released/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -808,6 +808,10 @@ FLINK-6353 Restoring using CheckpointedRestoring does not work from 1.2 to 1.2 F
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/23/index.html b/content/posts/page/23/index.html
index 922b0b1ec1..4640fe479e 100644
--- a/content/posts/page/23/index.html
+++ b/content/posts/page/23/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,30 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2017/04/26/apache-flink-1.2.1-released/">Apache Flink 1.2.1 Released</a>
+ </h3>
+
+
+
+ April 26, 2017 -
+
+
+
+
+
+ <p>The Apache Flink community released the first bugfix version of the Apache Flink 1.2 series.
+This release includes many critical fixes for Flink 1.2.0. The list below includes a detailed list of all fixes.
+We highly recommend all users to upgrade to Flink 1.2.1.
+Please note that there are two unresolved major issues in Flink 1.2.1 and 1.2.0:
+FLINK-6353 Restoring using CheckpointedRestoring does not work from 1.2 to 1.2 FLINK-6188 Some setParallelism() methods can’t cope with default parallelism <dependency> <groupId>org.
+ <a href="/2017/04/26/apache-flink-1.2.1-released/">...</a>
+
+ </p>
+ <a href="/2017/04/26/apache-flink-1.2.1-released/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2017/03/30/continuous-queries-on-dynamic-tables/">Continuous Queries on Dynamic Tables</a>
@@ -697,27 +721,6 @@ Ted Dunning has been announced as a keynote speaker at the event. Ted is the VP
<a href="/2016/08/24/flink-forward-2016-announcing-schedule-keynotes-and-panel-discussion/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2016/08/04/announcing-apache-flink-1.1.0/">Announcing Apache Flink 1.1.0</a>
- </h3>
-
-
-
- August 4, 2016 -
-
-
-
-
-
- <p>Important: The Maven artifacts published with version 1.1.0 on Maven central have a Hadoop dependency issue. It is highly recommended to use 1.1.1 or 1.1.1-hadoop1 as the Flink version. The Apache Flink community is pleased to announce the availability of Flink 1.1.0.
-This release is the first major release in the 1.X.X series of releases, which maintains API compatibility with 1.0.0. This means that your applications written against stable APIs of Flink 1.
- <a href="/2016/08/04/announcing-apache-flink-1.1.0/">...</a>
-
- </p>
- <a href="/2016/08/04/announcing-apache-flink-1.1.0/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -763,6 +766,10 @@ This release is the first major release in the 1.X.X series of releases, which m
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/24/index.html b/content/posts/page/24/index.html
index 6b48f3e898..c005d07288 100644
--- a/content/posts/page/24/index.html
+++ b/content/posts/page/24/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,27 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2016/08/04/announcing-apache-flink-1.1.0/">Announcing Apache Flink 1.1.0</a>
+ </h3>
+
+
+
+ August 4, 2016 -
+
+
+
+
+
+ <p>Important: The Maven artifacts published with version 1.1.0 on Maven central have a Hadoop dependency issue. It is highly recommended to use 1.1.1 or 1.1.1-hadoop1 as the Flink version. The Apache Flink community is pleased to announce the availability of Flink 1.1.0.
+This release is the first major release in the 1.X.X series of releases, which maintains API compatibility with 1.0.0. This means that your applications written against stable APIs of Flink 1.
+ <a href="/2016/08/04/announcing-apache-flink-1.1.0/">...</a>
+
+ </p>
+ <a href="/2016/08/04/announcing-apache-flink-1.1.0/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2016/08/04/flink-1.1.1-released/">Flink 1.1.1 Released</a>
@@ -692,27 +713,6 @@ Issues fixed # FLINK-3242: Adjust StateBackendITCase for 0.10 signatures of stat
<a href="/2016/02/11/flink-0.10.2-released/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/">Flink 2015: A year in review, and a lookout to 2016</a>
- </h3>
-
-
-
- December 18, 2015 -
-
-
-
-
-
- <p>With 2015 ending, we thought that this would be good time to reflect on the amazing work done by the Flink community over this past year, and how much this community has grown.
-Overall, we have seen Flink grow in terms of functionality from an engine to one of the most complete open-source stream processing frameworks available. The community grew from a relatively small and geographically focused team, to a truly global, and one of the largest big data communities in the the Apache Software Foundation.
- <a href="/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/">...</a>
-
- </p>
- <a href="/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -758,6 +758,10 @@ Overall, we have seen Flink grow in terms of functionality from an engine to one
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/25/index.html b/content/posts/page/25/index.html
index f91f85a1e9..264c45a7c9 100644
--- a/content/posts/page/25/index.html
+++ b/content/posts/page/25/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,27 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/">Flink 2015: A year in review, and a lookout to 2016</a>
+ </h3>
+
+
+
+ December 18, 2015 -
+
+
+
+
+
+ <p>With 2015 ending, we thought that this would be good time to reflect on the amazing work done by the Flink community over this past year, and how much this community has grown.
+Overall, we have seen Flink grow in terms of functionality from an engine to one of the most complete open-source stream processing frameworks available. The community grew from a relatively small and geographically focused team, to a truly global, and one of the largest big data communities in the the Apache Software Foundation.
+ <a href="/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/">...</a>
+
+ </p>
+ <a href="/2015/12/18/flink-2015-a-year-in-review-and-a-lookout-to-2016/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2015/12/11/storm-compatibility-in-apache-flink-how-to-run-existing-storm-topologies-on-flink/">Storm Compatibility in Apache Flink: How to run existing Storm topologies on Flink</a>
@@ -689,28 +710,6 @@ Download the release and check out the documentation. Feedback through the Flink
<a href="/2015/06/24/announcing-apache-flink-0.9.0/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2015/05/14/april-2015-in-the-flink-community/">April 2015 in the Flink community</a>
- </h3>
-
-
-
- May 14, 2015 -
-
-
-
-
-
- <p>April was an packed month for Apache Flink.
-Flink runner for Google Cloud Dataflow # A Flink runner for Google Cloud Dataflow was announced. See the blog posts by data Artisans and the Google Cloud Platform Blog. Google Cloud Dataflow programs can be written using and open-source SDK and run in multiple backends, either as a managed service inside Google’s infrastructure, or leveraging open source runners, including Apache Flink.
-Flink 0.
- <a href="/2015/05/14/april-2015-in-the-flink-community/">...</a>
-
- </p>
- <a href="/2015/05/14/april-2015-in-the-flink-community/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -756,6 +755,10 @@ Flink 0.
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/26/index.html b/content/posts/page/26/index.html
index 20902bd8df..018af7fa6d 100644
--- a/content/posts/page/26/index.html
+++ b/content/posts/page/26/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,28 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2015/05/14/april-2015-in-the-flink-community/">April 2015 in the Flink community</a>
+ </h3>
+
+
+
+ May 14, 2015 -
+
+
+
+
+
+ <p>April was an packed month for Apache Flink.
+Flink runner for Google Cloud Dataflow # A Flink runner for Google Cloud Dataflow was announced. See the blog posts by data Artisans and the Google Cloud Platform Blog. Google Cloud Dataflow programs can be written using and open-source SDK and run in multiple backends, either as a managed service inside Google’s infrastructure, or leveraging open source runners, including Apache Flink.
+Flink 0.
+ <a href="/2015/05/14/april-2015-in-the-flink-community/">...</a>
+
+ </p>
+ <a href="/2015/05/14/april-2015-in-the-flink-community/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2015/05/11/juggling-with-bits-and-bytes/">Juggling with Bits and Bytes</a>
@@ -693,26 +715,6 @@ Flink graduation # The biggest news is that the Apache board approved Flink as a
<a href="/2015/01/06/december-2014-in-the-flink-community/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2014/11/18/hadoop-compatibility-in-flink/">Hadoop Compatibility in Flink</a>
- </h3>
-
-
-
- November 18, 2014 -
-
-
-
-
-
- <p>Apache Hadoop is an industry standard for scalable analytical data processing. Many data analysis applications have been implemented as Hadoop MapReduce jobs and run in clusters around the world. Apache Flink can be an alternative to MapReduce and improves it in many dimensions. Among other features, Flink provides much better performance and offers APIs in Java and Scala, which are very easy to use. Similar to Hadoop, Flink’s APIs provide interfaces for Mapper and Reducer functio [...]
- <a href="/2014/11/18/hadoop-compatibility-in-flink/">...</a>
-
- </p>
- <a href="/2014/11/18/hadoop-compatibility-in-flink/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -758,6 +760,10 @@ Flink graduation # The biggest news is that the Apache board approved Flink as a
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/27/index.html b/content/posts/page/27/index.html
index 2e89b8145b..267c9b874f 100644
--- a/content/posts/page/27/index.html
+++ b/content/posts/page/27/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,26 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2014/11/18/hadoop-compatibility-in-flink/">Hadoop Compatibility in Flink</a>
+ </h3>
+
+
+
+ November 18, 2014 -
+
+
+
+
+
+ <p>Apache Hadoop is an industry standard for scalable analytical data processing. Many data analysis applications have been implemented as Hadoop MapReduce jobs and run in clusters around the world. Apache Flink can be an alternative to MapReduce and improves it in many dimensions. Among other features, Flink provides much better performance and offers APIs in Java and Scala, which are very easy to use. Similar to Hadoop, Flink’s APIs provide interfaces for Mapper and Reducer functio [...]
+ <a href="/2014/11/18/hadoop-compatibility-in-flink/">...</a>
+
+ </p>
+ <a href="/2014/11/18/hadoop-compatibility-in-flink/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2014/11/04/apache-flink-0.7.0-available/">Apache Flink 0.7.0 available</a>
@@ -629,6 +649,10 @@ What is Flink? # Apache Flink is a general-purpose data processing engine for cl
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/3/index.html b/content/posts/page/3/index.html
index 3ffbe06f40..9986e31a77 100644
--- a/content/posts/page/3/index.html
+++ b/content/posts/page/3/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,31 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2025/02/12/apache-flink-1.19.2-release-announcement/">Apache Flink 1.19.2 Release Announcement</a>
+ </h3>
+
+
+
+ February 12, 2025 -
+
+
+
+ Alexander Fedulov
+
+
+
+
+ <p>The Apache Flink Community is pleased to announce the second bug fix release of the Flink 1.19 series.
+This release includes 73 bug fixes, vulnerability fixes, and minor improvements for Flink 1.19. Below you will find a list of all bugfixes and improvements (excluding improvements to the build infrastructure and build stability). For a complete list of all changes see: JIRA.
+We highly recommend all users upgrade to Flink 1.19.2.
+ <a href="/2025/02/12/apache-flink-1.19.2-release-announcement/">...</a>
+
+ </p>
+ <a href="/2025/02/12/apache-flink-1.19.2-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2025/02/12/apache-flink-1.20.1-release-announcement/">Apache Flink 1.20.1 Release Announcement</a>
@@ -738,36 +763,6 @@ Standing on the Eve of Apache Flink 2.0 # Flink 1.0 was released eight years ago
<a href="/2024/08/02/announcing-the-release-of-apache-flink-1.20/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/">Apache Flink Kubernetes Operator 1.9.0 Release Announcement</a>
- </h3>
-
-
-
- July 2, 2024 -
-
-
-
- Gyula Fora
-
- <a href="https://twitter.com/GyulaFora">(@GyulaFora)</a>
-
-
- Mate Czagany
-
-
-
-
- <p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.9.0!
-The release includes many improvements to the autoscaler and standalone autoscaler, as well as memory optimizations to the operator. There was also a lot of progress made to translate documentation to Chinese.
-We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
- <a href="/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/">...</a>
-
- </p>
- <a href="/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -813,6 +808,10 @@ We encourage you to download the release and share your experience with the comm
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/4/index.html b/content/posts/page/4/index.html
index 372afd7187..9b5dfebb2d 100644
--- a/content/posts/page/4/index.html
+++ b/content/posts/page/4/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,36 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/">Apache Flink Kubernetes Operator 1.9.0 Release Announcement</a>
+ </h3>
+
+
+
+ July 2, 2024 -
+
+
+
+ Gyula Fora
+
+ <a href="https://twitter.com/GyulaFora">(@GyulaFora)</a>
+
+
+ Mate Czagany
+
+
+
+
+ <p>The Apache Flink community is excited to announce the release of Flink Kubernetes Operator 1.9.0!
+The release includes many improvements to the autoscaler and standalone autoscaler, as well as memory optimizations to the operator. There was also a lot of progress made to translate documentation to Chinese.
+We encourage you to download the release and share your experience with the community through the Flink mailing lists or JIRA! We’re looking forward to your feedback!
+ <a href="/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/">...</a>
+
+ </p>
+ <a href="/2024/07/02/apache-flink-kubernetes-operator-1.9.0-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2024/06/18/apache-flink-cdc-3.1.1-release-announcement/">Apache Flink CDC 3.1.1 Release Announcement</a>
@@ -757,34 +787,6 @@ We encourage you to download the release and share your feedback with the commun
<a href="/2023/11/22/apache-flink-kubernetes-operator-1.7.0-release-announcement/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/">Apache Flink Kubernetes Operator 1.6.1 Release Announcement</a>
- </h3>
-
-
-
- October 27, 2023 -
-
-
-
- Rui Fan
-
- <a href="https://twitter.com/1996fanrui">(@1996fanrui)</a>
-
-
-
-
- <p>The Apache Flink Community is pleased to announce the first bug fix release of the Flink Kubernetes Operator 1.6 series.
-The release contains fixes for several critical issues, and some doc improvements for the autoscaler.
-We highly recommend all users to upgrade to Flink Kubernetes Operator 1.6.1.
-Release Notes # Bug # [FLINK-32890] Correct HA patch check for zookeeper metadata store [FLINK-33011] Never accidentally delete HA metadata for last state deployments Documentation improvement # [FLINK-32868][docs] Document the need to backport FLINK-30213 for using autoscaler with older version Flinks [docs][autoscaler] Autoscaler docs and default config improvement Release Resources # The source artifacts and helm chart are available on the Downloads page of the Flink website.
- <a href="/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/">...</a>
-
- </p>
- <a href="/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -830,6 +832,10 @@ Release Notes # Bug # [FLINK-32890] Correct HA patch check for zookeeper metadat
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/5/index.html b/content/posts/page/5/index.html
index b60f45045d..1fdd2e555d 100644
--- a/content/posts/page/5/index.html
+++ b/content/posts/page/5/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,34 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/">Apache Flink Kubernetes Operator 1.6.1 Release Announcement</a>
+ </h3>
+
+
+
+ October 27, 2023 -
+
+
+
+ Rui Fan
+
+ <a href="https://twitter.com/1996fanrui">(@1996fanrui)</a>
+
+
+
+
+ <p>The Apache Flink Community is pleased to announce the first bug fix release of the Flink Kubernetes Operator 1.6 series.
+The release contains fixes for several critical issues, and some doc improvements for the autoscaler.
+We highly recommend all users to upgrade to Flink Kubernetes Operator 1.6.1.
+Release Notes # Bug # [FLINK-32890] Correct HA patch check for zookeeper metadata store [FLINK-33011] Never accidentally delete HA metadata for last state deployments Documentation improvement # [FLINK-32868][docs] Document the need to backport FLINK-30213 for using autoscaler with older version Flinks [docs][autoscaler] Autoscaler docs and default config improvement Release Resources # The source artifacts and helm chart are available on the Downloads page of the Flink website.
+ <a href="/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/">...</a>
+
+ </p>
+ <a href="/2023/10/27/apache-flink-kubernetes-operator-1.6.1-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2023/10/24/announcing-the-release-of-apache-flink-1.18/">Announcing the Release of Apache Flink 1.18</a>
@@ -754,31 +782,6 @@ Unit testing the source # Testing the serializers # Example Cassandra SplitSeria
<a href="/2023/05/12/howto-test-a-batch-source-with-the-new-source-framework/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/">Howto migrate a real-life batch pipeline from the DataSet API to the DataStream API</a>
- </h3>
-
-
-
- May 9, 2023 -
-
-
-
- Etienne Chauchot
-
- <a href="https://twitter.com/echauchot">(@echauchot)</a>
-
-
-
-
- <p>Introduction # The Flink community has been deprecating the DataSet API since version 1.12 as part of the work on FLIP-131: Consolidate the user-facing Dataflow SDKs/APIs (and deprecate the DataSet API) . This blog article illustrates the migration of a real-life batch DataSet pipeline to a batch DataStream pipeline. All the code presented in this article is available in the tpcds-benchmark-flink repo. The use case shown here is extracted from a broader work comparing Flink perfor [...]
- <a href="/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/">...</a>
-
- </p>
- <a href="/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -824,6 +827,10 @@ Unit testing the source # Testing the serializers # Example Cassandra SplitSeria
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/6/index.html b/content/posts/page/6/index.html
index 6d85dbec08..f7810aed17 100644
--- a/content/posts/page/6/index.html
+++ b/content/posts/page/6/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,31 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/">Howto migrate a real-life batch pipeline from the DataSet API to the DataStream API</a>
+ </h3>
+
+
+
+ May 9, 2023 -
+
+
+
+ Etienne Chauchot
+
+ <a href="https://twitter.com/echauchot">(@echauchot)</a>
+
+
+
+
+ <p>Introduction # The Flink community has been deprecating the DataSet API since version 1.12 as part of the work on FLIP-131: Consolidate the user-facing Dataflow SDKs/APIs (and deprecate the DataSet API) . This blog article illustrates the migration of a real-life batch DataSet pipeline to a batch DataStream pipeline. All the code presented in this article is available in the tpcds-benchmark-flink repo. The use case shown here is extracted from a broader work comparing Flink perfor [...]
+ <a href="/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/">...</a>
+
+ </p>
+ <a href="/2023/05/09/howto-migrate-a-real-life-batch-pipeline-from-the-dataset-api-to-the-datastream-api/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2023/05/03/howto-create-a-batch-source-with-the-new-source-framework/">Howto create a batch source with the new Source framework</a>
@@ -746,36 +771,6 @@ Release Notes # Bug # [FLINK-30329] - flink-kubernetes-operator helm chart does
<a href="/2023/01/10/apache-flink-kubernetes-operator-1.3.1-release-announcement/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/">Apache Flink Kubernetes Operator 1.3.0 Release Announcement</a>
- </h3>
-
-
-
- December 14, 2022 -
-
-
-
- Matyas Orhidi
-
- <a href="https://twitter.com/matyasorhidi">(@matyasorhidi)</a>
-
-
- Gyula Fora
-
- <a href="https://twitter.com/GyulaFora">(@GyulaFora)</a>
-
-
-
-
- <p>The Flink community is happy to announce that the latest Flink Kubernetes Operator version went live today. Beyond the regular operator improvements and fixes the 1.3.0 version also integrates better with some popular infrastructure management tools like OLM and Argo CD. These improvements are clear indicators that the original intentions of the Flink community, namely to provide the de facto standard solution for managing Flink applications on Kubernetes is making steady progress [...]
- <a href="/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/">...</a>
-
- </p>
- <a href="/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -821,6 +816,10 @@ Release Notes # Bug # [FLINK-30329] - flink-kubernetes-operator helm chart does
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/7/index.html b/content/posts/page/7/index.html
index faab822782..076a0e55c7 100644
--- a/content/posts/page/7/index.html
+++ b/content/posts/page/7/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,36 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/">Apache Flink Kubernetes Operator 1.3.0 Release Announcement</a>
+ </h3>
+
+
+
+ December 14, 2022 -
+
+
+
+ Matyas Orhidi
+
+ <a href="https://twitter.com/matyasorhidi">(@matyasorhidi)</a>
+
+
+ Gyula Fora
+
+ <a href="https://twitter.com/GyulaFora">(@GyulaFora)</a>
+
+
+
+
+ <p>The Flink community is happy to announce that the latest Flink Kubernetes Operator version went live today. Beyond the regular operator improvements and fixes the 1.3.0 version also integrates better with some popular infrastructure management tools like OLM and Argo CD. These improvements are clear indicators that the original intentions of the Flink community, namely to provide the de facto standard solution for managing Flink applications on Kubernetes is making steady progress [...]
+ <a href="/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/">...</a>
+
+ </p>
+ <a href="/2022/12/14/apache-flink-kubernetes-operator-1.3.0-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2022/11/25/optimising-the-throughput-of-async-sinks-using-a-custom-ratelimitingstrategy/">Optimising the throughput of async sinks using a custom RateLimitingStrategy</a>
@@ -728,36 +758,6 @@ We highly recommend all users upgrade to Flink 1.15.2.
<a href="/2022/08/24/apache-flink-1.15.2-release-announcement/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/">Apache Flink Kubernetes Operator 1.1.0 Release Announcement</a>
- </h3>
-
-
-
- July 25, 2022 -
-
-
-
- Gyula Fora
-
- <a href="https://twitter.com/GyulaFora">(@GyulaFora)</a>
-
-
- Matyas Orhidi
-
-
-
-
- <p>The community has continued to work hard on improving the Flink Kubernetes Operator capabilities since our first production ready release we launched about two months ago.
-With the release of Flink Kubernetes Operator 1.1.0 we are proud to announce a number of exciting new features improving the overall experience of managing Flink resources and the operator itself in production environments.
-Release Highlights # A non-exhaustive list of some of the more exciting features added in the release:
- <a href="/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/">...</a>
-
- </p>
- <a href="/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -803,6 +803,10 @@ Release Highlights # A non-exhaustive list of some of the more exciting features
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/8/index.html b/content/posts/page/8/index.html
index 757ffa97d0..ba7a3be922 100644
--- a/content/posts/page/8/index.html
+++ b/content/posts/page/8/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,36 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/">Apache Flink Kubernetes Operator 1.1.0 Release Announcement</a>
+ </h3>
+
+
+
+ July 25, 2022 -
+
+
+
+ Gyula Fora
+
+ <a href="https://twitter.com/GyulaFora">(@GyulaFora)</a>
+
+
+ Matyas Orhidi
+
+
+
+
+ <p>The community has continued to work hard on improving the Flink Kubernetes Operator capabilities since our first production ready release we launched about two months ago.
+With the release of Flink Kubernetes Operator 1.1.0 we are proud to announce a number of exciting new features improving the overall experience of managing Flink resources and the operator itself in production environments.
+Release Highlights # A non-exhaustive list of some of the more exciting features added in the release:
+ <a href="/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/">...</a>
+
+ </p>
+ <a href="/2022/07/25/apache-flink-kubernetes-operator-1.1.0-release-announcement/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2022/07/12/apache-flink-ml-2.1.0-release-announcement/">Apache Flink ML 2.1.0 Release Announcement</a>
@@ -747,33 +777,6 @@ New v1beta1 API version & compatibility guarantees Session Job Management su
<a href="/2022/05/23/getting-into-low-latency-gears-with-apache-flink-part-two/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/">Getting into Low-Latency Gears with Apache Flink - Part One</a>
- </h3>
-
-
-
- May 18, 2022 -
-
-
-
- Jun Qin
-
-
- Nico Kruber
-
-
-
-
- <p>Apache Flink is a stream processing framework well known for its low latency processing capabilities. It is generic and suitable for a wide range of use cases. As a Flink application developer or a cluster administrator, you need to find the right gear that is best for your application. In other words, you don’t want to be driving a luxury sports car while only using the first gear.
-In this multi-part series, we will present a collection of low-latency techniques in Flink.
- <a href="/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/">...</a>
-
- </p>
- <a href="/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -819,6 +822,10 @@ In this multi-part series, we will present a collection of low-latency technique
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/posts/page/9/index.html b/content/posts/page/9/index.html
index ee248dfd6e..b1e59b1d8a 100644
--- a/content/posts/page/9/index.html
+++ b/content/posts/page/9/index.html
@@ -24,7 +24,7 @@
<link rel="manifest" href="/manifest.json">
<link rel="icon" href="/favicon.png" type="image/x-icon">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/posts/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
@@ -500,6 +500,33 @@ https://github.com/alex-shpak/hugo-book
<section class="container book-page">
+ <article class="markdown book-post">
+ <h3>
+ <a href="/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/">Getting into Low-Latency Gears with Apache Flink - Part One</a>
+ </h3>
+
+
+
+ May 18, 2022 -
+
+
+
+ Jun Qin
+
+
+ Nico Kruber
+
+
+
+
+ <p>Apache Flink is a stream processing framework well known for its low latency processing capabilities. It is generic and suitable for a wide range of use cases. As a Flink application developer or a cluster administrator, you need to find the right gear that is best for your application. In other words, you don’t want to be driving a luxury sports car while only using the first gear.
+In this multi-part series, we will present a collection of low-latency techniques in Flink.
+ <a href="/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/">...</a>
+
+ </p>
+ <a href="/2022/05/18/getting-into-low-latency-gears-with-apache-flink-part-one/">Continue reading »</a>
+ </article>
+
<article class="markdown book-post">
<h3>
<a href="/2022/05/11/apache-flink-table-store-0.1.0-release-announcement/">Apache Flink Table Store 0.1.0 Release Announcement</a>
@@ -749,37 +776,6 @@ We highly recommend all users to upgrade to Flink 1.
<a href="/2022/02/18/apache-flink-1.13.6-release-announcement/">Continue reading »</a>
</article>
- <article class="markdown book-post">
- <h3>
- <a href="/2022/01/31/stateful-functions-3.2.0-release-announcement/">Stateful Functions 3.2.0 Release Announcement</a>
- </h3>
-
-
-
- January 31, 2022 -
-
-
-
- Till Rohrmann
-
- <a href="https://twitter.com/stsffap">(@stsffap)</a>
-
-
- Igal Shilman
-
- <a href="https://twitter.com/IgalShilman">(@IgalShilman)</a>
-
-
-
-
- <p>Stateful Functions is a cross-platform stack for building Stateful Serverless applications, making it radically simpler to develop scalable, consistent, and elastic distributed applications. This new release brings various improvements to the StateFun runtime, a leaner way to specify StateFun module components, and a brand new JavaScript SDK!
-The binary distribution and source artifacts are now available on the updated Downloads page of the Flink website, and the most recent Java SDK, Python SDK,, GoLang SDK and JavaScript SDK distributions are available on Maven, PyPI, Github, and npm respectively.
- <a href="/2022/01/31/stateful-functions-3.2.0-release-announcement/">...</a>
-
- </p>
- <a href="/2022/01/31/stateful-functions-3.2.0-release-announcement/">Continue reading »</a>
- </article>
-
<ul class="pagination pagination-default">
@@ -825,6 +821,10 @@ The binary distribution and source artifacts are now available on the updated Do
<nav>
<ul>
+ <li>
+ <a href="https://flink.apache.org/2026/02/15/apache-flink-kubernetes-operator-1.14.0-release-announcement/">Apache Flink Kubernetes Operator 1.14.0 Release Announcement</a>
+ </li>
+
<li>
<a href="https://flink.apache.org/2026/02/06/apache-flink-agents-0.2.0-release-announcement/">Apache Flink Agents 0.2.0 Release Announcement</a>
</li>
diff --git a/content/sitemap.xml b/content/sitemap.xml
index 680c6c52f8..1fba31fc40 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -4,7 +4,7 @@
<sitemap>
<loc>https://flink.apache.org/en/sitemap.xml</loc>
- <lastmod>2026-02-06T00:00:00+00:00</lastmod>
+ <lastmod>2026-02-15T18:00:00+00:00</lastmod>
</sitemap>
diff --git a/content/tags/index.html b/content/tags/index.html
index c15ff9d5b2..a7fb537571 100644
--- a/content/tags/index.html
+++ b/content/tags/index.html
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/tags/" title="Tags">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/tags/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
diff --git a/content/what-is-flink-ml/index.html b/content/what-is-flink-ml/index.html
index 5eac7c72a5..d74fd71cf2 100644
--- a/content/what-is-flink-ml/index.html
+++ b/content/what-is-flink-ml/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink-ml/" title="What is Flink ML?">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink-table-store/index.html b/content/what-is-flink-table-store/index.html
index 3bd97aa04f..a31fb5833b 100644
--- a/content/what-is-flink-table-store/index.html
+++ b/content/what-is-flink-table-store/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink-table-store/" title="What is Paimon(incubating) (formerly Flink Table Store)?">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/community/index.html b/content/what-is-flink/community/index.html
index 38ba275b82..b443b8099e 100644
--- a/content/what-is-flink/community/index.html
+++ b/content/what-is-flink/community/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/community/" title="社区 & 项目信息">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/flink-applications/index.html b/content/what-is-flink/flink-applications/index.html
index b78181a642..1226cc7d09 100644
--- a/content/what-is-flink/flink-applications/index.html
+++ b/content/what-is-flink/flink-applications/index.html
@@ -32,7 +32,7 @@ Building Blocks for Streaming Applications # The types of applications that can
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/flink-applications/" title="应用">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/flink-architecture/index.html b/content/what-is-flink/flink-architecture/index.html
index 429ad2b2c0..8202dd6e96 100644
--- a/content/what-is-flink/flink-architecture/index.html
+++ b/content/what-is-flink/flink-architecture/index.html
@@ -32,7 +32,7 @@ Process Unbounded and Bounded Data # Any kind of data is produced as a stream of
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/flink-architecture/" title="架构">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/flink-operations/index.html b/content/what-is-flink/flink-operations/index.html
index 8b32d3fb3d..451c2327df 100644
--- a/content/what-is-flink/flink-operations/index.html
+++ b/content/what-is-flink/flink-operations/index.html
@@ -30,7 +30,7 @@ Apache Flink puts a strong focus on the operational aspects of stream processing
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/flink-operations/" title="运维">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/index.html b/content/what-is-flink/index.html
index f1a4a83bfe..b93f84378d 100644
--- a/content/what-is-flink/index.html
+++ b/content/what-is-flink/index.html
@@ -26,7 +26,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/" title="About">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<link rel="alternate" type="application/rss+xml" href="https://flink.apache.org/what-is-flink/index.xml" title="Apache Flink" />
<!--
Made with Book Theme
diff --git a/content/what-is-flink/powered-by/index.html b/content/what-is-flink/powered-by/index.html
index b790bfe736..fdd0abd23a 100644
--- a/content/what-is-flink/powered-by/index.html
+++ b/content/what-is-flink/powered-by/index.html
@@ -30,7 +30,7 @@ More Flink users are listed in the Powered by Flink directory in the project wik
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/powered-by/" title="Flink 用户">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/roadmap/index.html b/content/what-is-flink/roadmap/index.html
index 1a5920214d..668eae7432 100644
--- a/content/what-is-flink/roadmap/index.html
+++ b/content/what-is-flink/roadmap/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/roadmap/" title="开发计划">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/security/index.html b/content/what-is-flink/security/index.html
index 3254a7e83b..d5d9005cf2 100644
--- a/content/what-is-flink/security/index.html
+++ b/content/what-is-flink/security/index.html
@@ -30,7 +30,7 @@ CVE ID Affected Flink versions Notes CVE-2020-1960 1.1.0 to 1.1.5, 1.2.0 to 1.2.
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/security/" title="Security">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/special-thanks/index.html b/content/what-is-flink/special-thanks/index.html
index 43749a4da2..335341f7fc 100644
--- a/content/what-is-flink/special-thanks/index.html
+++ b/content/what-is-flink/special-thanks/index.html
@@ -40,7 +40,7 @@ Alibaba donated 8 machines (32vCPU,64GB) to run Flink CI builds for Flink reposi
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/special-thanks/" title="特殊致谢">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-flink/use-cases/index.html b/content/what-is-flink/use-cases/index.html
index 6d27123651..67b3812bbc 100644
--- a/content/what-is-flink/use-cases/index.html
+++ b/content/what-is-flink/use-cases/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-flink/use-cases/" title="应用场景">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-stateful-functions/index.html b/content/what-is-stateful-functions/index.html
index a9ed8a23a2..a4b1933374 100644
--- a/content/what-is-stateful-functions/index.html
+++ b/content/what-is-stateful-functions/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-stateful-functions/" title="What is Stateful Functions?">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/what-is-the-flink-kubernetes-operator/index.html b/content/what-is-the-flink-kubernetes-operator/index.html
index 4ff0c19803..a12f7a4c99 100644
--- a/content/what-is-the-flink-kubernetes-operator/index.html
+++ b/content/what-is-the-flink-kubernetes-operator/index.html
@@ -28,7 +28,7 @@
<link rel="alternate" hreflang="zh" href="https://flink.apache.org/zh/what-is-the-flink-kubernetes-operator/" title="What is the Flink Kubernetes Operator?">
<link rel="stylesheet" href="/book.min.22eceb4d17baa9cdc0f57345edd6f215a40474022dfee39b63befb5fb3c596b5.css" integrity="sha256-IuzrTRe6qc3A9XNF7dbyFaQEdAIt/uObY777X7PFlrU=">
-<script defer src="/en.search.min.58a3057a2ab5a29bf0c2fcf48950fc1b7576330f1d499fd60c63368b6fdf88ae.js" integrity="sha256-WKMFeiq1opvwwvz0iVD8G3V2Mw8dSZ/WDGM2i2/fiK4="></script>
+<script defer src="/en.search.min.f8d0f294fffe8dbbd91f2ece87c237d9bc4db3daafee0f04515eb4cc823b7619.js" integrity="sha256-+NDylP/+jbvZHy7Oh8I32bxNs9qv7g8EUV60zII7dhk="></script>
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
diff --git a/content/zh/how-to-contribute/code-style-and-quality-common/index.html b/content/zh/how-to-contribute/code-style-and-quality-common/index.html
index f152c4c249..8afd84ea71 100644
--- a/content/zh/how-to-contribute/code-style-and-quality-common/index.html
+++ b/content/zh/how-to-contribute/code-style-and-quality-common/index.html
@@ -496,33 +496,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Common Rules
<a class="anchor" href="#code-style-and-quality-guide--common-rules">#</a>
</h1>
-<h4 id="序言hahahugoshortcode62s0hbhb">
+<h4 id="序言hahahugoshortcode63s0hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-preamble/">序言</a>
- <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode62s0hbhb">#</a>
+ <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode63s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode62s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode63s1hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode62s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode63s1hbhb">#</a>
</h4>
-<h4 id="常用编码指南hahahugoshortcode62s2hbhb">
+<h4 id="常用编码指南hahahugoshortcode63s2hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-common/">常用编码指南</a>
- <a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bc%96%e7%a0%81%e6%8c%87%e5%8d%97hahahugoshortcode62s2hbhb">#</a>
+ <a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bc%96%e7%a0%81%e6%8c%87%e5%8d%97hahahugoshortcode63s2hbhb">#</a>
</h4>
-<h4 id="java-语言指南hahahugoshortcode62s3hbhb">
+<h4 id="java-语言指南hahahugoshortcode63s3hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-java/">Java 语言指南</a>
- <a class="anchor" href="#java-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode62s3hbhb">#</a>
+ <a class="anchor" href="#java-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode63s3hbhb">#</a>
</h4>
-<h4 id="scala-语言指南hahahugoshortcode62s4hbhb">
+<h4 id="scala-语言指南hahahugoshortcode63s4hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-scala/">Scala 语言指南</a>
- <a class="anchor" href="#scala-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode62s4hbhb">#</a>
+ <a class="anchor" href="#scala-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode63s4hbhb">#</a>
</h4>
-<h4 id="组件指南hahahugoshortcode62s5hbhb">
+<h4 id="组件指南hahahugoshortcode63s5hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-components/">组件指南</a>
- <a class="anchor" href="#%e7%bb%84%e4%bb%b6%e6%8c%87%e5%8d%97hahahugoshortcode62s5hbhb">#</a>
+ <a class="anchor" href="#%e7%bb%84%e4%bb%b6%e6%8c%87%e5%8d%97hahahugoshortcode63s5hbhb">#</a>
</h4>
-<h4 id="格式指南hahahugoshortcode62s6hbhb">
+<h4 id="格式指南hahahugoshortcode63s6hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-formatting/">格式指南</a>
- <a class="anchor" href="#%e6%a0%bc%e5%bc%8f%e6%8c%87%e5%8d%97hahahugoshortcode62s6hbhb">#</a>
+ <a class="anchor" href="#%e6%a0%bc%e5%bc%8f%e6%8c%87%e5%8d%97hahahugoshortcode63s6hbhb">#</a>
</h4>
<hr>
<h2 id="1-copyright">
diff --git a/content/zh/how-to-contribute/code-style-and-quality-components/index.html b/content/zh/how-to-contribute/code-style-and-quality-components/index.html
index cb55ecb94f..3a8ad16272 100644
--- a/content/zh/how-to-contribute/code-style-and-quality-components/index.html
+++ b/content/zh/how-to-contribute/code-style-and-quality-components/index.html
@@ -502,33 +502,33 @@ https://github.com/alex-shpak/hugo-book
Apache Flink 代码样式和质量指南 — 组件
<a class="anchor" href="#apache-flink-%e4%bb%a3%e7%a0%81%e6%a0%b7%e5%bc%8f%e5%92%8c%e8%b4%a8%e9%87%8f%e6%8c%87%e5%8d%97--%e7%bb%84%e4%bb%b6">#</a>
</h1>
-<h4 id="序言hahahugoshortcode66s0hbhb">
+<h4 id="序言hahahugoshortcode61s0hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-preamble/">序言</a>
- <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode66s0hbhb">#</a>
+ <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode61s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode66s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode61s1hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode66s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode61s1hbhb">#</a>
</h4>
-<h4 id="常用编码指南hahahugoshortcode66s2hbhb">
+<h4 id="常用编码指南hahahugoshortcode61s2hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-common/">常用编码指南</a>
- <a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bc%96%e7%a0%81%e6%8c%87%e5%8d%97hahahugoshortcode66s2hbhb">#</a>
+ <a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bc%96%e7%a0%81%e6%8c%87%e5%8d%97hahahugoshortcode61s2hbhb">#</a>
</h4>
-<h4 id="java-语言指南hahahugoshortcode66s3hbhb">
+<h4 id="java-语言指南hahahugoshortcode61s3hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-java/">Java 语言指南</a>
- <a class="anchor" href="#java-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode66s3hbhb">#</a>
+ <a class="anchor" href="#java-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode61s3hbhb">#</a>
</h4>
-<h4 id="scala-语言指南hahahugoshortcode66s4hbhb">
+<h4 id="scala-语言指南hahahugoshortcode61s4hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-scala/">Scala 语言指南</a>
- <a class="anchor" href="#scala-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode66s4hbhb">#</a>
+ <a class="anchor" href="#scala-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode61s4hbhb">#</a>
</h4>
-<h4 id="组件指南hahahugoshortcode66s5hbhb">
+<h4 id="组件指南hahahugoshortcode61s5hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-components/">组件指南</a>
- <a class="anchor" href="#%e7%bb%84%e4%bb%b6%e6%8c%87%e5%8d%97hahahugoshortcode66s5hbhb">#</a>
+ <a class="anchor" href="#%e7%bb%84%e4%bb%b6%e6%8c%87%e5%8d%97hahahugoshortcode61s5hbhb">#</a>
</h4>
-<h4 id="格式指南hahahugoshortcode66s6hbhb">
+<h4 id="格式指南hahahugoshortcode61s6hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-formatting/">格式指南</a>
- <a class="anchor" href="#%e6%a0%bc%e5%bc%8f%e6%8c%87%e5%8d%97hahahugoshortcode66s6hbhb">#</a>
+ <a class="anchor" href="#%e6%a0%bc%e5%bc%8f%e6%8c%87%e5%8d%97hahahugoshortcode61s6hbhb">#</a>
</h4>
<h2 id="组件特定指南">
组件特定指南
diff --git a/content/zh/how-to-contribute/code-style-and-quality-formatting/index.html b/content/zh/how-to-contribute/code-style-and-quality-formatting/index.html
index 959e82f164..f2b8a8ef73 100644
--- a/content/zh/how-to-contribute/code-style-and-quality-formatting/index.html
+++ b/content/zh/how-to-contribute/code-style-and-quality-formatting/index.html
@@ -496,33 +496,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Formatting Guide
<a class="anchor" href="#code-style-and-quality-guide--formatting-guide">#</a>
</h1>
-<h4 id="序言hahahugoshortcode61s0hbhb">
+<h4 id="序言hahahugoshortcode67s0hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-preamble/">序言</a>
- <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode61s0hbhb">#</a>
+ <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode67s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode61s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode67s1hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-pull-requests/">Pull Requests & Changes</a>
- <a class="anchor" href="#pull-requests--changeshahahugoshortcode61s1hbhb">#</a>
+ <a class="anchor" href="#pull-requests--changeshahahugoshortcode67s1hbhb">#</a>
</h4>
-<h4 id="常用编码指南hahahugoshortcode61s2hbhb">
+<h4 id="常用编码指南hahahugoshortcode67s2hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-common/">常用编码指南</a>
- <a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bc%96%e7%a0%81%e6%8c%87%e5%8d%97hahahugoshortcode61s2hbhb">#</a>
+ <a class="anchor" href="#%e5%b8%b8%e7%94%a8%e7%bc%96%e7%a0%81%e6%8c%87%e5%8d%97hahahugoshortcode67s2hbhb">#</a>
</h4>
-<h4 id="java-语言指南hahahugoshortcode61s3hbhb">
+<h4 id="java-语言指南hahahugoshortcode67s3hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-java/">Java 语言指南</a>
- <a class="anchor" href="#java-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode61s3hbhb">#</a>
+ <a class="anchor" href="#java-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode67s3hbhb">#</a>
</h4>
-<h4 id="scala-语言指南hahahugoshortcode61s4hbhb">
+<h4 id="scala-语言指南hahahugoshortcode67s4hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-scala/">Scala 语言指南</a>
- <a class="anchor" href="#scala-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode61s4hbhb">#</a>
+ <a class="anchor" href="#scala-%e8%af%ad%e8%a8%80%e6%8c%87%e5%8d%97hahahugoshortcode67s4hbhb">#</a>
</h4>
-<h4 id="组件指南hahahugoshortcode61s5hbhb">
+<h4 id="组件指南hahahugoshortcode67s5hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-components/">组件指南</a>
- <a class="anchor" href="#%e7%bb%84%e4%bb%b6%e6%8c%87%e5%8d%97hahahugoshortcode61s5hbhb">#</a>
+ <a class="anchor" href="#%e7%bb%84%e4%bb%b6%e6%8c%87%e5%8d%97hahahugoshortcode67s5hbhb">#</a>
</h4>
-<h4 id="格式指南hahahugoshortcode61s6hbhb">
+<h4 id="格式指南hahahugoshortcode67s6hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-formatting/">格式指南</a>
- <a class="anchor" href="#%e6%a0%bc%e5%bc%8f%e6%8c%87%e5%8d%97hahahugoshortcode61s6hbhb">#</a>
+ <a class="anchor" href="#%e6%a0%bc%e5%bc%8f%e6%8c%87%e5%8d%97hahahugoshortcode67s6hbhb">#</a>
</h4>
<h2 id="java-code-formatting-style">
Java Code Formatting Style
diff --git a/content/zh/how-to-contribute/code-style-and-quality-java/index.html b/content/zh/how-to-contribute/code-style-and-quality-java/index.html
index 4fcf58e03a..fc16bf03a2 100644
--- a/content/zh/how-to-contribute/code-style-and-quality-java/index.html
+++ b/content/zh/how-to-contribute/code-style-and-quality-java/index.html
@@ -494,33 +494,33 @@ https://github.com/alex-shpak/hugo-book
Code Style and Quality Guide — Java
<a class="anchor" href="#code-style-and-quality-guide--java">#</a>
</h1>
-<h4 id="序言hahahugoshortcode70s0hbhb">
+<h4 id="序言hahahugoshortcode69s0hbhb">
<a href="/zh/how-to-contribute/code-style-and-quality-preamble/">序言</a>
- <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode70s0hbhb">#</a>
+ <a class="anchor" href="#%e5%ba%8f%e8%a8%80hahahugoshortcode69s0hbhb">#</a>
</h4>
-<h4 id="pull-requests--changeshahahugoshortcode70s1hbhb">
+<h4 id="pull-requests--changeshahahugoshortcode69s1hbhb">
... 252 lines suppressed ...