ZooKeeper的安装包括单机模式安装和集群模式安装。
(1)单机模式较简单,是指只部署一个zk进程,客户端直接与该zk进程进行通信;
(2)集群模式是指在多个服务器上部署zk进程,以集群形式对外提供协调服务。(本文我们以 三台主机为一个集群 为例)
1.要有一个集群;
https://blog.csdn.net/qq_45830251/article/details/121131139
2.jdk(一般是 1.8,尽量 去官网下载,包含(jre));
ZooKeeper是用Java编写的,运行在Java环境上,因此,在部署zk的机器上需要安装Java运行环境。为了正常运行zk,我们需要JRE1.6或者以上的版本。
官网: Java Downloads | Oracle
安装 可参考:https://blog.csdn.net/qq_45830251/article/details/120465672
3.软件下载:官网下载;
目前最新的稳定版本为 3.7.x 版本,用户可以自行选择一个速度较快的镜像来下载即可。
zookeeper: Apache ZooKeeper(带有 bin)
安装ZooKeeper
1.从官网下载的ZooKeeper安装包,上传至Linux上
2.对tar包进行解压
sha@sl3:~$ tar -zxvf zookeeper-3.7.0-bin.tar.gz
将解压后的 apache-zookeeper-3.7.0-bin 整体移到 /usr/local/zookeeper(zookeeper会自行建立)
sha@sl3:~$ sudo mv apache-zookeeper-3.7.0-bin /usr/local/zookeeper
打开 /usr/local 可以看到 zookeeper 目录
配置环境变量
(1)添加路径
sha@sl3:/usr/local$ sudo vi /etc/profile
添加以下内容并保存退出:
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
sha@sl3:/usr/local$ source /etc/profile
修改配置文件
(1)打开 zookeeper 下的 conf 目录,找到 zoo_sample.cfg 文件
将该文件进行 复制
sha@sl3:/usr/local/zookeeper/conf$ cp zoo_sample.cfg zoo.cfg
对 zoo.cfg 文件进行修改
sha@sl3:/usr/local/zookeeper/conf$ sudo vi zoo.cfg
输入以下内容:
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
server.1=node1:2888:3888 /*(主机名, 心跳端口、数据端口)*/--与自己集群的主机名对应修改
server.2=node2:2888:3888
server.3=node3:2888:3888
注意:这个server.x=a.b.c ,x 与下列中的 myid 相对应
(2)创建文件夹 --- 在 zookeeper 文件夹下 创建两个文件目录
sha@sl3:/usr/local/zookeeper/conf$ cd /usr/local/zookeeper/
sha@sl3:/usr/local/zookeeper$ mkdir -m 755 data /*数据文件*/
sha@sl3:/usr/local/zookeeper$ mkdir -m 755 log /*日志文件*/
(3) 在data文件夹下新建myid文件,并写入这个主机是第几号(例如,我的集群有三台主机,则 各个主机分别为 1 or 2 or 3 ,每台主机编号不同),保存并退出.
sha@sl3:/usr/local/zookeeper$ sudo vi data/myid
因为 这台主机是 我的集群第三台,则我写入 3 ,保存退出
以 主机名为 sl3 ->sl1为例
sha@sl3:/usr/local/zookeeper$ sudo scp -r /usr/local/zookeeper sha@sl1:/home/sha
此时查看 sl1 主机的 目录,可看到
此时,将该 zookeeper 目录 移动到 /usr/local/zookeeper 下,并到该目录下查看
sha@sl1:~$ sudo mv zookeeper /usr/local/zookeeper
注意:这里说明以下为什么 发布到其他服务器时直接发布到 /usr/local/zookeeper 目录下,因为直接到 另一个主机的 /usr目录有权限问题,解决方法,可以使用 chmod 改变目录权限,也可以像我上述操作一样;
最后,我们记得创建 data文件夹下的 myid 时说过,各个主机的编号不同,则我们要对发布之后的每个主机的编号进行修改,同时也要配置环境变量 /etc/profile ,添加 zookeeper 的路径;
sha@sl1:/usr/local/zookeeper/data$ sudo vi myid
操作到此为止,主机 sl3 -> sl2,也是相应步骤
启动器群需要在每台服务器上都运行命令: zkServer.sh start
sha@sl1:/usr/local/zookeeper/bin$ ./zkServer.sh start
开启之后输入下列命令,查看各个主机的身份,出现以下内容才可确定真正安装好了
./zkServer.sh status
输入 jps 命令可以查看进程 ,每台主机都显示如下即安装成功;
使用zkServer.sh stop可关闭集群(每台主机都要关闭);
./zkServer.sh stop
1.如果 启动失败 或者 查看状态失败 ,可在 zookeeper/bin 下执行以下命令查看错误信息
./zkServer.sh start-foreground
2.在每台主机的 /etc/hosts文件中映射每台主机的 ip 和主机名 很重要
该博客是本人学习的一些总结,如果各位有不同见解,可以评论提出或者与我联系改正,谢谢阅览!!