storm 클 러 스 터 의 nimbus 와 슈퍼 바 이 저 결점 을 해결 하 는 이유 없 이 자동 으로 정지 하 는 방안

4368 단어 Storm
storm 은 생산 에 있어 서 매우 즐겁게 달 렸 다. 최근 에 갑자기 문제 가 생 겼 다. storm 이 무슨 원인 인지 이유 없 이 자동 으로 멈 추 었 다.로 그 를 보 는 데 오류 메시지 가 없습니다. 경고 메 시 지 를 포함 하여 아무런 이유 없 이 shut down 입 니 다.문제 분석, 초보 적 으로 우 리 는 시스템 자원 부족 으로 인 한 것 이 라 고 판단 하지만 이것 은 단지 추측 일 뿐이다. storm 클 러 스 터 의 이러한 server 가 모두 감 시 를 하지 않 았 기 때문에 뒤에 감 시 를 더 해 야 자원 문제 로 인 한 것 인지 검증 할 수 있다.
 
좋아!기왕 문제 에 부 딪 혔 으 니 우리 문 제 를 해결 합 시다!우선 인터넷 을 검색 해 보 니 우리 와 같은 문제 가 많 았 지만 좋 은 해결 방안 을 찾 지 못 했다.storm 홈 페이지 를 검색 해 보 니 "Launches the nimbus daemon. This command should be run under supervision with a tool like daemontools or monit. See Setting up a Storm cluster for more information." 홈 페이지 에 서 는 nimbus 와 supervisor 를 daemontools or monit 아래 에서 실행 하 는 것 을 추천 합 니 다.그래서 나 는 데 몬 톨 스 를 눌 렀 다.먼저 테스트 기계 에 테스트 를 설 치 했 습 니 다. 프로 세 스 가 kill 에 떨 어 지면 자동 으로 다시 시작 되 고 현재 우리 가 직면 하고 있 는 문 제 를 만족 시 킬 수 있 습 니 다.
 
1. daemontools 설치
여 기 는 홈 페이지 의 설치 문서 입 니 다.http://cr.yp.to/daemontools/install.html
다음은 우리 의 설치 절차 입 니 다.
mkdir -p /package
cd /package/
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
설치 패 키 지 를 다운로드 한 후에 압축 을 풀 고 컴 파일 합 니 다.
gunzip daemontools-0.76.tar.gz
tar -xpf daemontools-0.76.tar
cd admin/daemontools-0.76/
./package/install
오류 메시지:
 
./compile wait_pid.c
./makelib unix.a alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o \
	buffer_2.o buffer_get.o buffer_put.o buffer_read.o buffer_write.o \
	coe.o env.o error.o error_str.o fd_copy.o fd_move.o fifo.o lock_ex.o \
	lock_exnb.o ndelay_off.o ndelay_on.o open_append.o open_read.o \
	open_trunc.o open_write.o openreadclose.o pathexec_env.o \
	pathexec_run.o prot.o readclose.o seek_set.o sgetopt.o sig.o \
	sig_block.o sig_catch.o sig_pause.o stralloc_cat.o stralloc_catb.o \
	stralloc_cats.o stralloc_eady.o stralloc_opyb.o stralloc_opys.o \
	stralloc_pend.o strerr_die.o strerr_sys.o subgetopt.o wait_nohang.o \
	wait_pid.o
./load envdir unix.a byte.a 
/usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in envdir.o
/lib64/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [envdir] Error 1

 그리고 src 디 렉 터 리 에 있 는 error. h 라 이브 러 리 파일 을 수정 합 니 다.
 
vim src/error.h
"extern int errno;" 를 찾 아 "\ # include" 로 바 꾸 고 컴 파일 합 니 다.
./package/install
여기 서 다음 정 보 는 성공 적 으로 설치 되 었 음 을 알려 줍 니 다.
Copying commands into ./command...
Creating symlink daemontools -> daemontools-0.76...
Making command links in /command...
Making compatibility links in /usr/local/bin...
Creating /service...
Adding svscanboot to inittab...
init should start svscan now.

 
2. storm ui, nimbus, supervisor 설정
우선 서비스 디 렉 터 리 에 들 어 갑 니 다.
cd /service/
 
storm ui 설정:
mkdir ui
cd ui/
vim run
run 스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/bash
exec 2>&1
exec /opt/app/apache-storm-0.9.5/bin/storm ui

chmod 755 run
 
nimbus 설정:
cd /service/
mkdir nimbus
cd nimbus/
vim run
run 스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/bash
exec 2>&1
exec /opt/app/apache-storm-0.9.5/bin/storm nimbus

chmod 755 run
 
슈퍼 visor 설정:
cd /service/
mkdir supervisor
cd supervisor/
vim run
run 스 크 립 트 는 다음 과 같 습 니 다:
#!/bin/bash
exec 2>&1
exec /opt/app/apache-storm-0.9.5/bin/storm supervisor

chmod 755 run
 
이 모든 설치 와 설정 은 OK 입 니 다. 다음 에 시작 하 겠 습 니 다!
supervise /service/ui &
supervise /service/nimbus &
supervise /service/supervisor &
큰 성 과 를 거 둔 후에 이 서비스 들 은 자동 으로 재 개 될 것 이다.물론 동창 회 에서 물 어 볼 것 이다. 앞으로 이런 서비스 들 이 죽 이지 않 을 리 가 있 잖 아!어떤 서 비 스 를 자동 으로 다시 시작 하지 않 으 려 면 명령 ps - ef | grep 슈퍼 vise 로 보고 해당 프로 세 스 를 kill 에 게 서 비 스 를 없 애 면 자동 으로 다시 시작 하지 않 습 니 다.
 
Storm 이 운영 체제 의 시작 에 따라 시작 되 기 를 원한 다 면 / etc / rc. local 스 크 립 트 에 다음 설정 을 추가 하 십시오.
export JAVA_HOME=/opt/app/jdk1.8.0_92
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
/usr/local/bin/supervise /service/ui
/usr/local/bin/supervise /service/nimbus
/usr/local/bin/supervise /service/supervisor
주: 우선 JDK 의 환경 변 수 를 지정 하고 슈퍼 바 이 스 는 모든 경 로 를 사용 해 야 합 니 다.

좋은 웹페이지 즐겨찾기