From 96edabb6b8bdb44e3a09bc4ac98d7d3969d87859 Mon Sep 17 00:00:00 2001 From: Manikumar Reddy Date: Fri, 20 Dec 2019 00:47:12 +0530 Subject: [PATCH] MINOR: Update ZooKeeper upgrade notes Author: Manikumar Reddy Reviewers: Ismael Juma , Magnus Edenhill , Colin Patrick McCabe Closes #7818 from omkreddy/zk-note --- config/zookeeper.properties | 5 ----- docs/upgrade.html | 20 ++++++++++++++++---- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/config/zookeeper.properties b/config/zookeeper.properties index 8c186a3cf9f..90f4332ec31 100644 --- a/config/zookeeper.properties +++ b/config/zookeeper.properties @@ -22,8 +22,3 @@ maxClientCnxns=0 # Set the port to something non-conflicting if choosing to enable this admin.enableServer=false # admin.serverPort=8080 - -# Enable snapshot.trust.empty config if the ZK upgrade from 3.4.X to 3.5.6 is failing -# with "java.io.IOException: No snapshot found, but there are log entries" error. -# Check upgrade docs for more details. -# snapshot.trust.empty=true diff --git a/docs/upgrade.html b/docs/upgrade.html index 2f470e38051..7773be1a62e 100644 --- a/docs/upgrade.html +++ b/docs/upgrade.html @@ -72,9 +72,21 @@

Additional Upgrade Notes:

    -
  1. ZooKeeper has been upgraded to 3.5.6. Set snapshot.trust.empty=true in zookeeper.properties before the upgrade - to avoid ZOOKEEPER-3056. After the new version starts successfully, it is safe to remove this config. - See ZooKeeper advanced configuration for more details. +
  2. ZooKeeper has been upgraded to 3.5.6. ZooKeeper upgrade from 3.4.X to 3.5.6 can fail if there are no snapshot files in 3.4 data directory. + This usually happens in test upgrades where ZooKeeper 3.5.6 is trying to load an existing 3.4 data dir in which no snapshot file has been created. + For more details about the issue please refer to ZOOKEEPER-3056. + A fix is given in ZOOKEEPER-3056, which is to set snapshot.trust.empty=true + config in zookeeper.properties before the upgrade. But we have observed data loss in standalone cluster upgrades when using + snapshot.trust.empty=true config. For more details about the issue please refer to ZOOKEEPER-3644. + So we recommend the safe workaround of copying empty snapshot file to the 3.4 data directory, + if there are no snapshot files in 3.4 data directory. For more details about the workaround please refer to ZooKeeper Upgrade FAQ. +
  3. +
  4. + An embedded Jetty based AdminServer added in ZooKeeper 3.5. + AdminServer is enabled by default in ZooKeeper and is started on port 8080. + AdminServer is disabled by default in the ZooKeeper config (zookeeper.properties) provided by the Apache Kafka distribution. + Make sure to update your local zookeeper.properties file with admin.enableServer=false if you wish to disable the AdminServer. + Please refer AdminServer config to configure the AdminServer.
@@ -82,7 +94,7 @@
  • A new Admin API has been added for partition reassignments. Due to changing the way Kafka propagates reassignment information, it is possible to lose reassignment state in failure edge cases while upgrading to the new version. It is not recommended to start reassignments while upgrading.
  • -
  • ZooKeeper has been upgraded from 3.4.14 to 3.5.5. TLS and dynamic reconfiguration are supported by the new version.
  • +
  • ZooKeeper has been upgraded from 3.4.14 to 3.5.6. TLS and dynamic reconfiguration are supported by the new version.
  • The bin/kafka-preferred-replica-election.sh command line tool has been deprecated. It has been replaced by bin/kafka-leader-election.sh.
  • The methods electPreferredLeaders in the Java AdminClient class have been deprecated in favor of the methods electLeaders.
  • Scala code leveraging the NewTopic(String, int, short) constructor with literal values will need to explicitly call toShort on the second literal.