当前位置:  开发笔记 > 运维 > 正文

Ubuntu部署Zookeeper

Ubuntu部署Zookeeper:安装JDKsudoapt-getinstalldefault-jdk安装Zookeepercd/home/Hadoop/zookeepersudowgethttp://mirror.bjtu.edu.cn/apache/zookeeper/stable/zookee

Ubuntu部署Zookeeper:

安装JDK

sudo apt-get install default-jdk

安装Zookeeper

cd /home/Hadoop/zookeeper
sudo wget http://mirror.bjtu.edu.cn/apache/zookeeper/stable/zookeeper-3.3.5.tar.gz #下载zookeeper
tar xvzf zookeeper-3.3.5.tar.gz #解压
ln -s zookeeper-3.3.5 zookeeper #建立软链接

 

编辑/etc/profile 设置环境变量

# zookeeper配置
export ZOOKEEPER_INSTALL=/home/hadoop/zookeeper-3.3.5
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

 

配置zookeeper

cd /home/hadoop/zookeeper/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg

 

修改zoo.cfg文件内容为

syncLimit=5 # Leader与Follower之间的最大响应时间单位,响应超过syncLimit*tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
initLimit=10 # 投票选举新leader的初始化时间。
tickTime=2000 # Zookeeper服务器心跳时间,单位毫秒
clientPort=2181 # 连接端口
dataDir=/home/hadoop/zookeeper/data # 数据持久化路径
dataLogDir=/home/hadoop/zookeeper/log # 日志保存路径

 

启动zookeeper server

cd /home/hadoop/zookeeper/zookeeper/
bin/zkServer.sh start
bin/zkCli.sh -server localhost:2181

 

初次启动zookeeper server会看到报错信息:

FAILED TO WRITE PID

 

查看进程发现zookeeper进程存在, 并可以正常使用.

这是zkServer.sh脚本的一个BUG,dataDir是zookeeper进程内部建立的,并且有一定延迟, 因此将zookeeper进程id写入到dataDir下的pidfile时,dataDir还没有建立好, 因此就出现了上述情况。

解决办法修改脚本,等待dataDir目录创建完毕再将pid写入即可 

...
    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
推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有