zookeeper启动报错:already running as process xxx

Zookeeper一直跑得都是正常的,但是今天不知道为什么启动不起来了,这里记录一下解决问题的过程。

启动Zookeeper

bin/zkServer.sh start

错误信息:

[dong@spark01 zookeeper]# bin/zkServer.sh start
JMX enabled by default
Using config: /opt/cdh/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 2842.

zookeeper启动报错alreadyRunningAsProcessXXX_01.png
查看是否真的启动:
zookeeper启动报错alreadyRunningAsProcessXXX_02.png
Zookeeper的进程名叫QuorumPeerMain
ok,可以看下启动脚本的代码(可以在代码中搜一下相关的错误提示):

if [ -f $ZOOPIDFILE ]; then  ## 判断$ZOOPIDFILE这个文件是否存在
  ## kill -0 表示不发送任何信号给PID对应的进程,但是仍会对变量值PID对应的
  ## 进程是否存在进行检查,如果$pid对应的进程存在,则返回0,不存在返回1
  ## /dev/null 2>&1; 表示不输出错误信息
  if kill -0 `cat $ZOOPIDFILE` > /dev/null 2>&1; then 
     # 这就是我们看到的报错了
     echo $command already running as process `cat $ZOOPIDFILE`.
     exit 0
  fi  
fi  

分析启动脚本我们可以知道错误的原因是:
机器异常关闭缓存目录中残留PID文件
嗯,之前的时候服务器异常断电过,
OK,那就查看一下缓存目录吧:

[dong@spark01 zkData]$ ll

zookeeper启动报错alreadyRunningAsProcessXXX_03.png
删除此文件:

[dong@spark01 zkData]$ rm -rf zookeeper_server.pid

再次启动:

bin/zkServer.sh start

bin/zkServer.sh status

启动正常:
zookeeper启动报错alreadyRunningAsProcessXXX_04.png

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值