共计 3635 个字符,预计需要花费 10 分钟才能阅读完成。
【系统】CentOS 6.5
集群部署
【软件】准备好 jdk 环境,此次我们的环境是 open_jdk1.8.0_101
zookeeper-3.4.6.tar.gz
【步骤】
1. 准备条件
如果有内部 dns 或者外网有域名,则直接使用域名
如果没有需要修改 /etc/hosts 文件,或者直接使用 IP
集群规划
主机类型 IP 地址 域名
zookeeper1 192.168.1.1zookeeper1.chinasoft.com
zookeeper2 192.168.1.2zookeeper2.chinasoft.com
zookeeper3 192.168.1.3zookeeper3.chinasoft.com
注意:zookeeper 因为有主节点和从节点的关系,所以部署的集群台数最好为奇数个,否则可能出现脑裂导致服务异常
2. 安装
下载地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/
解压
tar -zxf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6
拷贝配置文件,修改完成后分发给其他节点
cd /data/zookeeper-3.4.6/
cp zoo_sample.cfg zoo.cfg
cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper-3.4.6/data
dataLogDir=/data/zookeeper-3.4.6/logs
clientPort=2181
server.1=u04rtv01.yaya.corp:2888:3888
server.2=u04rtv02.yaya.corp:2888:3888
server.3=u04rtv03.yaya.corp:2888:3888
3. 创建 data 和 Log 文件夹
mkdir /data/zookeeper-3.4.6/data
mkdir /data/zookeeper-3.4.6/logs
4、在 zoo.cfg 中的 dataDir 指定的目录下,新建 myid 文件。
例如:$ZK_INSTALL/data 下,新建 myid。在 myid 文件中输入 1。表示为 server.1。
如果为 snapshot/d_2,则 myid 文件中的内容为 2,依此类推。
启动:在集群中的每台主机上执行如下命令
bin/zkServer.sh start
查看状态,可以看到其中一台为主节点,其他两台为从节点:
bin/zkServer.sh status
主节点:
./zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: leader
从属节点:
./zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower
停止:
bin/zkServer.sh stop
连接:
bin/zkCli.sh -server zookeeper1:2181
bin/zkCli.sh -server zookeeper2:2181
bin/zkCli.sh -server zookeeper3:2181
报错:
原因就是没有在 dataDir 目录下创建 myid 文件并且赋值(如 1、2、3 分别代表集群中的 server1,server2,server3)
2016-08-22 17:55:16,145 [myid:] – INFO [main:QuorumPeerConfig@103] – Reading configuration from: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
2016-08-22 17:55:16,150 [myid:] – INFO [main:QuorumPeerConfig@340] – Defaulting to majority quorums
2016-08-22 17:55:16,150 [myid:] – ERROR [main:QuorumPeerMain@85] – Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:123)
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: /data/yunva/zookeeper-3.4.6/data/myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:350)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:119)
… 2 more
Invalid config, exiting abnormally
单机部署——适用于开发测试
tar -zxvf zookeeper-3.4.6.tar.gz
cd zookeeper-3.4.6/conf
cp zoo_sample.cfg zoo.cfg
创建日志目录
mkdir /data/yunva/zookeeper-3.4.6/data
mkdir /data/yunva/zookeeper-3.4.6/logs
配置:conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/yunva/zookeeper-3.4.6/logs
dataLogDir=/data/yunva/zookeeper-3.4.6/logs
clientPort=2181
# 自动清除日志文件
autopurge.snapRetainCount=20
autopurge.purgeInterval=48
启动:
bin/zkServer.sh start
连接到 Zookeeper:
bin/zkCli.sh -server 127.0.0.1:2181 适用于 Java 开发
查看状态:
bin/zkServer.sh status
JMX enabled by default
Using config: /data/yunva/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: standalone
在 CentOS7 上安装 Zookeeper-3.4.9 服务 https://www.linuxidc.com/Linux/2016-09/135052.htm
ZooKeeper 官方文档翻译——ZooKeeper Overview 3.4.6 https://www.linuxidc.com/Linux/2016-12/138025.htm
CentOS 下 ZooKeeper 3.4.8 集群环境搭建 https://www.linuxidc.com/Linux/2016-12/137958.htm
CentOS 7 下 Zookeeper 集群安装 https://www.linuxidc.com/Linux/2017-01/139733.htm
分布式服务 Dubbo+Zookeeper 安全认证 https://www.linuxidc.com/Linux/2017-12/149605.htm
Linux 下安装 Zookeeper 集群 https://www.linuxidc.com/Linux/2017-01/139545.htm
Linux 下 Zookeeper 集群的安装 https://www.linuxidc.com/Linux/2017-03/141400.htm