今天啟動zookeeper的時候報錯:
[root@hadoop-one zookeeper-3.4.5]# bin/zkServer.sh start
JMX enabled by default
Using config: /root/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 947..
看了下947這個進程,發現是linux系統進程,應該不會沖突。又檢查了下zookeeper會使用到的幾個端口號,也都沒有被占用。
后來打開bin/zkServer.sh啟動腳本,搜了下會拋出上面那段話的地方:
echo -n "Starting zookeeper ... "
if [ -f $ZOOPIDFILE ]; then
if kill -0 `cat $ZOOPIDFILE` > /dev/null 2>&1; then
echo $command already running as process `cat $ZOOPIDFILE`.
exit 0
fi
fi
看到$ZOOPIDFILE,想到應該是進程ID文件已經存在,導致啟不起來。
去dataDir下看,果然有一個zookeeper_server.pid,最后一次修改時間是幾天前了。由於機器上次是因為斷電異常關閉,大概導致了這個pid file的殘留。
刪掉,重啟,OK。
