В настоящее время я работаю с Netbeans на Windows-машине для разработки топологий. Когда я раскрываю в локальном режиме:
LocalCluster cluster = new LocalCluster(); cluster.submitTopology("word-count", conf, builder.createTopology());
все работает нормально, но когда я пытаюсь:
StormSubmitter.submitTopology("word", conf, builder.createTopology());
, очевидно, пытается развернуть топологию в кластерном режиме и не так как я не имею шторм нимб работает на моем локальный компьютер. У меня есть шторм, развернутый на одной камере Digital Ocean, но моим текущим (и не удобным) решением является копирование JAR-файла и использование команды storm jar...
для развертывания.
Мой вопрос: есть ли способ сообщить Netbeans, что такое мой nimbus IP-адрес, чтобы он мог развернуть его удаленно? (и сэкономить время)
Спасибо заранее!Как разработать (локально) и установить топологию шторма (удаленно)?
ответ
Check this link
Теперь я могу разработать топологии в Netbeans, протестировать их локально и в конечном итоге развернуть их на своем Nimbus на кластере. Это решение отлично работает для меня !!!
Добавить в Conf файл:
conf.put(Config.NIMBUS_HOST, "123.456.789.101); //YOUR NIMBUS'S IP conf.put(Config.NIMBUS_THRIFT_PORT,6627); //int is expected here
Кроме того, добавьте следующее: System.setProperty("storm.jar", <path-to-jar>); //link to exact file location (w/ dependencies)
избежать следующее сообщение об ошибке: [main] INFO backtype.storm.StormSubmitter - Jar not uploaded to master yet. Submitting jar... Exception in thread "main" java.lang.RuntimeException: Must submit topologies using the 'storm' client script so that StormSubmitter knows which jar to upload.
Ура!
Вы можете передать эти данные, используя параметры conf
карты .. вы можете передать ключ, значение пары в соответствии с вашими требованиями
для списка принятых параметров проверки this страницы ..
Да, определенно вы можете рассказать свою топологию о своем nimbus IP. Ниже приведен пример кода для отправки топологии на удаленный кластер.
Map storm_conf = Utils.readStormConfig();
storm_conf.put("nimbus.host", "<Nimbus Machine IP>");
Client client = NimbusClient.getConfiguredClient(storm_conf)
.getClient();
String inputJar = "C:\\workspace\\TestStormRunner\\target\\TestStormRunner-0.0.1-SNAPSHOT-jar-with-dependencies.jar";
NimbusClient nimbus = new NimbusClient(storm_conf, "<Nimbus Machine IP>",
<Nimbus Machine Port>);
// upload topology jar to Cluster using StormSubmitter
String uploadedJarLocation = StormSubmitter.submitJar(storm_conf,
inputJar);
String jsonConf = JSONValue.toJSONString(storm_conf);
nimbus.getClient().submitTopology("testtopology",
<uploadedJarLocation>, jsonConf, builder.createTopology());
Вот рабочий пример: Submitting a topology to Remote Storm Cluster
Итак, в этом случае следует определить носики и болты без класса топологии в TestStormRunner-0.0.1-SNAPSHOT-jar-with-dependencies.jar? Потому что у нас есть topologyBuilder в данном фрагменте кода – Humoyun
Нет, нам также нужно добавить класс топологии в TestStormRunner, потому что из StormSubmitter мы не устанавливаем Spout и болты. которые выполняются в целевой топологии –
ahh теперь я знаю причину моей проблемы, я определил StormSubmitter.submitTopology (...) как в классе RemoteSubmitter (который отвечает за отправку jar), так и в файле topology.jar. Насколько я понимаю, я должен определить setBolt и setSpout как в RemoteSubmitter, так и в topology.jar и StormSubmitter.submitTopology (...) только в RemoteSubmitter, но не в topology.jar, правильно? – Humoyun
- 1. Невозможно отправить топологию шторма
- 2. Как построить и запустить топологию шторма в Intellij IDEA
- 3. Как вызвать конкретный метод до того, как убить топологию шторма
- 4. Как запустить множественную топологию шторма в том же экземпляре?
- 5. Как разработать модуль npm локально
- 6. Конфигурация шторма Apache
- 7. Работа локально и удаленно одновременно с git
- 8. Как установить Orchard CMS удаленно?
- 9. Сбор статистики Tomcat локально и не удаленно
- 10. Как интерпретировать параллелизм шторма?
- 11. Выполнение локально заданной функции удаленно
- 12. Как удалить ветку и всю ее историю локально и удаленно?
- 13. Конфигурация топологии шторма
- 14. Восстановление ветки git удалено как локально, так и удаленно
- 15. Как удаленно удалять содержимое html и открывать локально
- 16. Достижение пределов шторма Apache
- 17. Разработать удаленно в XCode с помощью iPad и VNC/RDP
- 18. Как отправить топологию узлу узких рабочих кадров?
- 19. Топология топологии шторма не работает
- 20. Как установить jdt.core в eclipse локально?
- 21. Анализ: PFQuery выполняется локально или удаленно
- 22. Импорт пакетов Go локально, а не удаленно
- 23. Как установить пакеты локально?
- 24. Простой ScriptBlock работает локально, но не удаленно
- 25. Как установить удаленно PHP-Composer?
- 26. Веб-приложение работает локально - ошибка 504 удаленно
- 27. Как найти топологию процессора?
- 28. Удалить папку локально, но сохранить удаленно
- 29. MySQL может подключаться локально, но не удаленно
- 30. WCF работает локально, но не удаленно
Я потратил несколько часов, чтобы попытаться найти решение. Я знаю, что я могу запускать штормовой клиент локально и использовать storm.yaml для настройки моего nimbus IP или, альтернативно, использовать штормовую банку '-c .....' есть ли способ упомянуть nimbus в конфигурации, которую мы передаем, а submitTopology? –