리눅스에서 일반 계정으로 hbase 를 실행시키고 있었고 bin/stop-hbase.sh 실행시 종료가 안되는 경우가 발생했다. 계속 period만 찍히는 현상이 발생. "..............."


bin/stop-hbase.sh을 확인해보니, 스크립에서는 pid 정보를 보고 kill을 하는데, pid값이 잘못되어 있었다. 


pid=${HBASE_PID_DIR:-/tmp}/hbase-$HBASE_IDENT_STRING-master.pid


while kill -0 `cat $pid` > /dev/null 2>&1; do

  echo -n "."

  sleep 1;

done


확인해보니. HBASE_PID_DIR를 지정을 안했었다. 디폴트로 /tmp로 되어 있는데, 일반계정으로 실행시키다 보니 write 를 할 수 없었던 것 같다.


hbase-env.sh에서 HBASE_PID_DIR을 실행계정에서 접근할 수 있도록 했다. 



$ vi hbase-env.sh 


export HBASE_PID_DIR=/home/hadoop/pids



그리고, hadoop/pids 디렉토리를 생성했다. 


$mkdir -p /home/hadoop/pids



bin/start-hbase.sh  후 jps 결과로 나온 pid 확인


$ cat hbase-1001237-master.pid 

13035

$ cat hbase-1001237-regionserver.pid 

13193


정상적으로 stop되었음을 확인했다. 


$ bin/stop-hbase.sh 

stopping hbase...........

$





Posted by '김용환'
,