sgroschupf / zkclient

a zookeeper client, that makes life a little easier.
www.datameer.com
Apache License 2.0
1.09k stars 493 forks source link

NoSuchMethodError on createPersistent(Ljava/lang/String;ZLjava/util/List;) #64

Open RiseEarly opened 7 years ago

RiseEarly commented 7 years ago

Hi,

We are using Kafka 0.9 version , with zkClient of 0.7 version. Zookeeper : 3.4.6

We are trying to replicate with apache mirror maker, and got the below error. Request help on the same. We are unable to locate the function : createPersistent(String path, List ACL) anywhere in 0.7 version.

java.lang.NoSuchMethodError: org.I0Itec.zkclient.ZkClient.createPersistent(Ljava/lang/String;ZLjava/util/List;)V at kafka.utils.ZkPath$.createPersistent(ZkUtils.scala:916) at kafka.utils.ZkUtils.createParentPath(ZkUtils.scala:339) at kafka.utils.ZkUtils.updatePersistentPath(ZkUtils.scala:414) at kafka.mirrormaker.KafkaConnector.commitOffsetToZooKeeper(KafkaConnector.scala:141) at kafka.mirrormaker.KafkaConnector$$anonfun$commitOffsets$1.apply(KafkaConnector.scala:133) at kafka.mirrormaker.KafkaConnector$$anonfun$commitOffsets$1.apply(KafkaConnector.scala:132) at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:98) at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:98) at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:226) at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:39) at scala.collection.mutable.HashMap.foreach(HashMap.scala:98) at kafka.mirrormaker.KafkaConnector.commitOffsets(KafkaConnector.scala:132) at kafka.mirrormaker.MirrorMakerWorker$.commitOffsets(MirrorMakerWorker.scala:217) at kafka.mirrormaker.MirrorMakerWorker$MirrorMakerThread.maybeFlushAndCommitOffsets(MirrorMakerWorker.scala:322) at kafka.mirrormaker.MirrorMakerWorker$MirrorMakerThread.run(MirrorMakerWorker.scala:289)

ynpandey commented 7 years ago

Was there any resolution on this. I am getting a similar exception using Kafka 0.10.1.0, zkClient 0.10 with zookeeper 3.4.8:

java.lang.NoSuchMethodError: org.I0Itec.zkclient.ZkClient.createPersistent(Ljava/lang/String;ZLjava/util/List;)V
    at kafka.utils.ZkPath$.createPersistent(ZkUtils.scala:965)
    at kafka.utils.ZkUtils.makeSurePersistentPathExists(ZkUtils.scala:428)
    at kafka.utils.ZkUtils$$anonfun$setupCommonPaths$1.apply(ZkUtils.scala:263)
    at kafka.utils.ZkUtils$$anonfun$setupCommonPaths$1.apply(ZkUtils.scala:262)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at kafka.utils.ZkUtils.setupCommonPaths(ZkUtils.scala:262)
    at kafka.server.KafkaServer.initZk(KafkaServer.scala:331)
    at kafka.server.KafkaServer.startup(KafkaServer.scala:200)
    at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:39)
    at com.cloudera.oryx.kafka.util.LocalKafkaBroker.start(LocalKafkaBroker.java:83)
    at com.cloudera.oryx.lambda.AbstractLambdaIT.startMessaging(AbstractLambdaIT.java:63)
    at com.cloudera.oryx.app.batch.mllib.rdf.RDFUpdateIT.testRDF(RDFUpdateIT.java:73)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
liam0949 commented 7 years ago

I am being trapped for several days by this same problem.

jzillmann commented 7 years ago

Hey @xiaojimi did you ask in the Kafka list already ? Seems to be a version mismatch, but i'm unfamiliar with which versions kafka used and when...

Also not sure if for them time there were using a hacked version since i checked and didn't found a createPersistent(String, List) in any of the released zkClient versions...

liam0949 commented 7 years ago

I finally found out the mismatch. the

ynpandey commented 7 years ago

@xiaojimi Can you please provide the resolution here for everyone's benefit. Thank you for your efforts.

liam0949 commented 7 years ago

@ynpandey @jzillmann , type err last night. In my case, the mismatch was caused by two different version of Zkclinet: a com.github.sgroschupf, b com.101tec(which is introduced by "org.apache.kafka")