2014-02-26 5 views
3

Я использую класс storm jar для отправки Топологии на `nimbus '. Он работает нормально локально, но на удаленном кластере он говорит, что не может загрузить основной класс. Ниже ошибкаНе удалось найти Главный класс во время работы Топология шторма

stderr: SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/usr/local/storm-0.9.0.1/lib/logback-classic-1.0.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/tmp/storm-starter.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
Error: Could not find or load main class ExclamationTopology 

Я бег следующей команды CLI:

usr/local/storm/bin/storm jar /tmp/storm-starter.jar ExclamationTopology 

ответ

-3

попробовать запустить так:

java -jar /tmp/storm-starter.jar ExclamationTopology 

получил ответ здесь: Run Jar in Console

+3

Неверный неправильный! Вы отвечаете, не имеет ничего общего со Storm – Chiron

+1

на самом деле это 'storm storm-starter.jar storm.starter.ExclamationTopology test', где test is Name of Topology – Volatil3

2

Там есть вероятно, была проблема с упаковкой storm-starter.jar: эта банка не должна содержать sl4j. Для того, чтобы упаковать штормовой стартер пример (https://github.com/nathanmarz/storm-starter), выполните следующую команду из корневой папки (где m2-pom.xml присутствует):

mvn -f m2-pom.xml package 

Это должно производить этот файл в целевой папке/:

storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar 

Тогда для того, чтобы развернуть его в кластер (на самом деле, через Nimbus), вы должны сообщить команде storm jar полное имя класса, который содержит main(), что обеспечивает определение топологии, (убедитесь, что вы используете один с «-with-dependencies»):

usr/local/storm/bin/storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.ExclamationTopology 
+0

True. Я сделал внутри IntelliJ-IDE, который добавил дополнительные библиотеки. – Volatil3

0

У меня была подобная ошибка для шторма, & исправлено добавлением, предоставленным в pom.xml. Когда u добавлено, maven не связывает эти libs в банку.

3

Для меня это был вопрос класса. Как только я перешел в каталог, где присутствовала банка, и запустил команду, все работало нормально.

Запуск из домашней папки штормовой

./bin/storm jar examples/storm-starter/storm-starter-topologies-0.9.3.jar storm.starter.WordCountTopology TOne 

Failed with error: Error: Could not find or load main class storm.starter.WordCountTopology 

Running from directory examples/storm-starter 

/root/storm/apache-storm-0.10.0/bin/storm jar storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology TOne 

работал отлично.

+0

Да, «шторм», и банка должна быть полным путем ... – FaithReaper

Смежные вопросы