最近使用zookeeper发现, 首次启动zookeeper时, 都会遇到一个错误:
$ bin/zkServer.sh start
JMX enabled by default
Using config: /home/nauhcud/workspace/zookeeper/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... bin/zkServer.sh: 162: cannot create /tmp/zookeeper/zookeeper_server.pid: Directory nonexistent
FAILED TO WRITE PID
查看进程发现zookeeper进程存在, 并可以正常使用. dataDir "/tmp/zookeeper/" 也在.
kill掉zookeeper进程重新启动, 一切正常.
删掉dataDir, 问题依旧.
查看启动脚本, 发现start逻辑如下:
start)
...
nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
if [ $? -eq 0 ]
then
if /bin/echo -n $! > "$ZOOPIDFILE"
then
sleep 1
echo STARTED
else
echo FAILED TO WRITE PID #这句说明写入Pid出现了问题
exit 1
fi
...
纵观整个脚本, dataDir没有出现, 因此, dataDir应该是zookeeper进程内部建立的, 并且有一定延迟, 因此将zookeeper进程id写入到dataDir下的pidfile时, dataDir还没有建立好, 因此就出现了上述情况.
解决办法很简单, 在写入pid之前先判断一下datadir是否存在, 让zookeeper有时间做完初始化, 然后再将pid写入即可.
start)
...
nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-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
...
相关推荐
zookeeper启动脚本,zookeeper启动脚本,zookeeper启动脚本
启动zookeeper小脚本,ex:zk1 start.... zk2 start..... zk3 start....
zookeeper关闭脚本,zookeeper关闭脚本,zookeeper关闭脚本
此附件是快速搭建zookeeper集群的脚本,方便灵活,减少了自己一大堆复杂的操作,像运行服务一样执行几条start,stop等命令即可轻松完成集群搭建。
大家都知道在Hadoop集群开启/关闭Zookeeper集群的时候,需要到不同的节点ZK的bin目录下执行对应的启动/关闭脚本,十分的麻烦。所以就有了以下脚本的产生~ 一键开启Zookeeper vim /export/servers/zookeeper-3.4.5...
含有hbase启动脚本,xsync分发脚本,hadoop启动脚本,zookeeper启动脚本,jpsall脚本,整个集群启动脚本,有详细的安装教程文件,对应pdf版本和doc版本都有。非常详细,包学会。进行测试一下记得检查是否安装成功,...
zookeeper实现监测心跳,调用shell脚本,保证redis高可用
zookeeper一键式安装shell脚本,无需手动搭建集群环境,脚本运行即可自动配置
hadoop 高可用启动脚本,运行启动zookeeper集群和hadoop ha集群
Linux下,通过shell编写的自动化安装zookeeper的脚本,内含zookeeper-3.4.6
测试环境一键安装zookeeper伪分布式集群,安装之前,请先看脚本,下载相应的zk包
zookeeper界面化工具ZooInspector,linux环境使用java启动。 一、工具 ZooInspector作用: 可以利用该工具图形化浏览ZK中的文件及文件夹 下载地址: ...
NULL 博文链接:https://qindongliang.iteye.com/blog/2114421
如下所示,手动指定zookeeper和kafka的bin目录、配置文件以及需要添加定时任务的周期几个参数后,执行当前脚本,脚本会自动添加定时任务并开始监控zookeeper及kafka进程,如果进程不存在则重启并放入后台,存在则...
单机安装非常简单,只要获取到Zookeeper的压缩包并解压到某个目录如:/home/zookeeper-3.2.2下,Zookeeper的启动脚本在bin目录下,Linux下的启动脚本是zkServer.sh,在3.2.2这个版本Zookeeper没有提供windows下的...
详见http://blog.csdn.net/cashey1991/article/details/41384009
zookeeper-3.4.14,zookeeper启动,需要解压之后,并修改配置文件;zookeeper-3.4.14,zookeeper启动,需要解压之后,并修改配置文件
尚硅谷版本的视频笔记资源,留着自己备份 怕丢
spark+hadoop+zookeeper 大数据平台搭建脚本,亲测通过,适用于大数据初学者在虚拟机玩
搭建问题遇到的总结几点,便于找查问题 1)检查配置文件是否有...当ZooKeeper服务器实例启动时,它从myid文件读取其id ,然后使用该id从配置文件中读取,查找它应该监听的端口。 第二,myid文件中的整数格式不对,或者