解決storm叢集上的nimbus,supervisor,ui結點自動停止的問題

百聯達發表於2016-03-23
一:解決方案
“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掉,自動就會重啟。

二:daemontools安裝

mkdir -p /package

cd /package/

wget

等待下載安裝包,然後解壓編譯。

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 <errno.h>”,然後再編譯。

./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.

三:storm ui、nimbus、supervisor配置

首先進入service目錄。

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


supervisor的配置:

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

四:啟動

nohup supervise /service/ui &

nohup supervise /service/nimbus &

nohup supervise /service/supervisor & 五:補充說明 如果不想讓某個服務自動重啟,用命令ps -ef|grep supervise檢視,把相應的程式給kill掉服務就不會自動重啟了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2062528/,如需轉載,請註明出處,否則將追究法律責任。

相關文章