您的位置:首页 > 其它

zookeeper单机部署及集群(单机伪集群)部署

2017-03-16 14:42 513 查看
一、单机部署
下载源码
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
解压
tar -xvzf zookeeper-3.4.9.tar.gz -C /usr/local/
软连接
cd /usr/local/
ln -s zookeeper-3.4.9 zookeeper
修改配置文件
cd /usr/local/zookeeper/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
暂时只需要修改数据和日志目录
dataDir=/data/zookeeper
启动程序

/usr/local/zookeeper/bin/zkServer.sh start
期间出现启动的问题,报错启动失败 nohup: 无法运行命令"java",可修改zkServer.sh第140行的
nohup "$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
--$JAVA将此变量修改为适合自己主机的即可,如修改为$JAVA_HOME/bin/java
启动成功后进行连接测试
/usr/local/zookeeper/bin/zkCli.sh -server 127.0.0.1:2181
Connecting to 127.0.0.1:2181
...
[zk: 127.0.0.1:2181(CONNECTED) 0]
代表服务链接成功

[b]二、集群(单机多进程伪集群)[/b]
创建目录

mkdir zookeeper-3181 zookeeper-3182 zookeeper-3183
#zookeeper-3181的配置为
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/path/zookeeper/log/zookeeper-3181 #其他两个目录自定义
clientPort=3181 #其他两个目录端口分别设置为3182和3183
autopurge.snapRetainCount=3
autopurge.purgeInterval=72
server.1=localhost:2287:3387
server.2=localhost:2288:3388
server.3=localhost:2289:3389
#启动zookeeper-3181
sh zookeeper-3181/bin/zkServer.sh start
启动过程中,查看zookeeper.out ,报错如下:
e.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /path/zookeeper/zookeeper-3181/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:144)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /path/zookeeper/log/zookeeper-3181/myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:362)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:140)
/path/zookeeper/log/zookeeper-3181/myid file is missing 这个文件没有存在,解决如下:
echo 1 >/path/zookeeper/log/zookeeper-3181/myid
echo 2 >/path/zookeeper/log/zookeeper-3182/myid
echo 3 >/path/zookeeper/log/zookeeper-3183/myid
执行完成后,重新启动
sh zookeeper-3181/bin/zkServer.sh start
sh zookeeper-3182/bin/zkServer.sh start
sh zookeeper-3183/bin/zkServer.sh start
集群测试
登录到3183端口

sh zookeeper-3183/bin/zkCli.sh -server 127.0.0.1:3183
#设置
[zk: 127.0.0.1:3183(CONNECTED) 0] create /testpro zookeeptest
Created /testpro
[zk: 127.0.0.1:3183(CONNECTED) 1] get /testpro
zookeeptest
cZxid = 0x100000002
ctime = Fri Mar 17 10:05:03 CST 2017
mZxid = 0x100000002
mtime = Fri Mar 17 10:05:03 CST 2017
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: 127.0.0.1:3183(CONNECTED) 2]
登录到3182端口检查同步情况
sh zookeeper-3183/bin/zkCli.sh -server 127.0.0.1:3182
[zk: 127.0.0.1:3182(CONNECTED) 0] get /testpro
zookeeptest
cZxid = 0x100000002
ctime = Fri Mar 17 10:05:03 CST 2017
mZxid = 0x100000002
mtime = Fri Mar 17 10:05:03 CST 2017
pZxid = 0x100000002
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 11
numChildren = 0
[zk: 127.0.0.1:3182(CONNECTED) 1]

三、节点接管测试
目前情况为3182端口为主节点,测试此端口挂掉后,其他从节点是否正常升级为主节点
--检查
sh zookeeper-3182/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/gdiex/zookeeper/zookeeper-3182/bin/../conf/zoo.cfg
Mode: leader
--停止
sh zookeeper-3182/bin/zkServer.sh stop
ZooKeeper JMX enabled by default
Using config: /home/gdiex/zookeeper/zookeeper-3182/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
#检查,发现3183升级为主节点
sh zookeeper-3183/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/gdiex/zookeeper/zookeeper-3183/bin/../conf/zoo.cfg
Mode: leader
#-----------华丽OVER线-----------#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集群 Zookeeper