在启动时可能会出现“zookeeper_server.pid: No such file or directory”这种问题,解决方案如下来自“http://www.xuebuyuan.com/1022921.html”,使用vi打开zkServer.sh文件,按下方法更改插入红色部分文字即可:

dataDir应该是zookeeper进程内部建立的, 并且有一定延迟, 因此将zookeeper进程id写入到dataDir下的pidfile时, dataDir还没有建立好, 因此就出现了上述情况.解决办法很简单, 在写入pid之前先判断一下datadir是否存在, 让zookeeper有时间做完初始化, 然后再将pid写入即可.

-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
zkpid=$!;
if [ $? -eq 0 ] 
then
#新加开始
  while [ ! -d `dirname $ZOOPIDFILE` ]
  do  
    sleep 1;
  done
#结束
  if /bin/echo -n $zkpid > "$ZOOPIDFILE"
  then
    sleep 1
    echo STARTED
  else
    echo FAILED TO WRITE PID
    exit 1
  fi  
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐