2015-12-25 70 views
1

我試圖讓storm-starter工作。我嘗試了郵件列表,這似乎沒有獲得牽引力。當我運行以下命令:Apache Storm - 風暴啓動器上的ClassNotFoundException

$ mvn compile exec:java -Dstorm.topology=storm.starter.ExclamationTopology 

我得到一個error

Error on initialization of server mk-worker 
java.lang.RuntimeException: java.lang.ClassNotFoundException: backtype.storm.testing.TestWordSpout 

我不是一個Java開發人員,所以我不知道進口究竟應該如何工作。我確實看到storm-core/src/jvm/backtype/storm/testing/TestWordSpout.java

當我發現任何jar文件,我看到:

./target/original-storm-starter-0.11.0-SNAPSHOT.jar 
./target/storm-starter-0.11.0-SNAPSHOT.jar 

當我檢查這些jar文件,TestWordSpout是不存在的。根據上面鏈接的文檔,我正在從./examples/storm-starter運行我的命令。

據我所知,我完全按照教程。 OSX El Capitan 10.11.2,Java 1.8.0,Storm 0.9.5,Maven 3.3.3。任何幫助都會很棒。我很高興能夠開始:)

回答

0

通過maven運行風暴拓撲不是要走的路。您應該在命令行上使用bin/storm jar myJarFile.jar將拓撲提交給羣集(這也適用於本地模式)。

文件./target/original-storm-starter-0.11.0-SNAPSHOT.jar./target/storm-starter-0.11.0-SNAPSHOT.jar是標準的Maven構件,不能用於將拓撲提交到羣集。

您可以使用maven-jar-plugin(這我會建議上手 - 你可能需要使用maven-dependency-plugin, too), Maven的組裝插件, or行家遮陽簾插件to assembly a correct jar`文件提交有一堆SO質疑有關。所以我不會在這裏包含更多的細節,例如你可以看看我的git倉庫https://github.com/mjsax/aeolus/blob/master/monitoring/pom.xml

+0

感謝這個插圖 –

+0

Thanks @Matthias。如果我理解你,你說明確地調用依賴關係我需要通過在storm-starter項目中的pom.xml文件中的maven插件,這仍然是使用maven;是否有直接的方式來創建jar文件通過bin/storm運行?這些風暴傢伙ar對於完全不瞭解java的人來說,使用他們的教程並不容易。我會嘗試使用這個pom.xml的東西。我會發布任何更新。再次感謝。 – sethammons

+0

更新:我嘗試更新pom.xml以顯式聲明TestWordSpout爲包含並且不起作用。刪除,我'包'和'風暴罐目標/風暴啓動器 - *。jar storm.starter.ExclamationTopology'並且它似乎工作。 – sethammons

相關問題