This is an automated email from the ASF dual-hosted git repository.
chesnay 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 386514122 Rebuild website
386514122 is described below
commit 38651412202a7b00a869fd6c9514c76e8d2301be
Author: Chesnay Schepler <[email protected]>
AuthorDate: Thu Sep 8 19:30:42 2022 +0200
Rebuild website
---
content/blog/feed.xml | 291 +++++----------------
content/blog/index.html | 41 +--
content/blog/page10/index.html | 36 ++-
content/blog/page11/index.html | 36 ++-
content/blog/page12/index.html | 42 +--
content/blog/page13/index.html | 46 ++--
content/blog/page14/index.html | 42 +--
content/blog/page15/index.html | 40 +--
content/blog/page16/index.html | 40 +--
content/blog/page17/index.html | 40 +--
content/blog/page18/index.html | 40 +--
content/blog/page19/index.html | 40 +--
content/blog/page2/index.html | 39 ++-
content/blog/page20/index.html | 25 ++
content/blog/page3/index.html | 38 +--
content/blog/page4/index.html | 47 ++--
content/blog/page5/index.html | 49 ++--
content/blog/page6/index.html | 42 +--
content/blog/page7/index.html | 40 +--
content/blog/page8/index.html | 45 ++--
content/blog/page9/index.html | 43 ++-
content/downloads.html | 18 +-
content/index.html | 8 +-
.../2022/09/08/akka-license-change.html} | 290 +++++---------------
content/zh/downloads.html | 18 +-
content/zh/index.html | 8 +-
26 files changed, 660 insertions(+), 784 deletions(-)
diff --git a/content/blog/feed.xml b/content/blog/feed.xml
index 734493400..ed23f2c91 100644
--- a/content/blog/feed.xml
+++ b/content/blog/feed.xml
@@ -6,6 +6,66 @@
<link>https://flink.apache.org/blog</link>
<atom:link href="https://flink.apache.org/blog/feed.xml" rel="self"
type="application/rss+xml" />
+<item>
+<title>Regarding Akka's licensing change</title>
+<description><p>On September 7th Lightbend announced a <a
href="https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka">license
change</a> for the Akka project, the TL;DR being that you will need a
commercial license to use future versions of Akka (2.7+) in production if you
exceed a certain revenue threshold.</p>
+
+<p>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.</p>
+
+<p>The purpose of this blogpost is to clarify our position on the
matter.</p>
+
+<p>Please be aware that this topic is still quite fresh, and things are
subject to change.<br />
+Should anything significant change we will amend this blogpost and inform you
via the usual channels.</p>
+
+<h1 id="give-me-the-short-version">Give me the short
version</h1>
+
+<p>Flink is not in any immediate danger and we will ensure that users
are not affected by this change.</p>
+
+<p>The licensing of Flink will not change; it will stay Apache-licensed
and will only contain dependencies that are compatible with it.</p>
+
+<p>We will not use Akka versions with the new license.</p>
+
+<h1 id="whats-the-plan-going-forward">What’s the plan going
forward?</h1>
+
+<p><em>For now</em>, we’ll stay on Akka 2.6, the current
latest version that is still available under the original license.
+Historically Akka has been incredibly stable, and combined with our limited
use of features, we do not expect this to be a problem.</p>
+
+<p>Meanwhile, we will</p>
+
+<ul>
+ <li>observe how the situation unfolds (in particular w.r.t. community
forks)</li>
+ <li>look into a replacement for Akka.</li>
+</ul>
+
+<p>Should a community fork be created (which at this time seems
possible) we will switch to that fork in all likely-hood for 1.15+.</p>
+
+<h2
id="what-if-a-new-security-vulnerabilities-is-found-in-akka-26">What
if a new security vulnerabilities is found in Akka 2.6?</h2>
+
+<p>That is the big unknown.</p>
+
+<p>Even though we will be able to upgrade to 2.6.20 (the (apparently)
last planned release for Akka 2.6) in Flink 1.17, the unfortunate reality is
that <a
href="https://github.com/akka/akka/pull/31561#issuecomment-1239217602">2.6
will no longer be supported</a> from that point onwards.<br />
+Should a CVE be discovered after that it is unlikely to be fixed in Akka
2.6.</p>
+
+<p>We cannot provide a definitive answer as to how that case would be
handled, as it depends on what the CVE is and/or whether a community fork
already exists at the time.</p>
+
+<h1 id="how-does-flink-use-akka">How does Flink use
Akka?</h1>
+
+<p>Akka is used in the coordination layer of Flink to</p>
+
+<ul>
+ <li>exchange status messages between processes/components (e.g.,
JobManager and TaskManager),</li>
+ <li>enforce certain guarantees w.r.t. multi-threading (i.e., only one
thread can make changes to the internal state of a component)</li>
+ <li>observe components for unexpected crashes (i.e., notice and handle
TaskManager thread crashes).</li>
+</ul>
+
+<p>What this means is that we are using very few functionalities of
Akka.<br />
+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.</p>
+</description>
+<pubDate>Thu, 08 Sep 2022 10:00:00 +0200</pubDate>
+<link>https://flink.apache.org/news/2022/09/08/akka-license-change.html</link>
+<guid isPermaLink="true">/news/2022/09/08/akka-license-change.html</guid>
+</item>
+
<item>
<title>Apache Flink Table Store 0.2.0 Release Announcement</title>
<description><!-- improve style of tables -->
@@ -19861,236 +19921,5 @@ We encourage you to sign up for the <a
href="https://flink.apache.org/co
<guid isPermaLink="true">/news/2020/02/11/release-1.10.0.html</guid>
</item>
-<item>
-<title>A Guide for Unit Testing in Apache Flink</title>
-<description><p>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-time data processing system.
In the following sections, we provide a guide for unit testing of Apache Flink
applications.
-Apache Flink provides a robust unit testing framework to make sure your
applications behave in production as expected during development. You need to
include the following dependencies to utilize the provided framework.</p>
-
-<div class="highlight"><pre><code
class="language-xml"><span
class="nt">&lt;dependency&gt;</span>
- <span
class="nt">&lt;groupId&gt;</span>org.apache.flink<span
class="nt">&lt;/groupId&gt;</span>
- <span
class="nt">&lt;artifactId&gt;</span>flink-test-utils_${scala.binary.version}<span
class="nt">&lt;/artifactId&gt;</span>
- <span
class="nt">&lt;version&gt;</span>${flink.version}<span
class="nt">&lt;/version&gt;</span>
- <span
class="nt">&lt;scope&gt;</span>test<span
class="nt">&lt;/scope&gt;</span>
-<span class="nt">&lt;/dependency&gt;</span>
-<span class="nt">&lt;dependency&gt;</span>
- <span
class="nt">&lt;groupId&gt;</span>org.apache.flink<span
class="nt">&lt;/groupId&gt;</span>
- <span
class="nt">&lt;artifactId&gt;</span>flink-runtime_2.11<span
class="nt">&lt;/artifactId&gt;</span>
- <span
class="nt">&lt;version&gt;</span>1.9.0<span
class="nt">&lt;/version&gt;</span>
- <span
class="nt">&lt;scope&gt;</span>test<span
class="nt">&lt;/scope&gt;</span>
- <span
class="nt">&lt;classifier&gt;</span>tests<span
class="nt">&lt;/classifier&gt;</span>
-<span class="nt">&lt;/dependency&gt;</span>
-<span class="nt">&lt;dependency&gt;</span>
- <span
class="nt">&lt;groupId&gt;</span>org.apache.flink<span
class="nt">&lt;/groupId&gt;</span>
- <span
class="nt">&lt;artifactId&gt;</span>flink-streaming-java_2.11<span
class="nt">&lt;/artifactId&gt;</span>
- <span
class="nt">&lt;version&gt;</span>1.9.0<span
class="nt">&lt;/version&gt;</span>
- <span
class="nt">&lt;scope&gt;</span>test<span
class="nt">&lt;/scope&gt;</span>
- <span
class="nt">&lt;classifier&gt;</span>tests<span
class="nt">&lt;/classifier&gt;</span>
-<span
class="nt">&lt;/dependency&gt;</span></code></pre></div>
-
-<p>The strategy of writing unit tests differs for various operators. You
can break down the strategy into the following three buckets:</p>
-
-<ul>
- <li>Stateless Operators</li>
- <li>Stateful Operators</li>
- <li>Timed Process Operators</li>
-</ul>
-
-<h1 id="stateless-operators">Stateless Operators</h1>
-
-<p>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 <code>Map</code> operator.</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="kd">public</span> <span
class="kd">class</span> <span
class="nc">MyStatelessMap</span> <span
class="kd">implements</span> <span
class="n">MapFunction</span><span
class="o">&lt;</span><span
class="n">String</span><span class= [...]
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span
class="n">String</span> <span
class="nf">map</span><span
class="o">(</span><span
class="n">String</span> <span
class="n">in</span><span
class="o">)</span> <span
class="kd">throws</span> <span
class="n">Exception</span> <span
class="o">{< [...]
- <span class="n">String</span> <span
class="n">out</span> <span
class="o">=</span> <span
class="s">&quot;hello &quot;</span> <span
class="o">+</span> <span
class="n">in</span><span
class="o">;</span>
- <span class="k">return</span> <span
class="n">out</span><span
class="o">;</span>
- <span class="o">}</span>
-<span
class="o">}</span></code></pre></div>
-
-<p>The test case for the above operator should look like</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="nd">@Test</span>
-<span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">testMap</span><span
class="o">()</span> <span
class="kd">throws</span> <span
class="n">Exception</span> <span
class="o">{</span>
- <span class="n">MyStatelessMap</span> <span
class="n">statelessMap</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="nf">MyStatelessMap</span><span
class="o">();</span>
- <span class="n">String</span> <span
class="n">out</span> <span
class="o">=</span> <span
class="n">statelessMap</span><span
class="o">.</span><span
class="na">map</span><span
class="o">(</span><span
class="s">&quot;world&quot;</span><span
class="o">);</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span><span
class="s">&quot;hello world&quot;</span><span
class="o">,</span> <span
class="n">out</span><span
class="o">);</span>
-<span
class="o">}</span></code></pre></div>
-
-<p>Pretty simple, right? Let’s take a look at one for the
<code>FlatMap</code> operator.</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="kd">public</span> <span
class="kd">class</span> <span
class="nc">MyStatelessFlatMap</span> <span
class="kd">implements</span> <span
class="n">FlatMapFunction</span><span
class="o">&lt;</span><span
class="n">String</span><spa [...]
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">flatMap</span><span
class="o">(</span><span
class="n">String</span> <span
class="n">in</span><span
class="o">,</span> <span
class="n">Collector</span><span
class="o">&lt;</span><span class="n">St
[...]
- <span class="n">String</span> <span
class="n">out</span> <span
class="o">=</span> <span
class="s">&quot;hello &quot;</span> <span
class="o">+</span> <span
class="n">in</span><span
class="o">;</span>
- <span class="n">collector</span><span
class="o">.</span><span
class="na">collect</span><span
class="o">(</span><span
class="n">out</span><span
class="o">);</span>
- <span class="o">}</span>
-<span
class="o">}</span></code></pre></div>
-
-<p><code>FlatMap</code> operators require a
<code>Collector</code> object along with the input. For the test
case, we have two options:</p>
-
-<ol>
- <li>Mock the <code>Collector</code> object using
Mockito</li>
- <li>Use the <code>ListCollector</code> provided by
Flink</li>
-</ol>
-
-<p>I prefer the second method as it requires fewer lines of code and is
suitable for most of the cases.</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="nd">@Test</span>
-<span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">testFlatMap</span><span
class="o">()</span> <span
class="kd">throws</span> <span
class="n">Exception</span> <span
class="o">{</span>
- <span class="n">MyStatelessFlatMap</span> <span
class="n">statelessFlatMap</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="nf">MyStatelessFlatMap</span><span
class="o">();</span>
- <span class="n">List</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">out</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="n">ArrayList</span><span
class="o">&lt;&gt;();</span>
- <span class="n">ListCollector</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">listCollector</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="n">ListCollector</span><span
class="o">&lt;&gt;(</span> [...]
- <span class="n">statelessFlatMap</span><span
class="o">.</span><span
class="na">flatMap</span><span
class="o">(</span><span
class="s">&quot;world&quot;</span><span
class="o">,</span> <span
class="n">listCollector</span><span
class="o">);</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span><span
class="n">Lists</span><span
class="o">.</span><span
class="na">newArrayList</span><span
class="o">(</span><span
class="s">&quot;hello world&quot;</span><span
clas [...]
-<span
class="o">}</span></code></pre></div>
-
-<h1 id="stateful-operators">Stateful Operators</h1>
-
-<p>Writing test cases for stateful operators requires more effort. You
need to check whether the operator state is updated correctly and if it is
cleaned up properly along with the output of the operator.</p>
-
-<p>Let’s take an example of stateful <code>FlatMap</code>
function</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="kd">public</span> <span
class="kd">class</span> <span
class="nc">StatefulFlatMap</span> <span
class="kd">extends</span> <span
class="n">RichFlatMapFunction</span><span
class="o">&lt;</span><span
class="n">String</span><span [...]
- <span class="n">ValueState</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">previousInput</span><span
class="o">;</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">open</span><span
class="o">(</span><span
class="n">Configuration</span> <span
class="n">parameters</span><span
class="o">)</span> <span
class="kd">throws</span> <span
class="n">Exception</span> <span class=" [...]
- <span class="n">previousInput</span> <span
class="o">=</span> <span
class="n">getRuntimeContext</span><span
class="o">().</span><span
class="na">getState</span><span
class="o">(</span>
- <span class="k">new</span> <span
class="n">ValueStateDescriptor</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">&gt;(</span><span
class="s">&quot;previousInput&quot;</span><span
class="o">,</span> <span
class="n">Types</span><span
class="o">.</s [...]
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">flatMap</span><span
class="o">(</span><span
class="n">String</span> <span
class="n">in</span><span
class="o">,</span> <span
class="n">Collector</span><span
class="o">&lt;</span><span class="n">St
[...]
- <span class="n">String</span> <span
class="n">out</span> <span
class="o">=</span> <span
class="s">&quot;hello &quot;</span> <span
class="o">+</span> <span
class="n">in</span><span
class="o">;</span>
- <span class="k">if</span><span
class="o">(</span><span
class="n">previousInput</span><span
class="o">.</span><span
class="na">value</span><span
class="o">()</span> <span
class="o">!=</span> <span
class="kc">null</span><span
class="o">){</span>
- <span class="n">out</span> <span
class="o">=</span> <span
class="n">out</span> <span
class="o">+</span> <span
class="s">&quot; &quot;</span> <span
class="o">+</span> <span
class="n">previousInput</span><span
class="o">.</span><span
class="na">value</span><span class="o&qu [...]
- <span class="o">}</span>
- <span class="n">previousInput</span><span
class="o">.</span><span
class="na">update</span><span
class="o">(</span><span
class="n">in</span><span
class="o">);</span>
- <span class="n">collector</span><span
class="o">.</span><span
class="na">collect</span><span
class="o">(</span><span
class="n">out</span><span
class="o">);</span>
- <span class="o">}</span>
-<span
class="o">}</span></code></pre></div>
-
-<p>The intricate part of writing tests for the above class is to mock
the configuration as well as the runtime context of the application. Flink
provides TestHarness classes so that users don’t have to create the mock
objects themselves. Using the <code>KeyedOperatorHarness</code>,
the test looks like:</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="kn">import</span> <span
class="nn">org.apache.flink.streaming.api.operators.StreamFlatMap</span><span
class="o">;</span>
-<span class="kn">import</span> <span
class="nn">org.apache.flink.streaming.runtime.streamrecord.StreamRecord</span><span
class="o">;</span>
-<span class="kn">import</span> <span
class="nn">org.apache.flink.streaming.util.KeyedOneInputStreamOperatorTestHarness</span><span
class="o">;</span>
-<span class="kn">import</span> <span
class="nn">org.apache.flink.streaming.util.OneInputStreamOperatorTestHarness</span><span
class="o">;</span>
-
-<span class="nd">@Test</span>
-<span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">testFlatMap</span><span
class="o">()</span> <span
class="kd">throws</span> <span
class="n">Exception</span><span
class="o">{</span>
- <span class="n">StatefulFlatMap</span> <span
class="n">statefulFlatMap</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="nf">StatefulFlatMap</span><span
class="o">();</span>
-
- <span class="c1">// OneInputStreamOperatorTestHarness takes
the input and output types as type parameters </span>
- <span
class="n">OneInputStreamOperatorTestHarness</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">,</span> <span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">testHarness</span> <span
class="o">=</span>
- <span class="c1">// KeyedOneInputStreamOperatorTestHarness
takes three arguments:</span>
- <span class="c1">// Flink operator object, key selector
and key type</span>
- <span class="k">new</span> <span
class="n">KeyedOneInputStreamOperatorTestHarness</span><span
class="o">&lt;&gt;(</span>
- <span class="k">new</span> <span
class="n">StreamFlatMap</span><span
class="o">&lt;&gt;(</span><span
class="n">statefulFlatMap</span><span
class="o">),</span> <span
class="n">x</span> <span
class="o">-&gt;</span> <span
class="s">&quot;1&quot;</span><span
class="o">,</spa [...]
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">open</span><span
class="o">();</span>
-
- <span class="c1">// test first record</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">processElement</span><span
class="o">(</span><span
class="s">&quot;world&quot;</span><span
class="o">,</span> <span
class="mi">10</span><span
class="o">);</span>
- <span class="n">ValueState</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">previousInput</span> <span
class="o">=</span>
- <span class="n">statefulFlatMap</span><span
class="o">.</span><span
class="na">getRuntimeContext</span><span
class="o">().</span><span
class="na">getState</span><span
class="o">(</span>
- <span class="k">new</span> <span
class="n">ValueStateDescriptor</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;previousInput&quot;</span><span
class="o">,</span> <span
class="n">Types</span><span
class="o">.</span><span
class="na">STRING</span><span
class="o">));&l [...]
- <span class="n">String</span> <span
class="n">stateValue</span> <span
class="o">=</span> <span
class="n">previousInput</span><span
class="o">.</span><span
class="na">value</span><span
class="o">();</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span>
- <span class="n">Lists</span><span
class="o">.</span><span
class="na">newArrayList</span><span
class="o">(</span><span
class="k">new</span> <span
class="n">StreamRecord</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;hello world&quot;</span><span
class="o">,</span&g [...]
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">extractOutputStreamRecords</span><span
class="o">());</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span><span
class="s">&quot;world&quot;</span><span
class="o">,</span> <span
class="n">stateValue</span><span
class="o">);</span>
-
- <span class="c1">// test second record</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">processElement</span><span
class="o">(</span><span
class="s">&quot;parallel&quot;</span><span
class="o">,</span> <span
class="mi">20</span><span
class="o">);</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span>
- <span class="n">Lists</span><span
class="o">.</span><span
class="na">newArrayList</span><span
class="o">(</span>
- <span class="k">new</span> <span
class="n">StreamRecord</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;hello world&quot;</span><span
class="o">,</span> <span
class="mi">10</span><span
class="o">),</span>
- <span class="k">new</span> <span
class="n">StreamRecord</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;hello parallel
world&quot;</span><span class="o">,</span>
<span class="mi">20</span><span
class="o">)),</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">extractOutputStreamRecords</span><span
class="o">());</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span><span
class="s">&quot;parallel&quot;</span><span
class="o">,</span> <span
class="n">previousInput</span><span
class="o">.</span><span
class="na">value</span><span class [...]
-<span
class="o">}</span></code></pre></div>
-
-<p>The test harness provides many helper methods, three of which are
being used here:</p>
-
-<ol>
- <li><code>open</code>: calls the open of the
<code>FlatMap</code> function with relevant parameters. It also
initializes the context.</li>
- <li><code>processElement</code>: allows users to pass an
input element as well as the timestamp associated with the element.</li>
- <li><code>extractOutputStreamRecords</code>: gets the
output records along with their timestamps from the
<code>Collector</code>.</li>
-</ol>
-
-<p>The test harness simplifies the unit testing for the stateful
functions to a large extent.</p>
-
-<p>You might also need to check whether the state value is being set
correctly. You can get the state value directly from the operator using a
mechanism similar to the one used while creating the state. This is also
demonstrated in the previous example.</p>
-
-<h1 id="timed-process-operators">Timed Process
Operators</h1>
-
-<p>Writing tests for process functions, that work with time, is quite
similar to writing tests for stateful functions because you can also use test
harness.
-However, you need to take care of another aspect, which is providing
timestamps for events and controlling the current time of the application. By
setting the current (processing or event) time, you can trigger registered
timers, which will call the <code>onTimer</code> method of the
function</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="kd">public</span> <span
class="kd">class</span> <span
class="nc">MyProcessFunction</span> <span
class="kd">extends</span> <span
class="n">KeyedProcessFunction</span><span
class="o">&lt;</span><span
class="n">String</span><sp [...]
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">processElement</span><span
class="o">(</span><span
class="n">String</span> <span
class="n">in</span><span
class="o">,</span> <span
class="n">Context</span> <span
class="n">context</span><span class="o"& [...]
- <span class="n">context</span><span
class="o">.</span><span
class="na">timerService</span><span
class="o">().</span><span
class="na">registerProcessingTimeTimer</span><span
class="o">(</span><span
class="mi">50</span><span
class="o">);</span>
- <span class="n">String</span> <span
class="n">out</span> <span
class="o">=</span> <span
class="s">&quot;hello &quot;</span> <span
class="o">+</span> <span
class="n">in</span><span
class="o">;</span>
- <span class="n">collector</span><span
class="o">.</span><span
class="na">collect</span><span
class="o">(</span><span
class="n">out</span><span
class="o">);</span>
- <span class="o">}</span>
-
- <span class="nd">@Override</span>
- <span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">onTimer</span><span
class="o">(</span><span
class="kt">long</span> <span
class="n">timestamp</span><span
class="o">,</span> <span
class="n">OnTimerContext</span> <span
class="n">ctx</span><span class="o" [...]
- <span class="n">out</span><span
class="o">.</span><span
class="na">collect</span><span
class="o">(</span><span
class="n">String</span><span
class="o">.</span><span
class="na">format</span><span
class="o">(</span><span
class="s">&quot;Timer triggered at timestamp
%d&quot;</span>< [...]
- <span class="o">}</span>
-<span
class="o">}</span></code></pre></div>
-
-<p>We need to test both the methods in the
<code>KeyedProcessFunction</code>, i.e.,
<code>processElement</code> as well as
<code>onTimer</code>. Using a test harness, we can control the
current time of the function. Thus, we can trigger the timer at will rather
than waiting for a specific time.</p>
-
-<p>Let’s take a look at the test case</p>
-
-<div class="highlight"><pre><code
class="language-java"><span
class="nd">@Test</span>
-<span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">testProcessElement</span><span
class="o">()</span> <span
class="kd">throws</span> <span
class="n">Exception</span><span
class="o">{</span>
- <span class="n">MyProcessFunction</span> <span
class="n">myProcessFunction</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="nf">MyProcessFunction</span><span
class="o">();</span>
- <span
class="n">OneInputStreamOperatorTestHarness</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">,</span> <span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">testHarness</span> <span
class="o">=</span>
- <span class="k">new</span> <span
class="n">KeyedOneInputStreamOperatorTestHarness</span><span
class="o">&lt;&gt;(</span>
- <span class="k">new</span> <span
class="n">KeyedProcessOperator</span><span
class="o">&lt;&gt;(</span><span
class="n">myProcessFunction</span><span
class="o">),</span> <span
class="n">x</span> <span
class="o">-&gt;</span> <span
class="s">&quot;1&quot;</span><span
class="o"> [...]
-
- <span class="c1">// Function time is initialized to
0</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">open</span><span
class="o">();</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">processElement</span><span
class="o">(</span><span
class="s">&quot;world&quot;</span><span
class="o">,</span> <span
class="mi">10</span><span
class="o">);</span>
-
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span>
- <span class="n">Lists</span><span
class="o">.</span><span
class="na">newArrayList</span><span
class="o">(</span><span
class="k">new</span> <span
class="n">StreamRecord</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;hello world&quot;</span><span
class="o">,</span&g [...]
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">extractOutputStreamRecords</span><span
class="o">());</span>
-<span class="o">}</span>
-
-<span class="nd">@Test</span>
-<span class="kd">public</span> <span
class="kt">void</span> <span
class="nf">testOnTimer</span><span
class="o">()</span> <span
class="kd">throws</span> <span
class="n">Exception</span> <span
class="o">{</span>
- <span class="n">MyProcessFunction</span> <span
class="n">myProcessFunction</span> <span
class="o">=</span> <span
class="k">new</span> <span
class="nf">MyProcessFunction</span><span
class="o">();</span>
- <span
class="n">OneInputStreamOperatorTestHarness</span><span
class="o">&lt;</span><span
class="n">String</span><span
class="o">,</span> <span
class="n">String</span><span
class="o">&gt;</span> <span
class="n">testHarness</span> <span
class="o">=</span>
- <span class="k">new</span> <span
class="n">KeyedOneInputStreamOperatorTestHarness</span><span
class="o">&lt;&gt;(</span>
- <span class="k">new</span> <span
class="n">KeyedProcessOperator</span><span
class="o">&lt;&gt;(</span><span
class="n">myProcessFunction</span><span
class="o">),</span> <span
class="n">x</span> <span
class="o">-&gt;</span> <span
class="s">&quot;1&quot;</span><span
class="o"> [...]
-
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">open</span><span
class="o">();</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">processElement</span><span
class="o">(</span><span
class="s">&quot;world&quot;</span><span
class="o">,</span> <span
class="mi">10</span><span
class="o">);</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span><span
class="mi">1</span><span
class="o">,</span> <span
class="n">testHarness</span><span
class="o">.</span><span
class="na">numProcessingTimeTimers</span><span
class="o&q [...]
-
- <span class="c1">// Function time is set to 50</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">setProcessingTime</span><span
class="o">(</span><span
class="mi">50</span><span
class="o">);</span>
- <span class="n">Assert</span><span
class="o">.</span><span
class="na">assertEquals</span><span
class="o">(</span>
- <span class="n">Lists</span><span
class="o">.</span><span
class="na">newArrayList</span><span
class="o">(</span>
- <span class="k">new</span> <span
class="n">StreamRecord</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;hello world&quot;</span><span
class="o">,</span> <span
class="mi">10</span><span
class="o">),</span>
- <span class="k">new</span> <span
class="n">StreamRecord</span><span
class="o">&lt;&gt;(</span><span
class="s">&quot;Timer triggered at timestamp
50&quot;</span><span class="o">)),</span>
- <span class="n">testHarness</span><span
class="o">.</span><span
class="na">extractOutputStreamRecords</span><span
class="o">());</span>
-<span
class="o">}</span></code></pre></div>
-
-<p>The mechanism to test the multi-input stream operators such as
CoProcess functions is similar to the ones described in this article. You
should use the TwoInput variant of the harness for these operators, such as
<code>TwoInputStreamOperatorTestHarness</code>.</p>
-
-<h1 id="summary">Summary</h1>
-
-<p>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
<a href="https://www.kharekartik.dev/about/">here</a> or
contact the community on the <a
href="https://flink.apache.org/community.html">Apache Flink user
mail [...]
-</description>
-<pubDate>Fri, 07 Feb 2020 13:00:00 +0100</pubDate>
-<link>https://flink.apache.org/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html</link>
-<guid
isPermaLink="true">/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html</guid>
-</item>
-
</channel>
</rss>
diff --git a/content/blog/index.html b/content/blog/index.html
index 4b1aa21c1..ad361ee92 100644
--- a/content/blog/index.html
+++ b/content/blog/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2022/09/08/akka-license-change.html">Regarding Akka's licensing
change</a></h2>
+
+ <p>08 Sep 2022
+ Chesnay Schepler </p>
+
+ <p><p>On September 7th Lightbend announced a <a
href="https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka">license
change</a> for the Akka project, the TL;DR being that you will need a
commercial license to use future versions of Akka (2.7+) in production if you
exceed a certain revenue threshold.</p>
+
+</p>
+
+ <p><a href="/news/2022/09/08/akka-license-change.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2022/08/29/release-table-store-0.2.0.html">Apache Flink Table Store
0.2.0 Release Announcement</a></h2>
@@ -359,22 +374,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2022/06/05/release-kubernetes-operator-1.0.0.html">Apache Flink
Kubernetes Operator 1.0.0 Release Announcement</a></h2>
-
- <p>05 Jun 2022
- Gyula Fora (<a href="https://twitter.com/GyulaFora">@GyulaFora</a>)
& Yang Wang </p>
-
- <p><p>In the last two months since our <a
href="https://flink.apache.org/news/2022/04/03/release-kubernetes-operator-0.1.0.html">initial
preview release</a> 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 project.</p>
-
-</p>
-
- <p><a
href="/news/2022/06/05/release-kubernetes-operator-1.0.0.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -407,6 +406,16 @@ We are now proud to announce the first production ready
release of the operator
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page10/index.html b/content/blog/page10/index.html
index 8aa307324..21e867415 100644
--- a/content/blog/page10/index.html
+++ b/content/blog/page10/index.html
@@ -240,6 +240,19 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2020/04/21/memory-management-improvements-flink-1.10.html">Memory
Management Improvements with Apache Flink 1.10</a></h2>
+
+ <p>21 Apr 2020
+ Andrey Zagrebin </p>
+
+ <p>This post discusses the recent changes to the memory model of the
Task Managers and configuration options for your Flink applications in Flink
1.10.</p>
+
+ <p><a
href="/news/2020/04/21/memory-management-improvements-flink-1.10.html">Continue
reading »</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2020/04/15/flink-serialization-tuning-vol-1.html">Flink
Serialization Tuning Vol. 1: Choosing your Serializer — if you can</a></h2>
@@ -364,19 +377,6 @@ This release marks a big milestone: Stateful Functions 2.0
is not only an API up
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html">A Guide
for Unit Testing in Apache Flink</a></h2>
-
- <p>07 Feb 2020
- Kartik Khare (<a
href="https://twitter.com/khare_khote">@khare_khote</a>)</p>
-
- <p>This post provides a detailed guide for unit testing of Apache Flink
applications.</p>
-
- <p><a
href="/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html">Continue
reading »</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -409,6 +409,16 @@ This release marks a big milestone: Stateful Functions 2.0
is not only an API up
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page11/index.html b/content/blog/page11/index.html
index f27e58f25..3fa16908b 100644
--- a/content/blog/page11/index.html
+++ b/content/blog/page11/index.html
@@ -240,6 +240,19 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html">A Guide
for Unit Testing in Apache Flink</a></h2>
+
+ <p>07 Feb 2020
+ Kartik Khare (<a
href="https://twitter.com/khare_khote">@khare_khote</a>)</p>
+
+ <p>This post provides a detailed guide for unit testing of Apache Flink
applications.</p>
+
+ <p><a
href="/news/2020/02/07/a-guide-for-unit-testing-in-apache-flink.html">Continue
reading »</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2020/01/30/release-1.9.2.html">Apache Flink 1.9.2 Released</a></h2>
@@ -365,19 +378,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2019/09/10/community-update.html">Flink Community Update -
September'19</a></h2>
-
- <p>10 Sep 2019
- Marta Paes (<a href="https://twitter.com/morsapaes">@morsapaes</a>)</p>
-
- <p>This has been an exciting, fast-paced year for the Apache Flink
community. But with over 10k messages across the mailing lists, 3k Jira tickets
and 2k pull requests, it is not easy to keep up with the latest state of the
project. Plus everything happening around it. With that in mind, we want to
bring back regular community updates to the Flink blog.</p>
-
- <p><a href="/news/2019/09/10/community-update.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -410,6 +410,16 @@
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page12/index.html b/content/blog/page12/index.html
index dad067b3e..85d94a9bb 100644
--- a/content/blog/page12/index.html
+++ b/content/blog/page12/index.html
@@ -240,6 +240,19 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2019/09/10/community-update.html">Flink Community Update -
September'19</a></h2>
+
+ <p>10 Sep 2019
+ Marta Paes (<a href="https://twitter.com/morsapaes">@morsapaes</a>)</p>
+
+ <p>This has been an exciting, fast-paced year for the Apache Flink
community. But with over 10k messages across the mailing lists, 3k Jira tickets
and 2k pull requests, it is not easy to keep up with the latest state of the
project. Plus everything happening around it. With that in mind, we want to
bring back regular community updates to the Flink blog.</p>
+
+ <p><a href="/news/2019/09/10/community-update.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2019/08/22/release-1.9.0.html">Apache Flink 1.9.0 Release
Announcement</a></h2>
@@ -364,25 +377,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2019/04/09/release-1.8.0.html">Apache Flink 1.8.0 Release
Announcement</a></h2>
-
- <p>09 Apr 2019
- Aljoscha Krettek (<a
href="https://twitter.com/aljoscha">@aljoscha</a>)</p>
-
- <p><p>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 <a
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12344274">complete
changelog</a>
-for more details.</p>
-
-</p>
-
- <p><a href="/news/2019/04/09/release-1.8.0.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -415,6 +409,16 @@ for more details.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page13/index.html b/content/blog/page13/index.html
index 05297c597..a16e1a626 100644
--- a/content/blog/page13/index.html
+++ b/content/blog/page13/index.html
@@ -240,6 +240,25 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2019/04/09/release-1.8.0.html">Apache Flink 1.8.0 Release
Announcement</a></h2>
+
+ <p>09 Apr 2019
+ Aljoscha Krettek (<a
href="https://twitter.com/aljoscha">@aljoscha</a>)</p>
+
+ <p><p>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 <a
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12344274">complete
changelog</a>
+for more details.</p>
+
+</p>
+
+ <p><a href="/news/2019/04/09/release-1.8.0.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/features/2019/03/11/prometheus-monitoring.html">Flink and Prometheus:
Cloud-native monitoring of streaming applications</a></h2>
@@ -367,23 +386,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2018/11/30/release-1.7.0.html">Apache Flink 1.7.0 Release
Announcement</a></h2>
-
- <p>30 Nov 2018
- Till Rohrmann (<a href="https://twitter.com/stsffap">@stsffap</a>)</p>
-
- <p><p>The Apache Flink community is pleased to announce Apache Flink
1.7.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 <a
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12343585">complete
changelog</a> for more details.</p>
-
-</p>
-
- <p><a href="/news/2018/11/30/release-1.7.0.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -416,6 +418,16 @@ Please check the <a
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page14/index.html b/content/blog/page14/index.html
index 19875e612..c586cae6b 100644
--- a/content/blog/page14/index.html
+++ b/content/blog/page14/index.html
@@ -240,6 +240,23 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2018/11/30/release-1.7.0.html">Apache Flink 1.7.0 Release
Announcement</a></h2>
+
+ <p>30 Nov 2018
+ Till Rohrmann (<a href="https://twitter.com/stsffap">@stsffap</a>)</p>
+
+ <p><p>The Apache Flink community is pleased to announce Apache Flink
1.7.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 <a
href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315522&version=12343585">complete
changelog</a> for more details.</p>
+
+</p>
+
+ <p><a href="/news/2018/11/30/release-1.7.0.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2018/10/29/release-1.6.2.html">Apache Flink 1.6.2 Released</a></h2>
@@ -375,21 +392,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2018/03/15/release-1.3.3.html">Apache Flink 1.3.3 Released</a></h2>
-
- <p>15 Mar 2018
- </p>
-
- <p><p>The Apache Flink community released the third bugfix version of
the Apache Flink 1.3 series.</p>
-
-</p>
-
- <p><a href="/news/2018/03/15/release-1.3.3.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -422,6 +424,16 @@
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page15/index.html b/content/blog/page15/index.html
index 6170f63e1..6c91cd731 100644
--- a/content/blog/page15/index.html
+++ b/content/blog/page15/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2018/03/15/release-1.3.3.html">Apache Flink 1.3.3 Released</a></h2>
+
+ <p>15 Mar 2018
+ </p>
+
+ <p><p>The Apache Flink community released the third bugfix version of
the Apache Flink 1.3 series.</p>
+
+</p>
+
+ <p><a href="/news/2018/03/15/release-1.3.3.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2018/03/08/release-1.4.2.html">Apache Flink 1.4.2 Released</a></h2>
@@ -372,21 +387,6 @@ what’s coming in Flink 1.4.0 as well as a preview of what
the Flink community
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2017/06/23/release-1.3.1.html">Apache Flink 1.3.1 Released</a></h2>
-
- <p>23 Jun 2017
- </p>
-
- <p><p>The Apache Flink community released the first bugfix version of
the Apache Flink 1.3 series.</p>
-
-</p>
-
- <p><a href="/news/2017/06/23/release-1.3.1.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -419,6 +419,16 @@ what’s coming in Flink 1.4.0 as well as a preview of what
the Flink community
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page16/index.html b/content/blog/page16/index.html
index f52b7e35e..f56a2d557 100644
--- a/content/blog/page16/index.html
+++ b/content/blog/page16/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2017/06/23/release-1.3.1.html">Apache Flink 1.3.1 Released</a></h2>
+
+ <p>23 Jun 2017
+ </p>
+
+ <p><p>The Apache Flink community released the first bugfix version of
the Apache Flink 1.3 series.</p>
+
+</p>
+
+ <p><a href="/news/2017/06/23/release-1.3.1.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2017/06/01/release-1.3.0.html">Apache Flink 1.3.0 Release
Announcement</a></h2>
@@ -368,21 +383,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></h2>
-
- <p>12 Oct 2016
- </p>
-
- <p><p>The Apache Flink community released the next bugfix version of the
Apache Flink 1.1. series.</p>
-
-</p>
-
- <p><a href="/news/2016/10/12/release-1.1.3.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -415,6 +415,16 @@
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page17/index.html b/content/blog/page17/index.html
index bd72b47b8..35f1d8d6a 100644
--- a/content/blog/page17/index.html
+++ b/content/blog/page17/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2016/10/12/release-1.1.3.html">Apache Flink 1.1.3 Released</a></h2>
+
+ <p>12 Oct 2016
+ </p>
+
+ <p><p>The Apache Flink community released the next bugfix version of the
Apache Flink 1.1. series.</p>
+
+</p>
+
+ <p><a href="/news/2016/10/12/release-1.1.3.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2016/09/05/release-1.1.2.html">Apache Flink 1.1.2 Released</a></h2>
@@ -372,21 +387,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2016/04/06/release-1.0.1.html">Flink 1.0.1 Released</a></h2>
-
- <p>06 Apr 2016
- </p>
-
- <p><p>Today, the Flink community released Flink version
<strong>1.0.1</strong>, the first bugfix release of the 1.0 series.</p>
-
-</p>
-
- <p><a href="/news/2016/04/06/release-1.0.1.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -419,6 +419,16 @@
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page18/index.html b/content/blog/page18/index.html
index 4f756ebc6..ad36ce8fc 100644
--- a/content/blog/page18/index.html
+++ b/content/blog/page18/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2016/04/06/release-1.0.1.html">Flink 1.0.1 Released</a></h2>
+
+ <p>06 Apr 2016
+ </p>
+
+ <p><p>Today, the Flink community released Flink version
<strong>1.0.1</strong>, the first bugfix release of the 1.0 series.</p>
+
+</p>
+
+ <p><a href="/news/2016/04/06/release-1.0.1.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2016/03/08/release-1.0.0.html">Announcing Apache Flink
1.0.0</a></h2>
@@ -373,21 +388,6 @@ Apache Flink started.</p>
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2015/09/01/release-0.9.1.html">Apache Flink 0.9.1 available</a></h2>
-
- <p>01 Sep 2015
- </p>
-
- <p><p>The Flink community is happy to announce that Flink 0.9.1 is now
available.</p>
-
-</p>
-
- <p><a href="/news/2015/09/01/release-0.9.1.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -420,6 +420,16 @@ Apache Flink started.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page19/index.html b/content/blog/page19/index.html
index faca4b115..255d21c73 100644
--- a/content/blog/page19/index.html
+++ b/content/blog/page19/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2015/09/01/release-0.9.1.html">Apache Flink 0.9.1 available</a></h2>
+
+ <p>01 Sep 2015
+ </p>
+
+ <p><p>The Flink community is happy to announce that Flink 0.9.1 is now
available.</p>
+
+</p>
+
+ <p><a href="/news/2015/09/01/release-0.9.1.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2015/08/24/introducing-flink-gelly.html">Introducing Gelly: Graph
Processing with Apache Flink</a></h2>
@@ -385,21 +400,6 @@ and offers a new API including definition of flexible
windows.</p>
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2015/02/04/january-in-flink.html">January 2015 in the Flink
community</a></h2>
-
- <p>04 Feb 2015
- </p>
-
- <p><p>Happy 2015! Here is a (hopefully digestible) summary of what
happened last month in the Flink community.</p>
-
-</p>
-
- <p><a href="/news/2015/02/04/january-in-flink.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -432,6 +432,16 @@ and offers a new API including definition of flexible
windows.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page2/index.html b/content/blog/page2/index.html
index 1609a5cff..30c2a2df1 100644
--- a/content/blog/page2/index.html
+++ b/content/blog/page2/index.html
@@ -240,6 +240,22 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2022/06/05/release-kubernetes-operator-1.0.0.html">Apache Flink
Kubernetes Operator 1.0.0 Release Announcement</a></h2>
+
+ <p>05 Jun 2022
+ Gyula Fora (<a href="https://twitter.com/GyulaFora">@GyulaFora</a>)
& Yang Wang </p>
+
+ <p><p>In the last two months since our <a
href="https://flink.apache.org/news/2022/04/03/release-kubernetes-operator-0.1.0.html">initial
preview release</a> 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 project.</p>
+
+</p>
+
+ <p><a
href="/news/2022/06/05/release-kubernetes-operator-1.0.0.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/2022/05/30/changelog-state-backend.html">Improving speed and stability
of checkpointing with generic log-based incremental checkpoints</a></h2>
@@ -368,19 +384,6 @@ exciting changes.</p>
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2022/03/11/release-1.14.4.html">Apache Flink 1.14.4 Release
Announcement</a></h2>
-
- <p>11 Mar 2022
- Konstantin Knauf (<a
href="https://twitter.com/snntrable">@snntrable</a>)</p>
-
- <p>The Apache Flink Community is please to announce another bug fix
release for Flink 1.14.</p>
-
- <p><a href="/news/2022/03/11/release-1.14.4.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -413,6 +416,16 @@ exciting changes.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page20/index.html b/content/blog/page20/index.html
index 3a76b93f7..b110dce1e 100644
--- a/content/blog/page20/index.html
+++ b/content/blog/page20/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2015/02/04/january-in-flink.html">January 2015 in the Flink
community</a></h2>
+
+ <p>04 Feb 2015
+ </p>
+
+ <p><p>Happy 2015! Here is a (hopefully digestible) summary of what
happened last month in the Flink community.</p>
+
+</p>
+
+ <p><a href="/news/2015/02/04/january-in-flink.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2015/01/21/release-0.8.html">Apache Flink 0.8.0 available</a></h2>
@@ -380,6 +395,16 @@ academic and open source project that Flink originates
from.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page3/index.html b/content/blog/page3/index.html
index 7f3eb03c8..6cb91bf84 100644
--- a/content/blog/page3/index.html
+++ b/content/blog/page3/index.html
@@ -240,6 +240,19 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2022/03/11/release-1.14.4.html">Apache Flink 1.14.4 Release
Announcement</a></h2>
+
+ <p>11 Mar 2022
+ Konstantin Knauf (<a
href="https://twitter.com/snntrable">@snntrable</a>)</p>
+
+ <p>The Apache Flink Community is please to announce another bug fix
release for Flink 1.14.</p>
+
+ <p><a href="/news/2022/03/11/release-1.14.4.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a href="/2022/02/22/scala-free.html">Scala Free
in One Fifteen</a></h2>
@@ -362,21 +375,6 @@ This new release brings various improvements to the
StateFun runtime, a leaner w
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2021/12/16/log4j-patch-releases.html">Apache Flink Log4j emergency
releases</a></h2>
-
- <p>16 Dec 2021
- Chesnay Schepler </p>
-
- <p><p>The Apache Flink community has released emergency bugfix versions
of Apache Flink for the 1.11, 1.12, 1.13 and 1.14 series.</p>
-
-</p>
-
- <p><a href="/news/2021/12/16/log4j-patch-releases.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -409,6 +407,16 @@ This new release brings various improvements to the
StateFun runtime, a leaner w
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page4/index.html b/content/blog/page4/index.html
index 1725db903..79c2bd2e8 100644
--- a/content/blog/page4/index.html
+++ b/content/blog/page4/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2021/12/16/log4j-patch-releases.html">Apache Flink Log4j emergency
releases</a></h2>
+
+ <p>16 Dec 2021
+ Chesnay Schepler </p>
+
+ <p><p>The Apache Flink community has released emergency bugfix versions
of Apache Flink for the 1.11, 1.12, 1.13 and 1.14 series.</p>
+
+</p>
+
+ <p><a href="/news/2021/12/16/log4j-patch-releases.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a href="/2021/12/10/log4j-cve.html">Advise on
Apache Log4j Zero Day (CVE-2021-44228)</a></h2>
@@ -366,28 +381,6 @@ This new release brings various improvements to the
StateFun runtime, a leaner w
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2021/08/31/release-1.14.0-rc0.html">Help us stabilize Apache Flink
1.14.0 RC0</a></h2>
-
- <p>31 Aug 2021
- Johannes Moser </p>
-
- <p><div class="note">
- <h5>Hint</h5>
- <p>
- Update 29th of September: Today
- <a
href="https://flink.apache.org/news/2021/09/29/release-1.14.0.html">Apache
Flink 1.14</a>
- has been released. For sure we'd still like to hear your feedback.
- </p>
-</div>
-
-</p>
-
- <p><a href="/news/2021/08/31/release-1.14.0-rc0.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -420,6 +413,16 @@ This new release brings various improvements to the
StateFun runtime, a leaner w
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page5/index.html b/content/blog/page5/index.html
index 40c1cf8be..9a6b4b888 100644
--- a/content/blog/page5/index.html
+++ b/content/blog/page5/index.html
@@ -240,6 +240,28 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2021/08/31/release-1.14.0-rc0.html">Help us stabilize Apache Flink
1.14.0 RC0</a></h2>
+
+ <p>31 Aug 2021
+ Johannes Moser </p>
+
+ <p><div class="note">
+ <h5>Hint</h5>
+ <p>
+ Update 29th of September: Today
+ <a
href="https://flink.apache.org/news/2021/09/29/release-1.14.0.html">Apache
Flink 1.14</a>
+ has been released. For sure we'd still like to hear your feedback.
+ </p>
+</div>
+
+</p>
+
+ <p><a href="/news/2021/08/31/release-1.14.0-rc0.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2021/08/09/release-1.11.4.html">Apache Flink 1.11.4
Released</a></h2>
@@ -369,23 +391,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2021/04/15/release-statefun-3.0.0.html">Stateful Functions 3.0.0:
Remote Functions Front and Center</a></h2>
-
- <p>15 Apr 2021
- Igal Shilman (<a
href="https://twitter.com/IgalShilman">@IgalShilman</a>) & Tzu-Li (Gordon)
Tai (<a href="https://twitter.com/tzulitai">@tzulitai</a>)</p>
-
- <p><p>The Apache Flink community is happy to announce the release of
Stateful Functions (StateFun) 3.0.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.</p>
-
-</p>
-
- <p><a href="/news/2021/04/15/release-statefun-3.0.0.html">Continue
reading »</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -418,6 +423,16 @@ to develop scalable, consistent, and elastic distributed
applications.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page6/index.html b/content/blog/page6/index.html
index 9d5b8249b..00d524523 100644
--- a/content/blog/page6/index.html
+++ b/content/blog/page6/index.html
@@ -240,6 +240,23 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2021/04/15/release-statefun-3.0.0.html">Stateful Functions 3.0.0:
Remote Functions Front and Center</a></h2>
+
+ <p>15 Apr 2021
+ Igal Shilman (<a
href="https://twitter.com/IgalShilman">@IgalShilman</a>) & Tzu-Li (Gordon)
Tai (<a href="https://twitter.com/tzulitai">@tzulitai</a>)</p>
+
+ <p><p>The Apache Flink community is happy to announce the release of
Stateful Functions (StateFun) 3.0.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.</p>
+
+</p>
+
+ <p><a href="/news/2021/04/15/release-statefun-3.0.0.html">Continue
reading »</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a href="/2021/03/11/batch-execution-mode.html">A
Rundown of Batch Execution Mode in the DataStream API</a></h2>
@@ -365,21 +382,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2020/12/18/release-1.11.3.html">Apache Flink 1.11.3
Released</a></h2>
-
- <p>18 Dec 2020
- Xintong Song </p>
-
- <p><p>The Apache Flink community released the third bugfix version of
the Apache Flink 1.11 series.</p>
-
-</p>
-
- <p><a href="/news/2020/12/18/release-1.11.3.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -412,6 +414,16 @@
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page7/index.html b/content/blog/page7/index.html
index 312eb3e2f..1faf89114 100644
--- a/content/blog/page7/index.html
+++ b/content/blog/page7/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2020/12/18/release-1.11.3.html">Apache Flink 1.11.3
Released</a></h2>
+
+ <p>18 Dec 2020
+ Xintong Song </p>
+
+ <p><p>The Apache Flink community released the third bugfix version of
the Apache Flink 1.11 series.</p>
+
+</p>
+
+ <p><a href="/news/2020/12/18/release-1.11.3.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/2020/12/15/pipelined-region-sheduling.html">Improvements in task
scheduling for batch workloads in Apache Flink 1.12</a></h2>
@@ -367,21 +382,6 @@ as well as increased observability for operational
purposes.</p>
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2020/08/25/release-1.10.2.html">Apache Flink 1.10.2
Released</a></h2>
-
- <p>25 Aug 2020
- Zhu Zhu (<a href="https://twitter.com/zhuzhv">@zhuzhv</a>)</p>
-
- <p><p>The Apache Flink community released the second bugfix version of
the Apache Flink 1.10 series.</p>
-
-</p>
-
- <p><a href="/news/2020/08/25/release-1.10.2.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -414,6 +414,16 @@ as well as increased observability for operational
purposes.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page8/index.html b/content/blog/page8/index.html
index f9f11f43f..466f03bef 100644
--- a/content/blog/page8/index.html
+++ b/content/blog/page8/index.html
@@ -240,6 +240,21 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2020/08/25/release-1.10.2.html">Apache Flink 1.10.2
Released</a></h2>
+
+ <p>25 Aug 2020
+ Zhu Zhu (<a href="https://twitter.com/zhuzhv">@zhuzhv</a>)</p>
+
+ <p><p>The Apache Flink community released the second bugfix version of
the Apache Flink 1.10 series.</p>
+
+</p>
+
+ <p><a href="/news/2020/08/25/release-1.10.2.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a href="/news/2020/08/20/flink-docker.html">The
State of Flink on Docker</a></h2>
@@ -363,26 +378,6 @@
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2020/07/14/application-mode.html">Application Deployment in Flink:
Current State and the new Application Mode</a></h2>
-
- <p>14 Jul 2020
- Kostas Kloudas (<a
href="https://twitter.com/kkloudas">@kkloudas</a>)</p>
-
- <p><p>With the rise of stream processing and real-time analytics as a
critical tool for modern
-businesses, an increasing number of organizations build platforms with Apache
Flink at their
-core and offer it internally as a service. Many talks with related topics from
companies
-like <a href="https://www.youtube.com/watch?v=VX3S9POGAdU">Uber</a>, <a
href="https://www.youtube.com/watch?v=VX3S9POGAdU">Netflix</a>
-and <a href="https://www.youtube.com/watch?v=cH9UdK0yYjc">Alibaba</a> in the
latest editions of Flink Forward further
-illustrate this trend.</p>
-
-</p>
-
- <p><a href="/news/2020/07/14/application-mode.html">Continue reading
»</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -415,6 +410,16 @@ illustrate this trend.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/blog/page9/index.html b/content/blog/page9/index.html
index d2e612262..280207d4c 100644
--- a/content/blog/page9/index.html
+++ b/content/blog/page9/index.html
@@ -240,6 +240,26 @@
<div class="col-sm-8">
<!-- Blog posts -->
+ <article>
+ <h2 class="blog-title"><a
href="/news/2020/07/14/application-mode.html">Application Deployment in Flink:
Current State and the new Application Mode</a></h2>
+
+ <p>14 Jul 2020
+ Kostas Kloudas (<a
href="https://twitter.com/kkloudas">@kkloudas</a>)</p>
+
+ <p><p>With the rise of stream processing and real-time analytics as a
critical tool for modern
+businesses, an increasing number of organizations build platforms with Apache
Flink at their
+core and offer it internally as a service. Many talks with related topics from
companies
+like <a href="https://www.youtube.com/watch?v=VX3S9POGAdU">Uber</a>, <a
href="https://www.youtube.com/watch?v=VX3S9POGAdU">Netflix</a>
+and <a href="https://www.youtube.com/watch?v=cH9UdK0yYjc">Alibaba</a> in the
latest editions of Flink Forward further
+illustrate this trend.</p>
+
+</p>
+
+ <p><a href="/news/2020/07/14/application-mode.html">Continue reading
»</a></p>
+ </article>
+
+ <hr>
+
<article>
<h2 class="blog-title"><a
href="/news/2020/07/06/release-1.11.0.html">Apache Flink 1.11.0 Release
Announcement</a></h2>
@@ -370,19 +390,6 @@ and provide a tutorial for running Streaming ETL with
Flink on Zeppelin.</p>
<hr>
- <article>
- <h2 class="blog-title"><a
href="/news/2020/04/21/memory-management-improvements-flink-1.10.html">Memory
Management Improvements with Apache Flink 1.10</a></h2>
-
- <p>21 Apr 2020
- Andrey Zagrebin </p>
-
- <p>This post discusses the recent changes to the memory model of the
Task Managers and configuration options for your Flink applications in Flink
1.10.</p>
-
- <p><a
href="/news/2020/04/21/memory-management-improvements-flink-1.10.html">Continue
reading »</a></p>
- </article>
-
- <hr>
-
<!-- Pagination links -->
@@ -415,6 +422,16 @@ and provide a tutorial for running Streaming ETL with
Flink on Zeppelin.</p>
<ul id="markdown-toc">
+ <li><a href="/news/2022/09/08/akka-license-change.html">Regarding Akka's
licensing change</a></li>
+
+
+
+
+
+
+
+
+
<li><a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></li>
diff --git a/content/downloads.html b/content/downloads.html
index fbae13732..7986b18a8 100644
--- a/content/downloads.html
+++ b/content/downloads.html
@@ -454,7 +454,7 @@ main Flink release:</p>
<p>You can add the following dependencies to your <code>pom.xml</code> to
include Apache Flink in your project. These dependencies include a local
execution environment and thus support local testing.</p>
<ul>
- <li><strong>Scala API</strong>: To use the Scala API, replace the
<code>flink-java</code> artifact id with <code>flink-scala_2.11</code> and
<code>flink-streaming-java_2.11</code> with
<code>flink-streaming-scala_2.11</code>.</li>
+ <li><strong>Scala API</strong>: To use the Scala API, replace the
<code>flink-java</code> artifact id with <code>flink-scala_2.12</code> and
<code>flink-streaming-java</code> with
<code>flink-streaming-scala_2.12</code>.</li>
</ul>
<div class="highlight"><pre><code class="language-xml"><span
class="nt"><dependency></span>
@@ -464,12 +464,12 @@ main Flink release:</p>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-streaming-java_2.11<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-streaming-java<span
class="nt"></artifactId></span>
<span class="nt"><version></span>1.15.2<span
class="nt"></version></span>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-clients_2.11<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-clients<span
class="nt"></artifactId></span>
<span class="nt"><version></span>1.15.2<span
class="nt"></version></span>
<span class="nt"></dependency></span></code></pre></div>
@@ -497,26 +497,26 @@ The <code>statefun-flink-harness</code> dependency
includes a local execution en
<div class="highlight"><pre><code class="language-xml"><span
class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-ml-core_2.12<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-ml-core<span
class="nt"></artifactId></span>
<span class="nt"><version></span>2.1.0<span
class="nt"></version></span>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-ml-iteration_2.12<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-ml-iteration<span
class="nt"></artifactId></span>
<span class="nt"><version></span>2.1.0<span
class="nt"></version></span>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-ml-lib_2.12<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-ml-lib<span
class="nt"></artifactId></span>
<span class="nt"><version></span>2.1.0<span
class="nt"></version></span>
<span class="nt"></dependency></span></code></pre></div>
<p>Advanced users could only import a minimal set of Flink ML dependencies for
their target use-cases:</p>
<ul>
- <li>Use artifact <code>flink-ml-core_2.12</code> in order to develop custom
ML algorithms.</li>
- <li>Use artifacts <code>flink-ml-core_2.12</code> and
<code>flink-ml-iteration_2.12</code> in order to develop custom ML algorithms
which require iteration.</li>
- <li>Use artifact <code>flink-ml-lib_2.12</code> in order to use the
off-the-shelf ML algorithms from Flink ML.</li>
+ <li>Use artifact <code>flink-ml-core</code> in order to develop custom ML
algorithms.</li>
+ <li>Use artifacts <code>flink-ml-core</code> and
<code>flink-ml-iteration</code> in order to develop custom ML algorithms which
require iteration.</li>
+ <li>Use artifact <code>flink-ml-lib</code> in order to use the off-the-shelf
ML algorithms from Flink ML.</li>
</ul>
<h3 id="apache-flink-kubernetes-operator">Apache Flink Kubernetes Operator</h3>
diff --git a/content/index.html b/content/index.html
index 4de500f51..9a1ae57f2 100644
--- a/content/index.html
+++ b/content/index.html
@@ -405,6 +405,11 @@
<dl>
+ <dt> <a href="/news/2022/09/08/akka-license-change.html">Regarding
Akka's licensing change</a></dt>
+ <dd><p>On September 7th Lightbend announced a <a
href="https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka">license
change</a> for the Akka project, the TL;DR being that you will need a
commercial license to use future versions of Akka (2.7+) in production if you
exceed a certain revenue threshold.</p>
+
+</dd>
+
<dt> <a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></dt>
<dd>The Apache Flink Community is pleased to announce the release for
Flink Table Store 0.2.0! This version complements the ecosystem and is an
available version!</dd>
@@ -418,9 +423,6 @@
<dt> <a href="/news/2022/07/12/release-ml-2.1.0.html">Apache Flink ML
2.1.0 Release Announcement</a></dt>
<dd>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 enhanced infrastructure via benchmarks and
confirmed that Flink ML can meet or exceed the performance of selected
algorithms from alternative popular ML libraries [...]
-
- <dt> <a href="/2022/07/11/final-checkpoint-part2.html">FLIP-147:
Support Checkpoints After Tasks Finished - Part Two</a></dt>
- <dd>This post presents more details on the changes on the checkpoint
procedure and task finish process made by the final checkpoint mechanism.</dd>
</dl>
diff --git a/content/index.html
b/content/news/2022/09/08/akka-license-change.html
similarity index 60%
copy from content/index.html
copy to content/news/2022/09/08/akka-license-change.html
index 4de500f51..20f65411e 100644
--- a/content/index.html
+++ b/content/news/2022/09/08/akka-license-change.html
@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head
content must come *after* these tags -->
- <title>Apache Flink: Stateful Computations over Data Streams</title>
+ <title>Apache Flink: Regarding Akka's licensing change</title>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
<link rel="icon" href="/favicon.ico" type="image/x-icon">
@@ -153,7 +153,7 @@
<li><a href="/gettinghelp.html">Getting Help</a></li>
<!-- Blog -->
- <li><a href="/blog/"><b>Flink Blog</b></a></li>
+ <li class="active"><a href="/blog/"><b>Flink Blog</b></a></li>
<!-- Flink-packages -->
@@ -185,7 +185,8 @@
<li>
- <a href="/zh/">中文版</a>
+ <!-- link to the Chinese home page when current is blog page
-->
+ <a href="/zh">中文版</a>
</li>
@@ -233,259 +234,86 @@
</div>
<div class="col-sm-9">
<div class="row-fluid">
-
<div class="col-sm-12">
- <p class="lead">
- <strong>Apache Flink<sup>®</sup> — Stateful Computations over Data
Streams</strong>
- </p>
- </div>
+ <div class="row">
+ <h1>Regarding Akka's licensing change</h1>
+ <p><i></i></p>
-<div class="col-sm-12">
- <hr />
-</div>
+ <article>
+ <p>08 Sep 2022 Chesnay Schepler </p>
-</div>
+<p>On September 7th Lightbend announced a <a
href="https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka">license
change</a> for the Akka project, the TL;DR being that you will need a
commercial license to use future versions of Akka (2.7+) in production if you
exceed a certain revenue threshold.</p>
-<!-- High-level architecture figure -->
+<p>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.</p>
-<div class="row front-graphic">
- <hr />
- <img src="/img/flink-home-graphic.png" width="800px" />
-</div>
+<p>The purpose of this blogpost is to clarify our position on the matter.</p>
-<!-- Feature grid -->
+<p>Please be aware that this topic is still quite fresh, and things are
subject to change.<br />
+Should anything significant change we will amend this blogpost and inform you
via the usual channels.</p>
-<!--
-<div class="row">
- <div class="col-sm-12">
- <hr />
- <h2><a href="/features.html">Features</a></h2>
- </div>
-</div>
--->
-<div class="row">
- <div class="col-sm-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="glyphicon glyphicon-th"></span> <b>All streaming use
cases</b>
- </div>
- <div class="panel-body">
- <ul style="font-size: small;">
- <li>Event-driven Applications</li>
- <li>Stream & Batch Analytics</li>
- <li>Data Pipelines & ETL</li>
- </ul>
- <a href="/usecases.html">Learn more</a>
- </div>
- </div>
- </div>
- <div class="col-sm-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="glyphicon glyphicon-ok"></span> <b>Guaranteed
correctness</b>
- </div>
- <div class="panel-body">
- <ul style="font-size: small;">
- <li>Exactly-once state consistency</li>
- <li>Event-time processing</li>
- <li>Sophisticated late data handling</li>
- </ul>
- <a
href="/flink-applications.html#building-blocks-for-streaming-applications">Learn
more</a>
- </div>
- </div>
- </div>
- <div class="col-sm-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="glyphicon glyphicon glyphicon-sort-by-attributes"></span>
<b>Layered APIs</b>
- </div>
- <div class="panel-body">
- <ul style="font-size: small;">
- <li>SQL on Stream & Batch Data</li>
- <li>DataStream API & DataSet API</li>
- <li>ProcessFunction (Time & State)</li>
- </ul>
- <a href="/flink-applications.html#layered-apis">Learn more</a>
- </div>
- </div>
- </div>
-</div>
-<div class="row">
- <div class="col-sm-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="glyphicon glyphicon-dashboard"></span> <b>Operational
Focus</b>
- </div>
- <div class="panel-body">
- <ul style="font-size: small;">
- <li>Flexible deployment</li>
- <li>High-availability setup</li>
- <li>Savepoints</li>
- </ul>
- <a href="/flink-operations.html">Learn more</a>
- </div>
- </div>
- </div>
- <div class="col-sm-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="glyphicon glyphicon-fullscreen"></span> <b>Scales to any
use case</b>
- </div>
- <div class="panel-body">
- <ul style="font-size: small;">
- <li>Scale-out architecture</li>
- <li>Support for very large state</li>
- <li>Incremental checkpointing</li>
- </ul>
- <a href="/flink-architecture.html#run-applications-at-any-scale">Learn
more</a>
- </div>
- </div>
- </div>
- <div class="col-sm-4">
- <div class="panel panel-default">
- <div class="panel-heading">
- <span class="glyphicon glyphicon-flash"></span> <b>Excellent
Performance</b>
- </div>
- <div class="panel-body">
- <ul style="font-size: small;">
- <li>Low latency</li>
- <li>High throughput</li>
- <li>In-Memory computing</li>
- </ul>
- <a
href="/flink-architecture.html#leverage-in-memory-performance">Learn more</a>
- </div>
- </div>
- </div>
-</div>
+<h1 id="give-me-the-short-version">Give me the short version</h1>
-<!-- Events section -->
-<div class="row">
+<p>Flink is not in any immediate danger and we will ensure that users are not
affected by this change.</p>
-<div class="col-sm-12">
- <hr />
-</div>
+<p>The licensing of Flink will not change; it will stay Apache-licensed and
will only contain dependencies that are compatible with it.</p>
-<div class="col-sm-3">
+<p>We will not use Akka versions with the new license.</p>
- <h2><a>Upcoming Events</a></h2>
+<h1 id="whats-the-plan-going-forward">What’s the plan going forward?</h1>
-</div>
-<div class="col-sm-9">
- <!-- Flink Forward -->
- <a href="https://flink-forward.org" target="_blank">
- <img style="width: 180px; padding-right: 10px"
src="/img/flink-forward.png" alt="Flink Forward" />
- </a>
- <!-- ApacheCon -->
- <a href="https://www.apache.org/events/current-event" target="_blank">
- <img style="width: 200px; padding-right: 10px"
src="https://www.apache.org/events/current-event-234x60.png" alt="ApacheCon" />
- </a>
- <!-- Flink Forward Asia -->
- <a href="https://flink-forward.org.cn/" target="_blank">
- <img style="width: 230px" src="/img/flink-forward-asia.png" alt="Flink
Forward Asia" />
- </a>
-</div>
+<p><em>For now</em>, we’ll stay on Akka 2.6, the current latest version that
is still available under the original license.
+Historically Akka has been incredibly stable, and combined with our limited
use of features, we do not expect this to be a problem.</p>
-</div>
+<p>Meanwhile, we will</p>
-<!-- Updates section -->
+<ul>
+ <li>observe how the situation unfolds (in particular w.r.t. community
forks)</li>
+ <li>look into a replacement for Akka.</li>
+</ul>
-<div class="row">
+<p>Should a community fork be created (which at this time seems possible) we
will switch to that fork in all likely-hood for 1.15+.</p>
-<div class="col-sm-12">
- <hr />
-</div>
+<h2 id="what-if-a-new-security-vulnerabilities-is-found-in-akka-26">What if a
new security vulnerabilities is found in Akka 2.6?</h2>
-<div class="col-sm-3">
+<p>That is the big unknown.</p>
- <h2><a href="/blog">Latest Blog Posts</a></h2>
+<p>Even though we will be able to upgrade to 2.6.20 (the (apparently) last
planned release for Akka 2.6) in Flink 1.17, the unfortunate reality is that <a
href="https://github.com/akka/akka/pull/31561#issuecomment-1239217602">2.6 will
no longer be supported</a> from that point onwards.<br />
+Should a CVE be discovered after that it is unlikely to be fixed in Akka
2.6.</p>
-</div>
+<p>We cannot provide a definitive answer as to how that case would be handled,
as it depends on what the CVE is and/or whether a community fork already exists
at the time.</p>
-<div class="col-sm-9">
+<h1 id="how-does-flink-use-akka">How does Flink use Akka?</h1>
- <dl>
-
- <dt> <a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></dt>
- <dd>The Apache Flink Community is pleased to announce the release for
Flink Table Store 0.2.0! This version complements the ecosystem and is an
available version!</dd>
-
- <dt> <a href="/news/2022/08/25/release-1.15.2.html">Apache Flink
1.15.2 Release Announcement</a></dt>
- <dd>The Apache Flink Community is pleased to announce a bug fix
release for Flink 1.15.</dd>
-
- <dt> <a
href="/news/2022/07/25/release-kubernetes-operator-1.1.0.html">Apache Flink
Kubernetes Operator 1.1.0 Release Announcement</a></dt>
- <dd><p>The community has continued to work hard on improving the Flink
Kubernetes Operator capabilities since our <a
href="https://flink.apache.org/news/2022/06/05/release-kubernetes-operator-1.0.0.html">first
production ready release</a> we launched about two months ago.</p>
+<p>Akka is used in the coordination layer of Flink to</p>
-</dd>
-
- <dt> <a href="/news/2022/07/12/release-ml-2.1.0.html">Apache Flink ML
2.1.0 Release Announcement</a></dt>
- <dd>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 enhanced infrastructure via benchmarks and
confirmed that Flink ML can meet or exceed the performance of selected
algorithms from alternative popular ML libraries [...]
-
- <dt> <a href="/2022/07/11/final-checkpoint-part2.html">FLIP-147:
Support Checkpoints After Tasks Finished - Part Two</a></dt>
- <dd>This post presents more details on the changes on the checkpoint
procedure and task finish process made by the final checkpoint mechanism.</dd>
-
- </dl>
+<ul>
+ <li>exchange status messages between processes/components (e.g., JobManager
and TaskManager),</li>
+ <li>enforce certain guarantees w.r.t. multi-threading (i.e., only one thread
can make changes to the internal state of a component)</li>
+ <li>observe components for unexpected crashes (i.e., notice and handle
TaskManager thread crashes).</li>
+</ul>
-</div>
+<p>What this means is that we are using very few functionalities of Akka.<br />
+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.</p>
-<!-- Scripts section -->
-
-<script type="text/javascript" src="/js/jquery.jcarousel.min.js"></script>
-
-<script type="text/javascript">
-
- $(window).load(function(){
- $(function() {
- var jcarousel = $('.jcarousel');
-
- jcarousel
- .on('jcarousel:reload jcarousel:create', function () {
- var carousel = $(this),
- width = carousel.innerWidth();
-
- if (width >= 600) {
- width = width / 4;
- } else if (width >= 350) {
- width = width / 3;
- }
-
- carousel.jcarousel('items').css('width', Math.ceil(width) +
'px');
- })
- .jcarousel({
- wrap: 'circular',
- autostart: true
- });
-
- $('.jcarousel-control-prev')
- .jcarouselControl({
- target: '-=1'
- });
-
- $('.jcarousel-control-next')
- .jcarouselControl({
- target: '+=1'
- });
-
- $('.jcarousel-pagination')
- .on('jcarouselpagination:active', 'a', function() {
- $(this).addClass('active');
- })
- .on('jcarouselpagination:inactive', 'a', function() {
- $(this).removeClass('active');
- })
- .on('click', function(e) {
- e.preventDefault();
- })
- .jcarouselPagination({
- perPage: 1,
- item: function(page) {
- return '<a href="#' + page + '">' + page + '</a>';
- }
- });
- });
- });
-
-</script>
-</div>
+ </article>
+ </div>
+ <div class="row">
+ <div id="disqus_thread"></div>
+ <script type="text/javascript">
+ /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE
* * */
+ var disqus_shortname = 'stratosphere-eu'; // required: replace example
with your forum shortname
+
+ /* * * DON'T EDIT BELOW THIS LINE * * */
+ (function() {
+ var dsq = document.createElement('script'); dsq.type =
'text/javascript'; dsq.async = true;
+ dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+ (document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).appendChild(dsq);
+ })();
+ </script>
+ </div>
+ </div>
+</div>
</div>
</div>
diff --git a/content/zh/downloads.html b/content/zh/downloads.html
index 667d1a67f..0d4078552 100644
--- a/content/zh/downloads.html
+++ b/content/zh/downloads.html
@@ -419,7 +419,7 @@
flink-docs-release-1.14/release-notes/flink-1.14.html">Flink 1.14 的发布说
<p>你只要将以下依赖项添加到 <code>pom.xml</code> 中,就能在项目中引入 Apache Flink
。这些依赖项包含了本地执行环境,因此支持本地测试。</p>
<ul>
- <li><strong>Scala API</strong>: 为了使用 Scala API,将 <code>flink-java</code> 的
artifact id 替换为 <code>flink-scala_2.11</code>,同时将
<code>flink-streaming-java_2.11</code> 替换为
<code>flink-streaming-scala_2.11</code>。</li>
+ <li><strong>Scala API</strong>: 为了使用 Scala API,将 <code>flink-java</code> 的
artifact id 替换为 <code>flink-scala_2.12</code>,同时将
<code>flink-streaming-java</code> 替换为
<code>flink-streaming-scala_2.12</code>。</li>
</ul>
<div class="highlight"><pre><code class="language-xml"><span
class="nt"><dependency></span>
@@ -429,12 +429,12 @@
flink-docs-release-1.14/release-notes/flink-1.14.html">Flink 1.14 的发布说
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-streaming-java_2.11<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-streaming-java<span
class="nt"></artifactId></span>
<span class="nt"><version></span>1.15.2<span
class="nt"></version></span>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-clients_2.11<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-clients<span
class="nt"></artifactId></span>
<span class="nt"><version></span>1.15.2<span
class="nt"></version></span>
<span class="nt"></dependency></span></code></pre></div>
@@ -461,26 +461,26 @@
flink-docs-release-1.14/release-notes/flink-1.14.html">Flink 1.14 的发布说
<div class="highlight"><pre><code class="language-xml"><span
class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-ml-core_2.12<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-ml-core<span
class="nt"></artifactId></span>
<span class="nt"><version></span>2.1.0<span
class="nt"></version></span>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-ml-iteration_2.12<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-ml-iteration<span
class="nt"></artifactId></span>
<span class="nt"><version></span>2.1.0<span
class="nt"></version></span>
<span class="nt"></dependency></span>
<span class="nt"><dependency></span>
<span class="nt"><groupId></span>org.apache.flink<span
class="nt"></groupId></span>
- <span class="nt"><artifactId></span>flink-ml-lib_2.12<span
class="nt"></artifactId></span>
+ <span class="nt"><artifactId></span>flink-ml-lib<span
class="nt"></artifactId></span>
<span class="nt"><version></span>2.1.0<span
class="nt"></version></span>
<span class="nt"></dependency></span></code></pre></div>
<p>高级用户可以根据使用场景来只包含最小集合的依赖:</p>
<ul>
- <li>依赖组件 <code>flink-ml-core_2.12</code> 来开发不使用迭代的自定义机器学习算法。</li>
- <li>依赖组件 <code>flink-ml-core_2.12</code> 与
<code>flink-ml-iteration_2.12</code> 来开发使用迭代的自定义机器学习算法。</li>
- <li>依赖组件 <code>flink-ml-lib_2.12</code> 来使用 Flink ML 提供的机器学习算法。</li>
+ <li>依赖组件 <code>flink-ml-core</code> 来开发不使用迭代的自定义机器学习算法。</li>
+ <li>依赖组件 <code>flink-ml-core</code> 与 <code>flink-ml-iteration</code>
来开发使用迭代的自定义机器学习算法。</li>
+ <li>依赖组件 <code>flink-ml-lib</code> 来使用 Flink ML 提供的机器学习算法。</li>
</ul>
<h2 id="section-4">旧版本的更新策略</h2>
diff --git a/content/zh/index.html b/content/zh/index.html
index c56ce9aae..466f75ea4 100644
--- a/content/zh/index.html
+++ b/content/zh/index.html
@@ -402,6 +402,11 @@
<dl>
+ <dt> <a href="/news/2022/09/08/akka-license-change.html">Regarding
Akka's licensing change</a></dt>
+ <dd><p>On September 7th Lightbend announced a <a
href="https://www.lightbend.com/blog/why-we-are-changing-the-license-for-akka">license
change</a> for the Akka project, the TL;DR being that you will need a
commercial license to use future versions of Akka (2.7+) in production if you
exceed a certain revenue threshold.</p>
+
+</dd>
+
<dt> <a href="/news/2022/08/29/release-table-store-0.2.0.html">Apache
Flink Table Store 0.2.0 Release Announcement</a></dt>
<dd>The Apache Flink Community is pleased to announce the release for
Flink Table Store 0.2.0! This version complements the ecosystem and is an
available version!</dd>
@@ -415,9 +420,6 @@
<dt> <a href="/news/2022/07/12/release-ml-2.1.0.html">Apache Flink ML
2.1.0 Release Announcement</a></dt>
<dd>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 enhanced infrastructure via benchmarks and
confirmed that Flink ML can meet or exceed the performance of selected
algorithms from alternative popular ML libraries [...]
-
- <dt> <a href="/2022/07/11/final-checkpoint-part2.html">FLIP-147:
Support Checkpoints After Tasks Finished - Part Two</a></dt>
- <dd>This post presents more details on the changes on the checkpoint
procedure and task finish process made by the final checkpoint mechanism.</dd>
</dl>