下载地址:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.6/
下载完成后,将安装包上传值服务器,解压
tar xvzf zookeeper-3.4.6.tar.gz
进入解压后的目录
cd zookeeper-3.4.6
找到conf文件夹,进去
cd conf
拷贝一份 zoo_sample.cfg到 zoo.cfg
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg
tickTime=2000
dataDir=/opt/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=10.5.3.100:2888:3888
server.2=10.5.3.101:2888:3888
server.3=10.5.3.102:2888:3888
然后cd到datadir目录创建一个文件名字为myid的文本文件,内容是当前服务器的id
退回上一级目录,找到bin目录,在每个节点执行如下命令启动
./zkServer.sh start
当发生如下异常时
2016-11-16 15:49:01,242 [myid:1] - WARN [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Learner@236] - Unexpected exception, tries=0, connecting to hadoop-d1/10.5.3.101:2888
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.apache.zookeeper.server.quorum.Learner.connectToLeader(Learner.java:228)
at org.apache.zookeeper.server.quorum.Follower.followLeader(Follower.java:69)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:846)
一方面是检查其它节点是否启动,另一方面是检查2888、3888端口是否启动监听,有时监听在127.0.01上也会报这个错。
推荐zk客户端api是curator
<dependency>
<groupId>com.netflix.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>1.3.3</version>
</dependency>
zookeeper还有许多第三方webui系统,提供不同的功能,推荐http://www.boywell.com/shovel/index.html这个,功能丰富。