接下来我们将启动一个单实例的饲养员然后在此基础上搭建一个最简单的饲养员集群,为了贯彻最简单的理念,我们的集群将共只有三个节点,并且他们都在同一台机器上。
好了,让我们开始干吧!
单实例
1。解压安装包并复制配置文件
<代码>焦油-xvzf zookeeper-3.4.12.tar。广州代码>
解压后到相依之目录下,复制一份配置文件:
<代码> cp zoo_sample。cfg zoo.cfg 代码>
2。修改dataDir h5>
虽然是可选的,最好还是把数据移出/tmp目录,我在动物园管理员的安装目录下创建了一个数据目录,到动物园管理员目录下执行:
<代码> 代码>
mkdir数据然后修改zoo.cfg文件中的dataDir,我修改后的文件内容为:
<代码> tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/ym/管理员/zookeeper-3.4.12/数据 clientPort=2181 代码>
3。启动实例
到本目录下执行:
<代码>。/zkServer。sh开始代码>
出现以下内容表示成功了:
<代码> [ym@localhost本]美元。/zkServer。sh开始 动物园管理员JMX默认启用 使用配置:/home/ym/zookeeper/zookeeper-3.4.12/bin/. ./conf/zoo.cfg 动物园管理员开始……开始代码>
集群搭建
1。修改配置文件
首先,从上面的单实例配置文件动物园。cfg复制一份:
<代码> cp动物园。cfg zoo1.cfg 代码>
修改其中内容为:
<代码> tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/ym/管理员/zookeeper-3.4.12/data1 clientPort=2182 server.1=127.0.0.1:2222:2223 server.2=127.0.0.1:3333:3334 server.3=127.0.0.1:4444:4445 代码>
创建zoo2.cfg和zoo3.cfg:
<代码> cp zoo1。cfg zoo2.cfg cp zoo1。cfg zoo3.cfg 代码>
修改zoo2.cfg和zoo3.cfg中clientPort分别为2183年和2184年,dataDir分别指向data2和data3,修改后内容分别为:
data2.cfg
<代码> tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/ym/管理员/zookeeper-3.4.12/data2 clientPort=2183 server.1=127.0.0.1:2222:2223 server.2=127.0.0.1:3333:3334 server.3=127.0.0.1:4444:4445 代码>
data3.cfg
<代码> tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/ym/管理员/zookeeper-3.4.12/data3 clientPort=2183 server.1=127.0.0.1:2222:2223 server.2=127.0.0.1:3333:3334 server.3=127.0.0.1:4444:4445 代码>
每一个server.n项指定了编号为n的饲养员服务器使用的地址和端口号。每个server.n项通过冒号分隔为三部分,第一部分为服务器n的IP地址或主机名(主机名),第二部分和第三部分为TCP端口号,分别用于仲裁通信和群首选举。因为我们在同一个机器上运行三个服务器进程,所以我们需要在每一项中使用不同的端口号。通常,我们在不同的服务器上运行每个服务器进程,因此每个服务器项的配置可以使用相同的端口号。
2创建数据目录
到动物园管理员安装目录下执行:
<代码> mkdir data1 mkdir data2 mkdir data3 代码>
当启动一个服务器时,我们需要知道启动的是哪个服务器。一个服
务器通过读取数据目录下一个名为myid的文件来获取服务器ID信息。可
以通过以下命令来创建这些文件:
<代码>回声1比;data1/myid 回声2比;data2/myid 回声3比;data3/myid 代码>
3启动实例
打开三个终端,到动物园管理员目录下分别执行:
<代码> bin/zkServer。sh . ./conf/zoo1.cfg开始 bin/zkServer。sh . ./conf/zoo2.cfg开始 bin/zkServer。sh开始. ./conf/zoo3.cfg 代码>
4使用zkCli.sh访问集群h5>
<代码> bin/zkCli。sh - server 127.0.0.1:2182、127.0.0.1:2183 127.0.0.1:2184 代码>
会出现如下信息:
<代码> [myid:]——信息[…]-会话建立 完成在服务器本地主机/127.0.0.1:2182…代码>
表面客户端连接到了端口为2182的饲养员服务器上。
使用ctrl + c停止并重新使用上述命令进行连接,如此往复几次会发现连接的端口在2182年,2183年,2184年来回改变。
参考:《动物园管理员——分布式过程协同技术》