2014-10-29 2 views
1

이제 로컬 컴퓨터에 스톰 클러스터를 구성했습니다. 이제 나는 폭풍우를 시작하기 전에 폭풍 명령에 의해 감독관과 후계자를 시작해야한다는 것을 알고 있습니다.java에서 폭풍의 상태를 확인하는 방법은 무엇입니까?

이제 Java 프로그램을 작성 중이며 작동중인 또는 작동하지 않는 폭풍우 클러스터의 상태를 확인하려고합니다.

처럼 : 지금은 내 폭풍 클러스터가 성공적 여부 실행되고 있는지 확인할 수있는 방법을

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

?

+0

토폴로지 내부 또는 독립적 인 응용 프로그램에서 스톰 상태를 확인 하시겠습니까? – Chiron

+0

시나리오는 내 컴퓨터에서 실행중인 스톰 클러스터입니다. 토폴로지가 제출되었습니다. 이제 독립적 인 Java 프로그램을 사용하여 폭풍이 실행 중인지 여부를 확인하고 싶습니다. 토폴로지 클래스 안에서 확인하고 싶지 않습니다. – Mr37037

답변

0

나는 이것에 대한 명확한 답변을하지 않습니다하지만 당신은 그것을 할 수 있는지 확인하는 몇 가지 옵션을 다음 밖으로 시도 할 수 있습니다 : 그것은 당신이 존재하는 경우

1) ps -ef | grep StormNimbus
같은 몇 가지 일을 수행하여 폭풍 공정 아이디를 찾습니다 서비스가 제대로 작동하는지 확인할 수 있습니다. 가동 시간 비를 가지고 있다면

2) 자바를 사용 Thrift 클라이언트를 만들고 ClusterSummary 클래스가 제공 get_nimbus_uptime_secs 방법을 사용 NimbusUpTime 찾는다 .. 매우 간단한 예제 코드

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 값이면 클러스터가 시작되어 실행 중입니다.

+0

코드가 작동하지 않습니다. 그것은 연결을 거부하는 예외를 계속 제공합니다. – Mr37037

+0

폭풍이 돌고 있는지 실제로 알 수 있습니까? 폭풍우를 볼 수 있니? – user2720864

+0

아니요 폭풍을 껐습니다. 실행되지 않습니다. 실패 유스 케이스를 테스트하고 싶습니다. if (! stormWorking()). 나는이 몸에 들어가고 싶다. 따라서 폭풍우를 시작할 필요가 없습니다. – Mr37037

0

나는 가장 빠른 방법은 스톰이 사용하는 포트를 검사하는 쉘 스크립트를 만드는 것이라고 생각합니다. 포트가 누락 된 경우 시스템에 문제가 있음을 알게됩니다.

+0

http://stackoverflow.com/questions/34169413/error-thread -threadmain-5-main-died –

2

데몬 철학을 monit [1] 데몬 철학을 사용하고 .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] MONIT은 유닉스 시스템을 관리 및 모니터링을위한 작은 오픈 소스 유틸리티입니다 http://mmonit.com/monit/