title: Local Kafka Application failing with: NoSuchMethodError: createEphemeral
body: <p>I am trying to run my <code>spark</code> application in local mode. To set it up all, I followed this tutorial: <a href="http://blog.d2-si.fr/2015/11/05/apache-kafka-3/" rel="nofollow">http://blog.d2-si.fr/2015/11/05/apache-kafka-3/</a>, (in 
  French) showing each step to build up the local <code>kafka</code>/<code>zookeeper</code> environment.</p>
  
  <p>Moreover, I use <code>IntelliJ</code> with the following configuration:</p>
  
  <pre><code>val sparkConf = new SparkConf().setAppName("zumbaApp").setMaster("local[2]")
  </code></pre>
  
  <p>And my run config, for the consumer:</p>
  
  <pre><code>"127.0.0.1:2181" "zumbaApp-gpId" "D2SI" "1"
  </code></pre>
  
  <p>And for the producer:</p>
  
  <pre><code>"127.0.0.1:9092" "D2SI" "my\Input\File.csv" 300
  </code></pre>
  
  <p>Beforehand, I checked if the consumer received the inputs from the producer with the default <code>console-producer</code> and <code>console-consumer</code> of <code>kafka_2.10-0.9.0.1</code> ; it does.</p>
  
  <p>But, I am facing the following error:</p>
  
  <pre><code>java.lang.NoSuchMethodError: org.I0Itec.zkclient.ZkClient.createEphemeral(Ljava/lang/String;Ljava/lang/Object;Ljava/util/List;)V
  at kafka.utils.ZkPath$.createEphemeral(ZkUtils.scala:921)
  at kafka.utils.ZkUtils.createEphemeralPath(ZkUtils.scala:348)
  at kafka.utils.ZkUtils.createEphemeralPathExpectConflict(ZkUtils.scala:363)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$18.apply(ZookeeperConsumerConnector.scala:839)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$18.apply(ZookeeperConsumerConnector.scala:833)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
  at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
  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 scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
  at scala.collection.AbstractTraversable.map(Traversable.scala:105)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener.reflectPartitionOwnershipDecision(ZookeeperConsumerConnector.scala:833)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener.kafka$consumer$ZookeeperConsumerConnector$ZKRebalancerListener$$rebalance(ZookeeperConsumerConnector.scala:721)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$syncedRebalance$1$$anonfun$apply$mcV$sp$1.apply$mcVI$sp(ZookeeperConsumerConnector.scala:636)
  at scala.collection.immutable.Range.foreach$mVc$sp(Range.scala:141)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$syncedRebalance$1.apply$mcV$sp(ZookeeperConsumerConnector.scala:627)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$syncedRebalance$1.apply(ZookeeperConsumerConnector.scala:627)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener$$anonfun$syncedRebalance$1.apply(ZookeeperConsumerConnector.scala:627)
  at kafka.metrics.KafkaTimer.time(KafkaTimer.scala:33)
  at kafka.consumer.ZookeeperConsumerConnector$ZKRebalancerListener.syncedRebalance(ZookeeperConsumerConnector.scala:626)
  at kafka.consumer.ZookeeperConsumerConnector.kafka$consumer$ZookeeperConsumerConnector$$reinitializeConsumer(ZookeeperConsumerConnector.scala:967)
  at kafka.consumer.ZookeeperConsumerConnector.consume(ZookeeperConsumerConnector.scala:254)
  at kafka.consumer.ZookeeperConsumerConnector.createMessageStreams(ZookeeperConsumerConnector.scala:156)
  at org.apache.spark.streaming.kafka.KafkaReceiver.onStart(KafkaInputDStream.scala:111)
  at org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:148)
  at org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:130)
  at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:575)
  at org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverTrackerEndpoint$$anonfun$9.apply(ReceiverTracker.scala:565)
  at org.apache.spark.SparkContext$$anonfun$37.apply(SparkContext.scala:1992)
  at org.apache.spark.SparkContext$$anonfun$37.apply(SparkContext.scala:1992)
  at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
  at org.apache.spark.scheduler.Task.run(Task.scala:89)
  at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  at java.lang.Thread.run(Thread.java:745)
  </code></pre>
  
  <p>I did not succeed in solving this. I thought it was a <code>zookeeper</code>-config error but after comparing with a working version of the application on another machine with the same configuration files, It does not seem it is anymore.</p>