1、什么是单机部署
一台服务器上面部署一个单机版本的zookeeper服务,用于提供服务。
2、什么是集群部署?
集群部署就是多台服务器上面各部署单独的一个zookeeper服务,然后组建一个集群
3、什么是伪集群部署?
伪集群部署就是一台服务器上面部署多个zookeeper服务,组件的一个集群
具体采用单机,集群还是伪集群,看自己需求
单机版本部署:
1、使用root用户创建安装用户,如果已经有安装用户可以忽略。
useradd zookeeper //创建zookeeper用户
passwd zookeeper // 设置密码,输入两次,这里密码为zookeeper
su - zookeeper // 切换到zookeeper用户
2、获取安装包(如果不能联网,就可以用能连接网络的机器下载然后上传)
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
3、安装
tar zxvf zookeeper-3.4.9.tar.gz // 解压安装包
cd zookeeper-3.4.9/conf/ // 进入到配置文件目录
cp zoo_sample.cfg zoo.cfg // 复制一份配置文件,文件名为zoo.cfg 此处不修改配置文件,用默认配置
cd ../bin/ // 进入到启动目录
./zkServer.sh start // 执行启动命令启动
./zkServer.sh status // 查看是否启动成功
访问URL: 172.10.20.111:2181 // 172.10.20.111是具体部署的IP, 2181是默认的端口
伪集群部署:
基于centos6.7操作系统搭建,各种操作系统的系统命令会有差别。单机集群,用户zookeeper
1、获取安装包(连不了网络的可以先下载再上传)
wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2、新建存放数据和zk的文件夹和集群用的myid文件
mkdir -p zkserver1/data
cd zkserver1/data
vi myid //这个文件需要输入一个数字 比如 1
3、解压安装包
cp zookeeper-3.4.9.tar.gz zkserver1/
cd zkserver1/
tar zxvf zookeeper-3.4.9.tar.gz
4、修改zk配置
cd zookeeper-3.4.9/conf/
cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
dataDir=/tmp/zookeeper 配置为存放数据的data dataDir=/home/zookeeper/zkserver1/data
最后面新增下面内容:
server.1=172.20.20.50:2887:3887
server.2=172.20.20.50:2888:3888
server.3=172.20.20.50:2889:3889
格式说明:
server.myid=ip:port1:port2
myid:zk集群中单个zk标识。也是data/myid 中myid文件中的值
IP:具体部署zk的IP,单机部署集群,ip都是同一个
port1:zk集群成员的信息交换
port2:在leader挂掉时专门用来进行选举leader所用
5、将已配置好的zk复制两份,修改另外两份的zoo.cfg配置,下面是需要修改的三个地方:
a、myid文件中的值
b、clientPort=2181 对外暴露的端口。不通IP的机器端口可以不一样 此处以2181,2183 为例
c、dataDir=/home/zookeeper/zkserver1/data
6、启动每个zk
cd /home/zookeeper/zkserver1/zookeeper-3.4.9/bin
./zkServer.sh start
7、验证是否搭建成功
[zookeeper@edsp bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/zookeeper/server3/zookeeper-3.4.9/bin/../conf/zoo.cfg
Mode: follower //显示当前zk是follwer 还是Leader.
集群部署:
跟伪集群部署一样,只不过配置需要变化一下,IP需要变化,端口可以每台机器使用同一个
server.1=172.20.20.50:2888:3888
server.2=172.20.20.51:2888:3888
server.3=172.20.20.52:2888:3888
clientPort=2181 // 这个可以不用改变都是使用同一个,由于不同的机器不会存在端口冲突的情况了