2015-06-08 38 views
1

我試圖將我的第一個拓撲部署到風暴集羣,作爲我公司的評估的一部分。該拓撲結構只是從kafka獲得值並將它們放入cassandraredisKafka + Storm - 滿足依賴關係

複製過的.jar文件鰺後要儘量滿足我碰到的一個問題,即風暴聲稱缺少依賴的話,但在日誌啓動類列表顯示類作爲可用的各種依賴關係。

這裏的例外:

java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
at kafka.utils.Pool.(Pool.scala:28) ~[kafka_2.10-0.8.1.1.jar:na]
at kafka.consumer.FetchRequestAndResponseStatsRegistry$. ~[kafka_2.10-0.8.1.1.jar:na]
at kafka.consumer.FetchRequestAndResponseStatsRegistry$.(FetchRequestAndResponseStats.scala) ~[kafka_2.10-0.8.1.1.jar:na]
at kafka.consumer.SimpleConsumer.(SimpleConsumer.scala:39) ~[kafka_2.10-0.8.1.1.jar:na]
at kafka.javaapi.consumer.SimpleConsumer.(SimpleConsumer.scala:34) ~[kafka_2.10-0.8.1.1.jar:na]
at storm.kafka.DynamicPartitionConnections.register(DynamicPartitionConnections.java:60) ~[storm-kafka-0.9.4.jar:0.9.4]
at storm.kafka.PartitionManager.(PartitionManager.java:64) ~[storm-kafka-0.9.4.jar:0.9.4]
at storm.kafka.ZkCoordinator.refresh(ZkCoordinator.java:98) ~[storm-kafka-0.9.4.jar:0.9.4]
at storm.kafka.ZkCoordinator.getMyManagedPartitions(ZkCoordinator.java:69) ~[storm-kafka-0.9.4.jar:0.9.4]
at storm.kafka.KafkaSpout.nextTuple(KafkaSpout.java:135) ~[storm-kafka-0.9.4.jar:0.9.4]
at backtype.storm.daemon.executor$fn__4654$fn__4669$fn__4698.invoke(executor.clj:565) ~[storm-core-0.9.4.jar:0.9.4]
at backtype.storm.util$async_loop$fn__458.invoke(util.clj:463) ~[storm-core-0.9.4.jar:0.9.4]
at clojure.lang.AFn.run(AFn.java:24) [clojure-1.5.1.jar:na] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]

Caused by: java.lang.ClassNotFoundException: scala.collection.GenTraversableOnce$class at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_45]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_45]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_45]

當我看的主管線的啓動信息,我看到這一點:

2015-06-07T07:55:19.941-0700 o.a.z.ZooKeeper [INFO] Client environment:java.class.path= ... /usr/local/src/apache-storm-0.9.4/lib/scala-library-2.11.6.jar: ...

當我打開這個文件,我看到這個條目:

-rwxrwxrwx 0 0 0 0 Mar 18 2014 scala/collection/GenTraversableOnce.class

所以別的是不對的。我在這裏錯過了哪些步驟?

注:從組織/ JBoss的/網狀/渠道/的ChannelFactory類似的問題..

+1

我相信這是與你正在使用的scala版本相關的東西。似乎你使用的kafka是用scala 2.10編譯的,可能你已經安裝了2.11 ..只是一個想法,但它可能值得一看 – user2720864

回答

0

卡夫卡版本指定哪個斯卡拉版本是針對建。

Scala 2.10 - kafka_2.10-0.9.0.1.tgz (asc, md5)

Scala 2.11 - kafka_2.11-0.9.0.1.tgz (asc, md5)

我犯了使用卡巴2.11的Scala 2.10的錯誤。 我能夠通過糾正我的maven依賴到正確的scala和kafka組合來解決此問題。

0

Release Notes Source download: kafka-0.11.0.1-src.tgz (asc, md5)

Binary downloads: Scala 2.11 - kafka_2.11-0.11.0.1.tgz (asc, md5) 
Scala 2.12 - kafka_2.12-0.11.0.1.tgz (asc, md5) We build for multiple 

這隻事項如果你使用Scala和你想爲你使用相同版本的Scala建一個版本。否則,任何版本應該工作(建議2.11)。