2014-10-29 1 views
1

Теперь я настроил штормовой кластер на моей локальной машине. Теперь я знаю, что перед запуском штурма вы должны начать nimbus, затем супервизор и, наконец, командами штурма.Как проверить статус шторма в java?

Теперь я пишу программу Java, и я хочу проверить статус моего клана бури, который либо работает, либо нет.

Как:

if(stormWorking()){ 
//do this 
} 
else{ 
//do this 
} 

Теперь, как я могу проверить, что мой шторм кластер успешно или не работает?

+0

Вы хотите проверить статус Storm внутри вашей топологии или от независимого приложения? – Chiron

+0

Сценарий - это кластер Storm, запущенный на моей машине. Представлена ​​топология. Теперь, используя независимую программу Java, я хочу проверить, работает ли буря или нет. Я не хочу проверять его внутри класса топологии. – Mr37037

ответ

0

У меня нет однозначного ответа на это, но вы можете попробовать следующие несколько вариантов, чтобы проверить, поможет ли это:

1) Посмотрите на процесс ливневых Id делать некоторые вещи, как ps -ef | grep StormNimbus
Если существует Вас может точно сказать, что служба работает.

2) Создание клиента Thrift с помощью Java и искать NimbusUpTime используя get_nimbus_uptime_secs метод предоставленного ClusterSummary класса .. очень простой пример кода может выглядеть ниже

Map conf = Utils.readStormConfig(); 
    conf.put(Config.NIMBUS_HOST, "xx.x.x.xxx"); 
    Client client = NimbusClient.getConfiguredClient(conf).getClient(); 

    // get the cluster summery object 
    ClusterSummary csummery = client.getClusterInfo(); 

    // look for nimbus up time 
    int uptime = csummery.get_nimbus_uptime_secs(); 

если Провели имеет не- нулевого значения, тогда ваш кластер работает и работает.

+0

Ваш код не работает. Он продолжает отказываться от отказа от отказа. – Mr37037

+0

Можете ли вы действительно видеть, работает ли буря? вы можете увидеть шторм ui? – user2720864

+0

Нет, я отключил бурю. Его не работает. Я хочу проверить случай использования отказа. если (! stormWorking()). Я хочу попасть в тело этого, если. Так что не нужно начинать шторм. – Mr37037

0

Я думаю, что самый быстрый способ - создать сценарий оболочки, который проверяет наличие портов, которые используются Storm. Если какой-либо из портов отсутствует, то теперь у вас возникнет проблема с вашей системой.

+0

можете ли вы помочь в этом http://stackoverflow.com/questions/34169413/error-thread -threadmain-5-основного умер –

2

Вы можете использовать monit [1] философия daemon и проверить файлы .pid. Просто проверьте каждый процесс Бури должны работать правильно:

кошка /etc/monit.d/storm

check process storm-nimbus with pidfile /var/run/storm/storm-nimbus.pid 
start program = "/sbin/service storm-nimbus start" 
stop program = "/sbin/service storm-nimbus stop" 

check process storm-supervisor with pidfile /var/run/storm/storm-supervisor.pid 
start program = "/sbin/service storm-supervisor start" 
stop program = "/sbin/service storm-supervisor stop" 

check process storm-ui with pidfile /var/run/storm/storm-ui.pid 
start program = "/sbin/service storm-ui start" 
stop program = "/sbin/service storm-ui stop" 

check process storm-logviewer with pidfile /var/run/storm/storm-logviewer.pid 
start program = "/sbin/service storm-logviewer start" 
stop program = "/sbin/service storm-logviewer stop" 

[1] монит небольшой Open Source утилита для управления и мониторинга систем Unix http://mmonit.com/monit/

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

  • Нет связанных вопросов^_^