1.将安装包解压出来(可以通过wget或者本地下载上传到服务器都可以)
tar -zxvf apche-zookeeper-3.5.8-bin.tar.gz 解压到当前目录或者
tar -zxvf apche-zookeeper-3.5.8-bin.tar.gz -C xxxx指定目录
2.解压完。我们需要修改配置文件。
进入conf目录下,将原先zoo_simple.cfg的名字改为zoo.cfg即可
mv zoo_simple.cfg zoo.cfg
3.修改配置文件内容
搭建虚拟集群需要注意。端口号不能重复,然后dataDir LogDir目录不能重复,然后需要复制三分文件,可以命名其他名字,但是我们启动的时候必须带上以哪个配置文件参数启动。然后还需要注意的是。我们必须要在定义的dataDir下的/data目录里面创建myid文件(echo 1 > myid)。这个1值对应下面的server.1 代表server id的。启动三个实例的话。这三个id必须不一样
4.配置文件都修改完毕后。我们接下来就直接带配置文件启动zk
进入zk的bin目录使用 ./zkServer.sh start-foreground ../myconf1/zoo.cfg
-foreground参数是显示报错信息,比如启动失败时我们可以看到具体原因导致的。如果我们data目录下没有设置myid文件,就会报如下错误:
所以一定要设置好myid文件。
5.如何知道我启动的哪个端口是leader机子呢。
我们使用./zkServer.sh status ../myconf/zoo.cfg 注意。因为我们是一台机子启动的多个实例。所以必须带下配置文件才知道哪一个实例对应的进程
6.启动实例这里注意一点。我们可以通过ps -aux | grep zookeeper 或者ps -ef | grep zookeeper查看zookeeper是否启动。但是
因为zk启动参数过多不好看。我们可以直接通过查看端口号的命令来看zk是否启动起来了
netstat -ntlp
可以看到2182 2183 的zk实例已经在监听了。还有心跳端口2889 3889等也在监听中
7.远程连接可能因为防火墙导致连接失败。这时就需要开放端口号。我们可以先查看我们的端口号是否有开放
firewall-cmd --list-ports
增加某个TCP端口的开放
firewall-cmd --zone=public --add-port=2181/tcp --permanent 其中permanent表示永久开放,服务器重启后依然有效
执行完之后,我们还需要重启防火墙
firewall-cmd --reload
8.虚拟集群查看不同端口的服务状态,需要指定配置文件的路径
./zkServer.sh status ../conf/zoo.cfg
9.虚拟集群连接不同端口的zk
./zkCli.sh -server ip:port