http://my.oschina.net/vbird/blog/384043
ZooKeeper伪分布式集群安装
伪分布式集群:在一台Server中,启动多个ZooKeeper的实例。
上传并解压安装包
1
2
3
|
cd
/usr
rz -by
tar
xf zookeeper-3.4.6.
tar
.gz
|
创建实例配置文件
1
2
3
4
|
cd
zookeeper-3.4.6
/conf
cp
zoo_sample.cfg zoo1.cfg
cp
zoo_sample.cfg zoo2.cfg
cp
zoo_sample.cfg zoo3.cfg
|
修改配置文件
实例1的配置:
1
2
3
4
5
6
7
8
9
10
11
|
vi
zoo1.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=
/tmp/zookeeper/d_1
clientPort=2181
dataLogDir=
/usr/zookeeper-3
.4.6
/logs_1
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
|
实例2的配置:
1
2
3
4
5
6
7
8
9
10
11
|
vi
zoo2.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=
/tmp/zookeeper/d_2
clientPort=2182
dataLogDir=
/usr/zookeeper-3
.4.6
/logs_2
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
|
实例3的配置:
1
2
3
4
5
6
7
8
9
10
11
|
vi
zoo3.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=
/tmp/zookeeper/d_3
clientPort=2183
dataLogDir=
/usr/zookeeper-3
.4.6
/logs_3
server.1=localhost:2887:3887
server.2=localhost:2888:3888
server.3=localhost:2889:3889
|
准备启动环境
1
2
3
4
5
6
7
8
9
10
11
|
mkdir
/tmp/zookeeper/d_1
mkdir
/tmp/zookeeper/d_2
mkdir
/tmp/zookeeper/d_3
mkdir
/usr/zookeeper-3
.4.6
/logs_1
mkdir
/usr/zookeeper-3
.4.6
/logs_2
mkdir
/usr/zookeeper-3
.4.6
/logs_3
echo
"1"
>
/tmp/zookeeper/d_1/myid
echo
"2"
>
/tmp/zookeeper/d_2/myid
echo
"3"
>
/tmp/zookeeper/d_3/myid
|
启动集群
1
2
3
|
/usr/zookeeper-3
.4.6
/bin/zkServer
.sh start zoo1.cfg
/usr/zookeeper-3
.4.6
/bin/zkServer
.sh start zoo2.cfg
/usr/zookeeper-3
.4.6
/bin/zkServer
.sh start zoo3.cfg
|
查看是否启动成功
1
2
3
4
5
6
7
8
9
|
jps
#看到类似下面的进程就表示3个实例均启动成功
13419 QuorumPeerMain
13460 QuorumPeerMain
13561 Jps
13392 QuorumPeerMain
#如果未成功启动,可以到zookeeper.out文件中查看启动失败的日志信息。
|
查看节点状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
[root@localhost ~]
# /usr/zookeeper-3.4.6/bin/zkServer.sh status zoo1.cfg
JMX enabled by default
Using config:
/usr/zookeeper-3
.4.6
/bin/
..
/conf/zoo1
.cfg
Mode: follower
[root@localhost ~]
# /usr/zookeeper-3.4.6/bin/zkServer.sh status zoo2.cfg
JMX enabled by default
Using config:
/usr/zookeeper-3
.4.6
/bin/
..
/conf/zoo2
.cfg
Mode: leader
[root@localhost ~]
# /usr/zookeeper-3.4.6/bin/zkServer.sh status zoo3.cfg
JMX enabled by default
Using config:
/usr/zookeeper-3
.4.6
/bin/
..
/conf/zoo3
.cfg
Mode: follower
#发现实例2为leader,实例1和实例3均为follower
|
至此,一个ZK的伪分布式集群搭建完毕。
-----------------------
测试:
$ bin/zkCli.sh -server localhost:2181
Connecting to localhost:21812016-01-22 15:26:20,870 - INFO [main:Environment@97] - Client environment:zookeeper.version=3.3.6-1366786, built on 07/29/2012 06:22 GMT
2016-01-22 15:26:20,873 - INFO [main:Environment@97] - Client environment:host.name=localhost
2016-01-22 15:26:20,874 - INFO [main:Environment@97] - Client environment:java.version=1.6.0_24
2016-01-22 15:26:20,874 - INFO [main:Environment@97] - Client environment:java.vendor=Sun Microsystems Inc.
2016-01-22 15:26:20,875 - INFO [main:Environment@97] - Client environment:java.home=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
2016-01-22 15:26:20,876 - INFO [main:Environment@97] - Client environment:java.class.path=/usr/zookeeper-3.3.6/bin/../build/classes:/usr/zookeeper-3.3.6/bin/../build/lib/*.jar:/usr/zookeeper-3.3.6/bin/../zookeeper-3.3.6.jar:/usr/zookeeper-3.3.6/bin/../lib/log4j-1.2.15.jar:/usr/zookeeper-3.3.6/bin/../lib/jline-0.9.94.jar:/usr/zookeeper-3.3.6/bin/../src/java/lib/*.jar:/usr/zookeeper-3.3.6/bin/../conf:
2016-01-22 15:26:20,876 - INFO [main:Environment@97] - Client environment:java.library.path=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/lib/amd64:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2016-01-22 15:26:20,877 - INFO [main:Environment@97] - Client environment:java.io.tmpdir=/tmp
2016-01-22 15:26:20,877 - INFO [main:Environment@97] - Client environment:java.compiler=<NA>
2016-01-22 15:26:20,878 - INFO [main:Environment@97] - Client environment:os.name=Linux
2016-01-22 15:26:20,878 - INFO [main:Environment@97] - Client environment:os.arch=amd64
2016-01-22 15:26:20,879 - INFO [main:Environment@97] - Client environment:os.version=2.6.32-220.13.1.el6.x86_64
2016-01-22 15:26:20,879 - INFO [main:Environment@97] - Client environment:user.name=root
2016-01-22 15:26:20,880 - INFO [main:Environment@97] - Client environment:user.home=/root
2016-01-22 15:26:20,880 - INFO [main:Environment@97] - Client environment:user.dir=/usr/zookeeper-3.3.6
2016-01-22 15:26:20,882 - INFO [main:ZooKeeper@379] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@a4a63d8
Welcome to ZooKeeper!
2016-01-22 15:26:20,906 - INFO [main-SendThread():ClientCnxn$SendThread@1058] - Opening socket connection to server localhost/127.0.0.1:2181
2016-01-22 15:26:20,970 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@947] - Socket connection established to localhost/127.0.0.1:2181, initiating session
JLine support is enabled
[zk: localhost:2181(CONNECTING) 0] 2016-01-22 15:26:21,068 - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@736] - Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x1526831052b0000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null