storm 클 러 스 터 의 nimbus 와 슈퍼 바 이 저 결점 을 해결 하 는 이유 없 이 자동 으로 정지 하 는 방안
4368 단어 Storm
좋아!기왕 문제 에 부 딪 혔 으 니 우리 문 제 를 해결 합 시다!우선 인터넷 을 검색 해 보 니 우리 와 같은 문제 가 많 았 지만 좋 은 해결 방안 을 찾 지 못 했다.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 의 환경 변 수 를 지정 하고 슈퍼 바 이 스 는 모든 경 로 를 사용 해 야 합 니 다.