2016-09-17 37 views
0

我已經構建了一個風暴拓撲,它從卡夫卡消費數據並寫入hdfs。風暴:卡夫卡到HDFS - 依賴jar問題

當使用風暴&卡夫卡的依賴關係如下圖所示,

<storm.version>0.10.0.2.3.4.0-3485</storm.version> 
<kafka.version>0.8.2.1</kafka.version> 

拓撲下面陳述的異常失敗:

java.lang.NoSuchMethodError: kafka.javaapi.consumer.SimpleConsumer.<init>(Ljava/lang/String;IIILjava/lang/String;Ljava/lang/String;)V 
at storm.kafka.DynamicPartitionConnections.register(DynamicPartitionConnections.java:60) 
at storm.kafka.PartitionManager.<init>(PartitionManager.java:66) 
at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:98) 
at storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:69) at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:138) 
at backtype.storm.daemon.executor$fn__7098$fn__7113$fn__7142.invoke(executor.clj:596) 
at backtype.storm.util$async_loop$fn__543.invoke(util.clj:475) 
at clojure.lang.AFn.run(AFn.java:22) 
at java.lang.Thread.run(Thread.java:745) 

但是,當使用風暴&卡夫卡的依賴關係如下圖所示,

<storm.version>0.9.3.2.2.4.0-2633</storm.version> 
<kafka.version>0.8.2.1</kafka.version> 

拓撲是r unning罰款和下載消息和寫入hdfs,沒有任何問題!

有人可以請幫助是什麼造成的問題,並幫助我解決這個問題!

+0

您使用HDP羣集嗎? –

+0

@RakeshRakshit是的,在HDP – Raja

+0

請看看您的HDP堆棧是否支持Kafka 0.8 –

回答

0

嘗試改變從這個風暴卡夫卡依賴性:

<groupId>org.apache.storm</groupId> 
<artifactId>storm-kafka</artifactId> 
<version>${storm.version}</version> 
<scope>compile</scope> 

這樣:

<groupId>org.apache.storm</groupId> 
<artifactId>storm-kafka</artifactId> 
<version>0.9.3.2.2.4.0-2633</version> 
<scope>compile</scope> 

,保持風暴和卡夫卡的版本是:

<storm.version>0.10.0.2.3.4.0-3485</storm.version> 
<kafka.version>0.8.2.1</kafka.version>