1、下载ZooKeeper并解压,其中bin目录是ZooKeeper的可执行脚本目录,包含服务进程、客户端等脚本。conf是配置文件目录,其中zoo_sample.cfg是样例配置文件,一般都是复制一个然后改为自己的名称如zoo.cfg。目录如下:
2、部署ZooKeeper单点开发环境
# 心跳时间
tickTime=2000
# 多少个心跳时间内,允许其他server连接并初始化数据
initLimit=10
# 多少个tickTime内,允许follower节点同步
syncLimit=5
# 存放内存数据文件目录,根据实际环境修改
dataDir=E:\zookeeper-3.4.13\data
# 存放日志文件目录,根据实际环境修改
dataLogDir=E:\zookeeper-3.4.13\logs
# server.x:配置集群主机信息,格式:[hostname]:[通信端口]:[选举端口],根据自己的主机信息修改
server.1= huangqh-PC:2888:3888
# 监听端口,使用默认2181端口
clientPort=2181
# 最大并发客户端数,用于防止DOS的,设置为0是不加限制
maxClientCnxns=60
-
2.2、配置zookeeper环境变量,在对应的系统中添加ZOOKEEPER_HOME和ZOOKEEPER_HOME/bin到Path中。
-
2.3、然后运行bin/zkServer.cmd 启动zookeeper服务,运行zookeeper需要java环境,没有的自行安装配置,运行如下:
3、部署ZooKeeper集群,这里介绍的集群为2台linux主机组成。主机信息如下:
11.1.2.8 zServer-2-8
11.1.2.10 zServer-2-10
# 心跳时间
tickTime=2000
# 多少个心跳时间内,允许其他server连接并初始化数据
initLimit=5
# 多少个tickTime内,允许follower节点同步
syncLimit=2
# 存放内存数据文件目录,根据实际环境修改
dataDir=/opt/zookeeper-3.4.13/data/
# 存放日志文件目录,根据实际环境修改
dataLogDir=/opt/zookeeper-3.4.13/logs/
# 监听端口,使用默认2181端口
clientPort=2181
# server.x:配置集群主机信息,格式:[hostname]:[通信端口]:[选举端口],根据自己的主机信息修改
server.1= zServer-2-8:2888:3888
server.2= zServer-2-10:2888:3888
# 最大并发客户端数,用于防止DOS的,设置为0是不加限制
maxClientCnxns=60
# 最小的客户端session超时时间(单位是毫秒)
minSessionTimeout=4000
# maxSessionTimeout:最大的客户端session超时时间(单位是毫秒)
maxSessionTimeout=40000
zServer-2-8、zServer-2-10是二台需要部署zookeeper节点服务器的hostname,这个zoo.cfg文件在集群中所有节点的配置都是一样,直接复制就可以了。
server.1、server.2表示二个服务器,每个服务器在zookeeper集群中有一个唯一的id,这个id就是server.x中的这个x
-
3.3、配置每台服务器上的zookeeper的id。之前已经在每台机器上的zookeeper解压目录中创建了data文件夹和logs文件夹。那么,我们在data文件夹中创建一个文件叫myid,对于第一台服务器,文件的内容为1。依次在各台主机的data目录下生成myid文件设置id值,myid的内容要与前面配置的zoo.cfg中设置的server.x保持一致。如下:
主机zServer-2-8
myid
zoo.cfg
主机zServer-2-10
myid
zoo.cfg
127.0.0.1 localhost
11.1.2.8 zServer-2-8
11.1.2.10 zServer-2-10
# 一直回车即可生成公钥和私钥
ssh-keygen -t rsa
# 生成了公钥和私钥
cd /root/.ssh/
# 将公钥追加到授权文件中
cat id_rsa.pub >> authorized_keys
# 可以查看到里面追加的公钥
more authorized_keys
# 在zServer-2-8上将zServer-2-8的公钥复制到zServer-2-10
ssh-copy-id -i zServer-2-10或scp /root/.ssh/authorized_keys zServer-2-10:/root/.ssh/
# 在zServer-2-10上将zServer-2-10的公钥复制到zServer-2-8
ssh-copy-id -i zServer-2-10或scp /root/.ssh/authorized_keys zServer-2-8:/root/.ssh/
# 验证
ssh zServer-2-8
ssh zServer-2-10
-
3.6、在二台Linux服务器上依次执行zookeeper目录中的
bin/zkServer.sh start
,启动zookeeper,如果启动报错的,请参考Zookeeper启动失败排错,成功启动如下:
-
3.7、检验,jps查看进程,会出现进程QuorumPeerMain,小技巧:SecureCRT中怎么对多台机器同时执行一个命令