diff --git a/pinot-broker/src/test/java/org/apache/pinot/broker/util/FakePropertyStore.java b/pinot-broker/src/test/java/org/apache/pinot/broker/util/FakePropertyStore.java
index fa3e9cafd2e9..a1c0a53c7f7e 100644
--- a/pinot-broker/src/test/java/org/apache/pinot/broker/util/FakePropertyStore.java
+++ b/pinot-broker/src/test/java/org/apache/pinot/broker/util/FakePropertyStore.java
@@ -20,7 +20,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.I0Itec.zkclient.IZkDataListener;
+import org.apache.helix.zookeeper.api.zkclient.IZkDataListener;
import org.apache.helix.ZNRecord;
import org.apache.helix.manager.zk.ZkBaseDataAccessor;
import org.apache.helix.store.zk.ZkHelixPropertyStore;
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstancePartitionsUtils.java b/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstancePartitionsUtils.java
index 955c5c76370a..fc17e7e9d2f4 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstancePartitionsUtils.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstancePartitionsUtils.java
@@ -22,12 +22,12 @@
import java.util.Collections;
import java.util.List;
import javax.annotation.Nullable;
-import org.I0Itec.zkclient.exception.ZkException;
import org.apache.helix.AccessOption;
import org.apache.helix.HelixManager;
import org.apache.helix.ZNRecord;
import org.apache.helix.store.HelixPropertyStore;
import org.apache.helix.store.zk.ZkHelixPropertyStore;
+import org.apache.helix.zookeeper.api.zkclient.exception.ZkException;
import org.apache.pinot.common.config.TableConfig;
import org.apache.pinot.common.config.TableNameBuilder;
import org.apache.pinot.common.config.TagNameUtils;
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/metadata/ZKMetadataProvider.java b/pinot-common/src/main/java/org/apache/pinot/common/metadata/ZKMetadataProvider.java
index 9e33b412c293..f72dd38667eb 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/metadata/ZKMetadataProvider.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/metadata/ZKMetadataProvider.java
@@ -23,10 +23,10 @@
import java.util.List;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.I0Itec.zkclient.exception.ZkBadVersionException;
import org.apache.helix.AccessOption;
import org.apache.helix.ZNRecord;
import org.apache.helix.store.zk.ZkHelixPropertyStore;
+import org.apache.helix.zookeeper.api.zkclient.exception.ZkBadVersionException;
import org.apache.pinot.common.config.TableConfig;
import org.apache.pinot.common.config.TableNameBuilder;
import org.apache.pinot.spi.data.Schema;
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/utils/ZkStarter.java b/pinot-common/src/main/java/org/apache/pinot/common/utils/ZkStarter.java
index 0941d194eedd..5184e2458d36 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/utils/ZkStarter.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/utils/ZkStarter.java
@@ -22,7 +22,10 @@
import java.io.IOException;
import java.net.InetSocketAddress;
import java.util.concurrent.TimeUnit;
-import org.I0Itec.zkclient.ZkClient;
+
+import org.apache.helix.manager.zk.client.DedicatedZkClientFactory;
+import org.apache.helix.manager.zk.client.HelixZkClient;
+import org.apache.helix.zookeeper.api.zkclient.ZkClient;
import org.apache.zookeeper.server.ServerConfig;
import org.apache.zookeeper.server.ZooKeeperServerMain;
import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
@@ -163,7 +166,10 @@ public void run() {
}.start();
// Wait until the ZK server is started
- ZkClient client = new ZkClient("localhost:" + port, 10000);
+ HelixZkClient.ZkConnectionConfig zkConnectionConfig =
+ new HelixZkClient.ZkConnectionConfig("localhost:" + port).setSessionTimeout(10000);
+ HelixZkClient client =
+ DedicatedZkClientFactory.getInstance().buildZkClient(zkConnectionConfig);
client.waitUntilConnected(10L, TimeUnit.SECONDS);
client.close();
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/HelixHelper.java b/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/HelixHelper.java
index f354671685ae..59c88c9331a7 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/HelixHelper.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/HelixHelper.java
@@ -26,7 +26,7 @@
import java.util.Set;
import java.util.concurrent.Callable;
import javax.annotation.Nullable;
-import org.I0Itec.zkclient.exception.ZkBadVersionException;
+import org.apache.helix.zookeeper.api.zkclient.exception.ZkBadVersionException;
import org.apache.helix.AccessOption;
import org.apache.helix.HelixAdmin;
import org.apache.helix.HelixDataAccessor;
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/TableCache.java b/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/TableCache.java
index 32fb21b5c872..b7dac06df9af 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/TableCache.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/utils/helix/TableCache.java
@@ -23,8 +23,8 @@
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import org.I0Itec.zkclient.IZkChildListener;
-import org.I0Itec.zkclient.IZkDataListener;
+import org.apache.helix.zookeeper.api.zkclient.IZkChildListener;
+import org.apache.helix.zookeeper.api.zkclient.IZkDataListener;
import org.apache.helix.AccessOption;
import org.apache.helix.ZNRecord;
import org.apache.helix.store.HelixPropertyListener;
diff --git a/pinot-controller/pom.xml b/pinot-controller/pom.xml
index de9d29965f80..fd8cb59bf2b9 100644
--- a/pinot-controller/pom.xml
+++ b/pinot-controller/pom.xml
@@ -160,12 +160,18 @@
- io.netty
- netty
+ io.dropwizard.metrics
+ metrics-core
+ 3.2.3
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+ 1.9.13
- com.101tec
- zkclient
+ io.netty
+ netty
org.mockito
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotRealtimeSegmentManager.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotRealtimeSegmentManager.java
index b3b5d85e16cb..5b1dd3484975 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotRealtimeSegmentManager.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotRealtimeSegmentManager.java
@@ -27,8 +27,8 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
-import org.I0Itec.zkclient.IZkChildListener;
-import org.I0Itec.zkclient.IZkDataListener;
+import org.apache.helix.zookeeper.api.zkclient.IZkChildListener;
+import org.apache.helix.zookeeper.api.zkclient.IZkDataListener;
import org.apache.helix.PropertyPathConfig;
import org.apache.helix.PropertyType;
import org.apache.helix.ZNRecord;
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancer.java b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancer.java
index fc053c96e306..86b2d9c587f4 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancer.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/rebalance/TableRebalancer.java
@@ -23,7 +23,7 @@
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.TimeoutException;
-import org.I0Itec.zkclient.exception.ZkBadVersionException;
+import org.apache.helix.zookeeper.api.zkclient.exception.ZkBadVersionException;
import org.apache.commons.configuration.Configuration;
import org.apache.helix.AccessOption;
import org.apache.helix.HelixDataAccessor;
diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerTest.java
index ed0d8cafafa7..5435e8e83c0c 100644
--- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerTest.java
+++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManagerTest.java
@@ -27,7 +27,9 @@
import java.util.Map;
import java.util.Random;
import java.util.Set;
-import org.I0Itec.zkclient.ZkClient;
+
+import org.apache.helix.manager.zk.client.DedicatedZkClientFactory;
+import org.apache.helix.manager.zk.client.HelixZkClient;
import org.apache.helix.HelixDataAccessor;
import org.apache.helix.PropertyKey;
import org.apache.helix.PropertyPathBuilder;
@@ -121,8 +123,12 @@ public void testGetInstanceConfigs()
Assert.assertEquals(cachedInstanceConfig, realInstanceConfig);
}
- ZkClient zkClient = new ZkClient(_helixResourceManager.getHelixZkURL(), CONNECTION_TIMEOUT_IN_MILLISECOND,
- CONNECTION_TIMEOUT_IN_MILLISECOND, new ZNRecordSerializer());
+ HelixZkClient.ZkConnectionConfig zkConnectionConfig =
+ new HelixZkClient.ZkConnectionConfig(_helixResourceManager.getHelixZkURL())
+ .setSessionTimeout(CONNECTION_TIMEOUT_IN_MILLISECOND);
+ HelixZkClient zkClient = DedicatedZkClientFactory.getInstance()
+ .buildZkClient(zkConnectionConfig,
+ new HelixZkClient.ZkClientConfig().setZkSerializer(new ZNRecordSerializer()));
modifyExistingInstanceConfig(zkClient);
addAndRemoveNewInstanceConfig(zkClient);
@@ -130,7 +136,7 @@ public void testGetInstanceConfigs()
zkClient.close();
}
- private void modifyExistingInstanceConfig(ZkClient zkClient)
+ private void modifyExistingInstanceConfig(HelixZkClient zkClient)
throws InterruptedException {
String instanceName = "Server_localhost_" + new Random().nextInt(NUM_INSTANCES);
String instanceConfigPath = PropertyPathBuilder.instanceConfig(getHelixClusterName(), instanceName);
@@ -162,7 +168,7 @@ private void modifyExistingInstanceConfig(ZkClient zkClient)
zkClient.writeData(instanceConfigPath, znRecord);
}
- private void addAndRemoveNewInstanceConfig(ZkClient zkClient) {
+ private void addAndRemoveNewInstanceConfig(HelixZkClient zkClient) {
int biggerRandomNumber = NUM_INSTANCES + new Random().nextInt(NUM_INSTANCES);
String instanceName = "Server_localhost_" + biggerRandomNumber;
String instanceConfigPath = PropertyPathBuilder.instanceConfig(getHelixClusterName(), instanceName);
diff --git a/pinot-perf/src/main/java/org/apache/pinot/perf/BenchmarkQueryEngine.java b/pinot-perf/src/main/java/org/apache/pinot/perf/BenchmarkQueryEngine.java
index fcceb24045aa..37f6f16de1ee 100644
--- a/pinot-perf/src/main/java/org/apache/pinot/perf/BenchmarkQueryEngine.java
+++ b/pinot-perf/src/main/java/org/apache/pinot/perf/BenchmarkQueryEngine.java
@@ -24,7 +24,9 @@
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
-import org.I0Itec.zkclient.ZkClient;
+
+import org.apache.helix.manager.zk.client.DedicatedZkClientFactory;
+import org.apache.helix.manager.zk.client.HelixZkClient;
import org.apache.helix.ZNRecord;
import org.apache.helix.manager.zk.ZNRecordSerializer;
import org.apache.pinot.broker.requesthandler.OptimizationFlags;
@@ -109,7 +111,11 @@ public void startPinot()
_perfBenchmarkDriver.addSegment(TABLE_NAME, segmentMetadata);
}
- ZkClient client = new ZkClient("localhost:2191", 10000, 10000, new ZNRecordSerializer());
+ HelixZkClient.ZkConnectionConfig zkConnectionConfig =
+ new HelixZkClient.ZkConnectionConfig("localhost:2191")
+ .setSessionTimeout(10000);
+ HelixZkClient client = DedicatedZkClientFactory.getInstance().buildZkClient(zkConnectionConfig,
+ new HelixZkClient.ZkClientConfig().setZkSerializer(new ZNRecordSerializer()));
ZNRecord record = client.readData("/PinotPerfTestCluster/EXTERNALVIEW/" + TABLE_NAME);
while (true) {
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartZookeeperCommand.java b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartZookeeperCommand.java
index 3f980ebe2d5d..c7c0b4c43762 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartZookeeperCommand.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/StartZookeeperCommand.java
@@ -21,7 +21,7 @@
import com.google.common.io.Files;
import java.io.File;
import java.io.IOException;
-import org.I0Itec.zkclient.IDefaultNameSpace;
+import org.apache.helix.zookeeper.api.zkclient.IDefaultNameSpace;
import org.apache.commons.io.FileUtils;
import org.apache.pinot.common.utils.ZkStarter;
import org.apache.pinot.tools.Command;
@@ -107,7 +107,7 @@ public boolean execute()
IDefaultNameSpace _defaultNameSpace = new IDefaultNameSpace() {
@Override
- public void createDefaultNameSpace(org.I0Itec.zkclient.ZkClient zkClient) {
+ public void createDefaultNameSpace(org.apache.helix.zookeeper.api.zkclient.ZkClient zkClient) {
// init any zk paths if needed
}
};
diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/perf/ZookeeperLauncher.java b/pinot-tools/src/main/java/org/apache/pinot/tools/perf/ZookeeperLauncher.java
index 838b6d1566e8..c27c44800855 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/perf/ZookeeperLauncher.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/perf/ZookeeperLauncher.java
@@ -20,8 +20,8 @@
import com.google.common.base.Preconditions;
import java.io.File;
-import org.I0Itec.zkclient.IDefaultNameSpace;
-import org.I0Itec.zkclient.ZkServer;
+import org.apache.helix.zookeeper.api.zkclient.IDefaultNameSpace;
+import org.apache.helix.zookeeper.api.zkclient.ZkServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,7 +53,7 @@ public ZookeeperLauncher(String baseTempDir) {
public boolean start(int zkPort) {
IDefaultNameSpace defaultNameSpace = new IDefaultNameSpace() {
@Override
- public void createDefaultNameSpace(org.I0Itec.zkclient.ZkClient zkClient) {
+ public void createDefaultNameSpace(org.apache.helix.zookeeper.api.zkclient.ZkClient zkClient) {
// init any zk paths if needed
}
};
diff --git a/pom.xml b/pom.xml
index c41ca7f2bc8f..4e1e18985112 100644
--- a/pom.xml
+++ b/pom.xml
@@ -114,7 +114,7 @@
1.7.6
1.8.0
- 0.9.4
+ 0.9.2-SNAPSHOT
0.7
2.9.8
1.9.21
@@ -495,6 +495,29 @@
+
+ org.apache.helix
+ zookeeper-api
+ ${helix.version}
+
+
+ com.github.sgroschupf
+ zkclient
+
+
+ org.jboss.netty
+ netty
+
+
+ log4j
+ log4j
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+