在很多场合下zookeeper是必不可少的,比如hbase环境、kafka等。延续上次的安装套路(详参考hadoop-cdh5 分布式环境手工安装步骤),又手工部署了一下zookeeper。
解压:zookeeper-3.4.5-cdh5.3.2
环境变量:
vi /etc/profile.d/zookeeper.sh
#!/bin/bash
export ZOO_HOME=/opt/bin/zookeeper-3.4.5-cdh5.3.2
export ZOO_DATADIR=/opt/data/zookeeper
export ZOO_DATALOGDIR=/opt/data/zookeeper/log
export ZOOCFGDIR=/opt/conf/zookeeper
export ZOO_LOG_DIR=/opt/log/zookeeper
export ZOOCFG=zoo.cfg
|
准备路径:
mkdir -p
/opt/data/zookeeper
/opt/data/zookeeper/log
mkdir -p /opt/conf/zookeeper
/opt/log/zookeeper
|
分配
myid
myid 范围从 0 ~ 255 之间
在每台节点上,生产myid 文件在 $ZOO_DATADIR 目录下
配置文件:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/data/zookeeper
# the port at which the clients will connect
clientPort=2181
server.1=master1:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
|
在所有节点上启动zookeeper:
./execute_on_hosts.sh "cd \$ZOO_HOME; bin/zkServer.sh start"
|
查看日志:
following 状态:
2017-12-26 17:25:53,539 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:QuorumPeer@738] -
FOLLOWING
2017-12-26 17:25:53,539 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:ZooKeeperServer@162] - Created server with tickTime 2000 minSessionTimeout 4000 maxSessionTimeout 40000 datadir /opt/data/zookeeper/version-2 snapdir /opt/data/zookeeper/version-2
2017-12-26 17:25:53,539 [myid:1] - INFO [QuorumPeer[myid=1]/0:0:0:0:0:0:0:0:2181:Follower@63] -
FOLLOWING - LEADER ELECTION TOOK - 3
|
2017-12-26 17:25:35,429 [myid:3] - INFO [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:QuorumPeer@738] -
FOLLOWING
2017-12-26 17:25:50,447 [myid:3] - INFO [QuorumPeer[myid=3]/0:0:0:0:0:0:0:0:2181:Follower@63] -
FOLLOWING - LEADER ELECTION TOOK -
15027
|
leading状态:
2017-12-26 17:25:39,880 [myid:2] - INFO [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:QuorumPeer@750] -
LEADING
2017-12-26 17:25:54,906 [myid:2] - INFO [QuorumPeer[myid=2]/0:0:0:0:0:0:0:0:2181:Leader@348] -
LEADING - LEADER ELECTION TOOK - 15235
|
使用Zookeeper
命令行
$ bin/zkCli.sh -server master1:2181,slave1:2181,slave2:2181
Connecting to master1:2181,slave1:2181,slave2:2181
2017-12-26 18:05:48,607 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.5-cdh5.3.2--1, built on 02/24/2015 20:43 GMT
2017-12-26 18:05:48,610 [myid:] - INFO [main:Environment@100] - Client environment:host.name=master1
2017-12-26 18:05:48,610 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.7.0_60
2017-12-26 18:05:48,612 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2017-12-26 18:05:48,612 [myid:] - INFO [main:Environment@100] - Client environment:java.home=/opt/jdk1.7.0_60/jre
2017-12-26 18:05:48,612 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../build/classes:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../build/lib/*.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../share/zookeeper/zookeeper-3.4.5-cdh5.3.2.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../share/zookeeper/slf4j-log4j12-1.7.5.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../share/zookeeper/slf4j-api-1.7.5.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../share/zookeeper/netty-3.2.2.Final.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../share/zookeeper/log4j-1.2.16.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../share/zookeeper/jline-0.9.94.jar:/opt/bin/zookeeper-3.4.5-cdh5.3.2/bin/../src/java/lib/*.jar:/opt/conf/zookeeper:
2017-12-26 18:05:48,612 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2017-12-26 18:05:48,612 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2017-12-26 18:05:48,613 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
2017-12-26 18:05:48,613 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Linux
2017-12-26 18:05:48,613 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
2017-12-26 18:05:48,613 [myid:] - INFO [main:Environment@100] - Client environment:os.version=3.10.0-693.el7.x86_64
2017-12-26 18:05:48,614 [myid:] - INFO [main:Environment@100] - Client environment:user.name=root
2017-12-26 18:05:48,614 [myid:] - INFO [main:Environment@100] - Client environment:user.home=/root
2017-12-26 18:05:48,614 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=/opt/bin/zookeeper-3.4.5-cdh5.3.2
2017-12-26 18:05:48,615 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=master1:2181,slave1:2181,slave2:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@7faea002
Welcome to ZooKeeper!
2017-12-26 18:05:48,635 [myid:] - INFO [main-SendThread(slave1:2181):ClientCnxn$SendThread@975] - Opening socket connection to server slave1/192.168.1.29:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2017-12-26 18:05:48,643 [myid:] - INFO [main-SendThread(slave1:2181):ClientCnxn$SendThread@852] - Socket connection established to slave1/192.168.1.29:2181, initiating session
2017-12-26 18:05:48,671 [myid:] - INFO [main-SendThread(slave1:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server slave1/192.168.1.29:2181, sessionid = 0x260922484f10000, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null
[zk: master1:2181,slave1:2181,slave2:2181(CONNECTED) 0] create /mynode helloworld
Created /mynode
[zk: master1:2181,slave1:2181,slave2:2181(CONNECTED) 1] ls /
[mynode, zookeeper]
[zk: master1:2181,slave1:2181,slave2:2181(CONNECTED) 2] ls /
[mynode, zookeeper]
[zk: master1:2181,slave1:2181,slave2:2181(CONNECTED) 3] stat /mynode
cZxid = 0x500000002
ctime = Tue Dec 26 18:05:53 CST 2017
mZxid = 0x500000002
mtime = Tue Dec 26 18:05:53 CST 2017
pZxid = 0x500000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0
[zk: master1:2181,slave1:2181,slave2:2181(CONNECTED) 4] quit
Quitting...
2017-12-26 18:20:18,004 [myid:] - INFO [main:ZooKeeper@684] - Session: 0x16092248af80000 closed
2017-12-26 18:20:18,004 [myid:] - INFO [main-EventThread:ClientCnxn$EventThread@512] - EventThread shut down
|