This is an automated email from the ASF dual-hosted git repository. gaoyunhaii pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push: new a66046adaf6 release notes for the 1.15 release a66046adaf6 is described below commit a66046adaf6a96cd09e55ac1a4cf1df63e502708 Author: Joe Moser <j...@ververica.com> AuthorDate: Tue Apr 26 11:47:16 2022 +0200 release notes for the 1.15 release --- docs/content/_index.md | 2 +- docs/content/release-notes/flink-1.15.md | 589 +++++++++++++++++++++++++++++++ 2 files changed, 590 insertions(+), 1 deletion(-) diff --git a/docs/content/_index.md b/docs/content/_index.md index 038d8048acc..2af8e6555ea 100644 --- a/docs/content/_index.md +++ b/docs/content/_index.md @@ -85,7 +85,7 @@ Release notes cover important changes between Flink versions. Please read them c For some reason Hugo will only allow linking to the release notes if there is a leading '/' and file extension. --> -See the release notes for [Flink 1.14]({{< ref "/release-notes/flink-1.14.md" >}}), [Flink 1.13]({{< ref "/release-notes/flink-1.13.md" >}}), [Flink 1.12]({{< ref "/release-notes/flink-1.12.md" >}}), [Flink 1.11]({{< ref "/release-notes/flink-1.11.md" >}}), [Flink 1.10]({{< ref "/release-notes/flink-1.10.md" >}}), [Flink 1.9]({{< ref "/release-notes/flink-1.9.md" >}}), [Flink 1.8]({{< ref "/release-notes/flink-1.8.md" >}}), or [Flink 1.7]({{< ref "/release-notes/flink-1.7.md" >}}). +See the release notes for [Flink 1.15]({{< ref "/release-notes/flink-1.15.md" >}}), [Flink 1.14]({{< ref "/release-notes/flink-1.14.md" >}}), [Flink 1.13]({{< ref "/release-notes/flink-1.13.md" >}}), [Flink 1.12]({{< ref "/release-notes/flink-1.12.md" >}}), [Flink 1.11]({{< ref "/release-notes/flink-1.11.md" >}}), [Flink 1.10]({{< ref "/release-notes/flink-1.10.md" >}}), [Flink 1.9]({{< ref "/release-notes/flink-1.9.md" >}}), [Flink 1.8]({{< ref "/release-notes/flink-1.8.md" >}}), or [Fl [...] {{< /columns >}} diff --git a/docs/content/release-notes/flink-1.15.md b/docs/content/release-notes/flink-1.15.md new file mode 100644 index 00000000000..d9669cdff67 --- /dev/null +++ b/docs/content/release-notes/flink-1.15.md @@ -0,0 +1,589 @@ +--- +title: "Release Notes - Flink 1.15" +--- +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> + +# Release notes - Flink 1.15 + +These release notes discuss important aspects, such as configuration, behavior, +or dependencies, that changed between Flink 1.14 and Flink 1.15. Please read these +notes carefully if you are planning to upgrade your Flink version to 1.15. + +## Summary of changed dependency names + +There are Several changes in Flink 1.15 that require updating dependency names when +upgrading from earlier versions, mainly including the effort to opting-out Scala dependencies +from non-scala modules and reorganize table modules. A quick checklist of the dependency changes +is as follows: + +* Any dependency to one of the following modules needs to be updated to no longer include a suffix: + + ``` + flink-cep + flink-clients + flink-connector-elasticsearch-base + flink-connector-elasticsearch6 + flink-connector-elasticsearch7 + flink-connector-gcp-pubsub + flink-connector-hbase-1.4 + flink-connector-hbase-2.2 + flink-connector-hbase-base + flink-connector-jdbc + flink-connector-kafka + flink-connector-kinesis + flink-connector-nifi + flink-connector-pulsar + flink-connector-rabbitmq + flink-container + flink-dstl-dfs + flink-gelly + flink-hadoop-bulk + flink-kubernetes + flink-runtime-web + flink-sql-connector-elasticsearch6 + flink-sql-connector-elasticsearch7 + flink-sql-connector-hbase-1.4 + flink-sql-connector-hbase-2.2 + flink-sql-connector-kafka + flink-sql-connector-kinesis + flink-sql-connector-rabbitmq + flink-state-processor-api + flink-statebackend-rocksdb + flink-streaming-java + flink-test-utils + flink-yarn + flink-table-api-java-bridge + flink-table-runtime + flink-sql-client + flink-orc + flink-orc-nohive + flink-parquet + ``` +* For Table / SQL users, the new module `flink-table-planner-loader` replaces `flink-table-planner_2.12` + and avoids the need for a Scala suffix. For backwards compatibility, users can still + swap it with `flink-table-planner_2.12` located in `opt/`. + `flink-table-uber` has been split into `flink-table-api-java-uber`, + `flink-table-planner(-loader)`, and `flink-table-runtime`. Scala users need to explicitly add a dependency + to `flink-table-api-scala` or `flink-table-api-scala-bridge`. + +The detail of the involved issues are listed as follows. + +#### Add support for opting-out of Scala + +##### [FLINK-20845](https://issues.apache.org/jira/browse/FLINK-20845) + +The Java DataSet/-Stream APIs are now independent of Scala and no longer transitively depend on it. + +The implications are the following: + +* If you only intend to use the Java APIs, with Java types, +then you can opt-in to a Scala-free Flink by removing the `flink-scala` jar from the `lib/` directory of the distribution. +You are then free to use any Scala version and Scala libraries. +You can either bundle Scala itself in your user-jar; or put into the `lib/` directory of the distribution. + +* If you relied on the Scala APIs, without an explicit dependency on them, + then you may experience issues when building your projects. You can solve this by adding explicit dependencies to + the APIs that you are using. This should primarily affect users of the Scala `DataStream/CEP` APIs. + +* A lot of modules have lost their Scala suffix. + Further caution is advised when mixing dependencies from different Flink versions (e.g., an older connector), + as you may now end up pulling in multiple versions of a single module (that would previously be prevented by the name being equal). + +#### Reorganize table modules and introduce flink-table-planner-loader + +##### [FLINK-25128](https://issues.apache.org/jira/browse/FLINK-25128) + +The new module `flink-table-planner-loader` replaces `flink-table-planner_2.12` and avoids the need for a Scala suffix. +It is included in the Flink distribution under `lib/`. For backwards compatibility, users can still swap it with +`flink-table-planner_2.12` located in `opt/`. As a consequence, `flink-table-uber` has been split into `flink-table-api-java-uber`, +`flink-table-planner(-loader)`, and `flink-table-runtime`. `flink-sql-client` has no Scala suffix anymore. + +It is recommended to let new projects depend on `flink-table-planner-loader` (without Scala suffix) in provided scope. + +Note that the distribution does not include the Scala API by default. +Scala users need to explicitly add a dependency to `flink-table-api-scala` or `flink-table-api-scala-bridge`. + +#### Remove flink-scala dependency from flink-table-runtime + +##### [FLINK-25114](https://issues.apache.org/jira/browse/FLINK-25114) + +The `flink-table-runtime` has no Scala suffix anymore. +Make sure to include `flink-scala` if the legacy type system (based on TypeInformation) with case classes is still used within Table API. + +#### flink-table uber jar should not include flink-connector-files dependency + +##### [FLINK-24687](https://issues.apache.org/jira/browse/FLINK-24687) + +The table file system connector is not part of the `flink-table-uber` JAR anymore but is a dedicated (but removable) +`flink-connector-files` JAR in the `/lib` directory of a Flink distribution. + +## JDK Upgrade + +The support of Java 8 is now deprecated and will be removed in a future release +([FLINK-25247](https://issues.apache.org/jira/browse/FLINK-25247)). We recommend +all users to migrate to Java 11. + +The default Java version in the Flink docker images is now Java 11 +([FLINK-25251](https://issues.apache.org/jira/browse/FLINK-25251)). +There are images built with Java 8, tagged with “java8”. + +## Drop support for Scala 2.11 + +Support for Scala 2.11 has been removed in +[FLINK-20845](https://issues.apache.org/jira/browse/FLINK-20845). +All Flink dependencies that (transitively) +depend on Scala are suffixed with the Scala version that they are built for, for +example `flink-streaming-scala_2.12`. Users should update all Flink dependecies, +changing "2.11" to "2.12". + +Scala versions (2.11, 2.12, etc.) are not binary compatible with one another. That +also means that there's no guarantee that you can restore from a savepoint, made +with a Flink Scala 2.11 application, if you're upgrading to a Flink Scala 2.12 +application. This depends on the data types that you have been using in your +application. + +The Scala Shell/REPL has been removed in +[FLINK-24360](https://issues.apache.org/jira/browse/FLINK-24360). + +## Table API & SQL + +#### Disable the legacy casting behavior by default + +##### [FLINK-26551](https://issues.apache.org/jira/browse/FLINK-26551) + +The legacy casting behavior has been disabled by default. This might have +implications on corner cases (string parsing, numeric overflows, to string +representation, varchar/binary precisions). Set +`table.exec.legacy-cast-behaviour=ENABLED` to restore the old behavior. + +#### Enforce CHAR/VARCHAR precision when outputting to a Sink + +##### [FLINK-24753](https://issues.apache.org/jira/browse/FLINK-24753) + +`CHAR`/`VARCHAR` lengths are enforced (trimmed/padded) by default now before entering +the table sink. + +#### Support the new type inference in Scala Table API table functions + +##### [FLINK-26518](https://issues.apache.org/jira/browse/FLINK-26518) + +Table functions that are called using Scala implicit conversions have been updated +to use the new type system and new type inference. Users are requested to update +their UDFs or use the deprecated `TableEnvironment.registerFunction` to restore +the old behavior temporarily by calling the function via name. + +#### Propagate executor config to TableConfig + +##### [FLINK-26421](https://issues.apache.org/jira/browse/FLINK-26421) + +`flink-conf.yaml` and other configurations from outer layers (e.g. CLI) are now +propagated into `TableConfig`. Even though configuration set directly in `TableConfig` +has still precedence, this change can have side effects if table configuration +was accidentally set in other layers. + +#### Remove pre FLIP-84 methods + +##### [FLINK-26090](https://issues.apache.org/jira/browse/FLINK-26090) + +The previously deprecated methods `TableEnvironment.execute`, `Table.insertInto`, +`TableEnvironment.fromTableSource`, `TableEnvironment.sqlUpdate`, and +`TableEnvironment.explain` have been removed. Please use +`TableEnvironment.executeSql`, `TableEnvironment.explainSql`, +`TableEnvironment.createStatementSet`, as well as `Table.executeInsert`, +`Table.explain` and `Table.execute` and the newly introduces classes +`TableResult`, `ResultKind`, `StatementSet` and `ExplainDetail`. + +#### Fix parser generator warnings + +##### [FLINK-26053](https://issues.apache.org/jira/browse/FLINK-26053) + +`STATEMENT` is a reserved keyword now. Use backticks to escape tables, fields and +other references. + +#### Expose uid generator for DataStream/Transformation providers + +##### [FLINK-25990](https://issues.apache.org/jira/browse/FLINK-25990) + +`DataStreamScanProvider` and `DataStreamSinkProvider` for table connectors received +an additional method that might break implementations that used lambdas before. +We recommend static classes as a replacement and future robustness. + +#### Add new STATEMENT SET syntax + +##### [FLINK-25392](https://issues.apache.org/jira/browse/FLINK-25392) + +It is recommended to update statement sets to the new SQL syntax: + +```SQL +EXECUTE STATEMENT SET BEGIN ... END; +EXPLAIN STATEMENT SET BEGIN ... END; +``` + +#### Check & possible fix decimal precision and scale for all Aggregate functions + +##### [FLINK-24809](https://issues.apache.org/jira/browse/FLINK-24809) + +This changes the result of a decimal `SUM()` with retraction and `AVG()`. Part of the behavior +is restored back to be the same with 1.13 so that the behavior as a whole could be consistent +with Hive / Spark. + +#### Clarify semantics of DecodingFormat and its data type + +##### [FLINK-24776](https://issues.apache.org/jira/browse/FLINK-24776) + +The `DecodingFormat` interface was used for both projectable and non-projectable +formats which led to inconsistent implementations. The `FileSystemTableSource` +has been updated to distinguish between those two interfaces now. Users that +implement custom formats for `FileSystemTableSource` might need to verify the +implementation and make sure to implement `ProjectableDecodingFormat` if necessary. + +#### Push down partitions before filters + +##### [FLINK-24717](https://issues.apache.org/jira/browse/FLINK-24717) + +This might have an impact on existing table source implementations as push down +filters might not contain partition predicates anymore. However, the connector +implementation for table sources that implement both partition and filter push +down became easier with this change. + +#### Flink SQL `SUM()` causes a precision error + +##### [FLINK-24691](https://issues.apache.org/jira/browse/FLINK-24691) + +This changes the result of a decimal `SUM()` between 1.14.0 and 1.14.1. It restores +the behavior of 1.13 to be consistent with Hive/Spark. + +#### Use the new casting rules in TableResult#print + +##### [FLINK-24685](https://issues.apache.org/jira/browse/FLINK-24685) + +The string representation of `BOOLEAN` columns from DDL results +(`true/false -> TRUE/FALSE`), and row columns in DQL results +(`+I[...] -> (...)`) has changed for printing. + +#### Casting from a string to a DATE and TIME allows incomplete strings + +##### [FLINK-24421](https://issues.apache.org/jira/browse/FLINK-24421) + +The defaults for casting incomplete strings like `"12"` to TIME have changed from `12:01:01` to `12:00:00`. + +#### Casting from STRING to TIMESTAMP_LTZ looses fractional seconds + +##### [FLINK-24446](https://issues.apache.org/jira/browse/FLINK-24446) + +`STRING` to `TIMESTAMP(_LTZ)` casting now considers fractional seconds. +Previously fractional seconds of any precision were ignored. + +#### Sinks built with the unified sink framework do not receive timestamps when used in Table API + +##### [FLINK-24608](https://issues.apache.org/jira/browse/FLINK-Table) + +This adds an additional operator to the topology if the new sink interfaces are used +(e.g. for Kafka). It could cause issues in 1.14.1 when restoring from a 1.14 savepoint. +A workaround is to cast the time attribute to a regular timestamp in the SQL statement +closely before the sink. + +#### SQL functions should return `STRING` instead of `VARCHAR(2000)` + +##### [FLINK-24586](https://issues.apache.org/jira/browse/FLINK-24586) + +Functions that returned `VARCHAR(2000)` in 1.14, return `VARCHAR` with maximum +length now. In particular this includes: + +```SQL +SON_VALUE +CHR +REVERSE +SPLIT_INDEX +REGEXP_EXTRACT +PARSE_URL +FROM_UNIXTIME +DECODE +DATE_FORMAT +CONVERT_TZ +``` + +#### Support IS JSON for Table API + +##### [FLINK-16501](https://issues.apache.org/jira/browse/FLINK-16501) + +This issue added IS JSON for Table API. Notes that `IS JSON` does not return +`NULL` anymore but always `FALSE` (even if the argument is `NULL`). + +#### Disable upsert into syntax in Flink SQL + +##### [FLINK-22942](https://issues.apache.org/jira/browse/FLINK-22942) + +Disabled `UPSERT INTO` statement. +`UPSERT INTO` syntax was exposed by mistake in previous releases without detailed discussed. +From this release every `UPSERT INTO` is going to throw an exception. +Users of `UPSERT INTO` should use the documented `INSERT INTO` statement instead. + +#### RuntimeException: while resolving method 'booleanValue' in class class java.math.BigDecimal + +##### [FLINK-23271](https://issues.apache.org/jira/browse/FLINK-23271) + +Casting to `BOOLEAN` is not allowed from decimal numeric types anymore. + +#### Upsert materializer is not inserted for all sink providers + +##### [FLINK-23895](https://issues.apache.org/jira/browse/FLINK-23895) + +This issue aims to fix various primary key issues that effectively made it impossible to use this feature. +The change might affect savepoint backwards compatibility for those incorrect pipelines. +Also the resulting changelog stream might be different after these changes. +Pipelines that were correct before should be restorable from a savepoint. + +#### Propagate unique keys for fromChangelogStream + +##### [FLINK-24033](https://issues.apache.org/jira/browse/FLINK-24033) + +`StreamTableEnvironment.fromChangelogStream` might produce a different stream because +primary keys were not properly considered before. + +#### TableResult#print() should use internal data types + +##### [FLINK-24461](https://issues.apache.org/jira/browse/FLINK-24461) + +The results of `Table#print` have changed to be closer to actual SQL data types. +E.g. decimal is printing correctly with leading/trailing zeros. + +## Connectors + +#### Remove MapR filesystem + +##### [FLINK-25553](https://issues.apache.org/jira/browse/FLINK-25553) + +Support for the MapR FileSystem has been dropped. + +#### Merge flink-connector-testing into flink-connector-test-utils + +##### [FLINK-25712](https://issues.apache.org/jira/browse/FLINK-25712) + +The `flink-connector-testing` module has been removed and users should use +`flink-connector-test-utils` module instead. + +#### Support partition keys through metadata (for FileSystem connector) + +##### [FLINK-24617](https://issues.apache.org/jira/browse/FLINK-24617) + +Now the formats implementing `BulkWriterFormatFactory` don't need to implement +partition keys reading anymore, as it's managed internally by `FileSystemTableSource`. + +#### Port ElasticSearch Sink to new Unified Sink API (FLIP-143) + +##### [FLINK-24323](https://issues.apache.org/jira/browse/FLINK-24323) + +`ElasticsearchXSinkBuilder` supersedes `ElasticsearchSink.Builder` and provides at-least-once writing with the +new unified sink interface supporting both batch and streaming mode of DataStream API. + +For Elasticsearch 7 users that use the old ElasticsearchSink interface +(`org.apache.flink.streaming.connectors.elasticsearch7.ElasticsearchSink`) +and depend on their own elasticsearch-rest-high-level-client version, +updating the client dependency to a version >= 7.14.0 is required due to internal changes. + +#### Reduce legacy in Table API connectors + +##### [FLINK-24397](https://issues.apache.org/jira/browse/FLINK-24397) + +The old JDBC connector (indicated by `connector.type=jdbc` in DDL) has been removed. +If not done already, users need to upgrade to the newer stack (indicated by `connector=jdbc` in DDL). + +## Runtime & Coordination + +#### Integrate retry strategy for cleanup stage + +##### [FLINK-25433](https://issues.apache.org/jira/browse/FLINK-25433) + +Adds retry logic to the cleanup steps of a finished job. This feature changes the +way Flink jobs are cleaned up. Instead of trying once to clean up the job, this +step will be repeated until it succeeds. Users are meant to fix the issue that +prevents Flink from finalizing the job cleanup. The retry functionality can be +configured and disabled. More details can be found +[in the documentation](https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/config/#retryable-cleanup). + +#### Introduce explicit shutdown signaling between `TaskManager` and `JobManager` + +##### [FLINK-25277](https://issues.apache.org/jira/browse/FLINK-25277) + +`TaskManagers` now explicitly send a signal to the `JobManager` when shutting down. This reduces the down-scaling delay in reactive mode (which was previously bound to the heartbeat timeout). + +#### Release `TaskManagerJobMetricGroup` with the last slot rather than task + +##### [FLINK-24864](https://issues.apache.org/jira/browse/FLINK-24864) + +Job metrics on the TaskManager are now removed when the last slot is released, rather than the last task. +This means they may be reported for a longer time than before and when no tasks are running on the TaskManager. + +#### Make errors happened during JobMaster initialization accessible through the exception history + +##### [FLINK-25096](https://issues.apache.org/jira/browse/FLINK-25096) + +Fixes issue where the failover is not listed in the exception history but as a root +cause. That could have happened if the failure occurred during `JobMaster` +initialization. + + +#### DispatcherResourceManagerComponent fails to deregister application if no leading ResourceManager + +##### [FLINK-24038](https://issues.apache.org/jira/browse/FLINK-24038) + +A new multiple component leader election service was implemented that only runs a single leader election per Flink process. +If this should cause any problems, then you can set `high-availability.use-old-ha-services: true` in the `flink-conf.yaml` +to use the old high availability services. + +#### Allow idempotent job cancellation + +##### [FLINK-24275](https://issues.apache.org/jira/browse/FLINK-24275) + +Attempting to cancel a `FINISHED/FAILED` job now returns 409 Conflict instead of 404 Not Found. + +#### Move async savepoint operation cache into Dispatcher + +#### [FLINK-18312](https://issues.apache.org/jira/browse/FLINK-18312) + +All `JobManagers` can now be queried for the status of a savepoint operation, irrespective of which `JobManager` received the initial request. + +#### Standby per job mode Dispatchers don't know job's JobSchedulingStatus + +##### [FLINK-11813](https://issues.apache.org/jira/browse/FLINK-11813) + +The issue of re-submitting a job in Application Mode when the job finished but failed during +cleanup is fixed through the introduction of the new component JobResultStore which enables +Flink to persist the cleanup state of a job to the file system. (see [FLINK-25431](https://issues.apache.org/jira/browse/FLINK-25431)) + + +#### Change some default config values of blocking shuffle for better usability + +##### [FLINK-25636](https://issues.apache.org/jira/browse/FLINK-25636) + +Since 1.15, sort-shuffle has become the default blocking shuffle implementation and shuffle data +compression is enabled by default. These changes influence batch jobs only, for more information, +please refer to the [official document](https://nightlies.apache.org/flink/flink-docs-release-1.15). + + +## Checkpoints + +#### FLIP-193: Snapshots ownership + +##### [FLINK-25154](https://issues.apache.org/jira/browse/FLINK-25154) + +When restoring from a savepoint or retained externalized checkpoint you can choose +the mode in which you want to perform the operation. You can choose from `CLAIM`, +`NO_CLAIM`, `LEGACY` (the old behavior). + +In `CLAIM` mode Flink takes ownership of the snapshot and will potentially try to +remove the snapshot at a certain point in time. On the other hand the `NO_CLAIM` +mode will make sure Flink does not depend on the existence of any files belonging +to the initial snapshot. + +For a more thorough description see [the documentation](https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/ops/state/savepoints/#restore-mode). + +#### Support native savepoints (w/o modifying the statebackend specific snapshot strategies) + +##### [FLINK-25744](https://issues.apache.org/jira/browse/FLINK-25744) + +When taking a savepoint you can specify the binary format. You can choose from native +(specific to a particular state backend) or canonical (unified across all state backends). + +#### Prevent JM from discarding state on checkpoint abortion + +##### [FLINK-24611](https://issues.apache.org/jira/browse/FLINK-24611) + +Shared state tracking changed to use checkpoint ID instead of reference counts. +Shared state is not cleaned up on abortion anymore (but rather on subsumption or +job termination). + +This might result in delays in discarding the state of aborted checkpoints. + +#### Introduce incremental/full checkpoint size stats + +##### [FLINK-25557](https://issues.apache.org/jira/browse/FLINK-25557) + +Introduce metrics of persistent bytes within each checkpoint (via REST API and UI), +which could help users to know how much data size had been persisted during the +incremental or change-log based checkpoint. + +#### Enables final checkpoint by default + +##### [FLINK-25105](https://issues.apache.org/jira/browse/FLINK-25105) + +In 1.15 we enabled the support of checkpoints after part of tasks finished by default, +and made tasks waiting for the final checkpoint before exit to ensure all data got +committed. + +However, it's worth noting that this change forces tasks to wait for one more +checkpoint before exiting. In other words, this change will block the tasks until +the next checkpoint get triggered and completed. If the checkpoint interval is long, +the tasks' execution time would also be extended largely. In the worst case if the +checkpoint interval is `Long.MAX_VALUE`, the tasks would be in fact blocked forever. + +More information about this feature and how to disable it could be found in +[the documentation](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/checkpointing/#checkpointing-with-parts-of-the-graph-finished-beta). + +#### Migrate state processor API to DataStream API + +##### [FLINK-24912](https://issues.apache.org/jira/browse/FLINK-24912) + +The State Processor API has been migrated from Flinks legacy DataSet API to now +run over DataStreams run under `BATCH` execution. + +#### Relocate RocksDB's log under flink log directory by default + +##### [FLINK-24785](https://issues.apache.org/jira/browse/FLINK-24785) + +The internal log of RocksDB would stay under flink's log directory by default. + +## Dependency upgrades + +#### Upgrade the minimal supported hadoop version to 2.8.5 + +##### [FLINK-25224](https://issues.apache.org/jira/browse/FLINK-25224) + +Minimal supported Hadoop client version is now 2.8.5 (version of the Flink runtime +dependency). The client can still talk to older server versions as the binary protocol +should be backward compatible. + +#### Update Elasticsearch Sinks to latest minor versions + +##### [FLINK-25189](https://issues.apache.org/jira/browse/FLINK-25189) + +Elasticsearch libraries used by the connector are bumped to 7.15.2 and 6.8.20 +respectively. + +For Elasticsearch 7 users that use the old ElasticsearchSink interface +(`org.apache.flink.streaming.connectors.elasticsearch7.ElasticsearchSink`) and +depend on their own `elasticsearch-rest-high-level-client` version, will need +to update the client dependency to a version >= 7.14.0 due to internal changes. + + +#### Drop support for Zookeeper 3.4 + +##### [FLINK-25146](https://issues.apache.org/jira/browse/FLINK-25146) + +Support for using Zookeeper 3.4 for HA has been dropped. +Users relying on Zookeeper need to upgrade to 3.5/3.6. +By default Flink now uses a Zookeeper 3.5 client. + +#### Upgrade Kafka dependency + +##### [FLINK-24765](https://issues.apache.org/jira/browse/FLINK-24765) + +Kafka connector uses Kafka client 2.8.1 by default now.