十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
接下来我们将启动一个单实例的zookeeper然后在此基础上搭建一个最简单的zookeeper集群,为了贯彻最简单的理念,我们的集群将共只有三个节点,并且他们都在同一台机器上。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比定陶网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式定陶网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖定陶地区。费用合理售后完善,10年实体公司更值得信赖。
好了,让我们开始干吧!
tar -xvzf zookeeper-3.4.12.tar.gz
解压后到conf目录下,复制一份配置文件:cp zoo_sample.cfg zoo.cfg
虽然是可选的,最好还是把data移出/tmp目录,我在zookeeper的安装目录下创建了一个data目录,到zookeeper目录下执行:mkdir data
然后修改zoo.cfg文件中的dataDir,我修改后的文件内容为:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ym/zookeeper/zookeeper-3.4.12/data
clientPort=2181
到bin目录下执行:./zkServer.sh start
出现以下内容表示成功了:
[ym@localhost bin]$ ./zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/ym/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
首先,从上面的单实例配置文件zoo.cfg复制一份:cp zoo.cfg zoo1.cfg
修改其中内容为:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/ym/zookeeper/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/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/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的ZooKeeper服务器使用的地址和端口号。每个server.n项通过冒号分隔为三部分,第一部分为服务器n的IP地址或主机名(hostname),第二部分和第三部分为TCP端口号,分别用于仲裁通信和群首选举。因为我们在同一个机器上运行三个服务器进程,所以我们需要在每一项中使用不同的端口号。通常,我们在不同的服务器上运行每个服务器进程,因此每个服务器项的配置可以使用相同的端口号。
到zookeeper安装目录下执行:
mkdir data1
mkdir data2
mkdir data3
当启动一个服务器时,我们需要知道启动的是哪个服务器。一个服
务器通过读取data目录下一个名为myid的文件来获取服务器ID信息。可
以通过以下命令来创建这些文件:
echo 1 > data1/myid
echo 2 > data2/myid
echo 3 > data3/myid
打开三个终端,到zookeeper目录下分别执行:
bin/zkServer.sh start ../conf/zoo1.cfg
bin/zkServer.sh start ../conf/zoo2.cfg
bin/zkServer.sh start ../conf/zoo3.cfg
bin/zkCli.sh -server 127.0.0.1:2182,127.0.0.1:2183,127.0.0.1:2184
会出现如下信息:
[myid:] - INFO [...] - Session establishment
complete on server localhost/127.0.0.1:2182 ...
表面客户端连接到了端口为2182的zookeeper服务器上。
使用ctrl+c停止并重新使用上述命令进行连接,如此往复几次会发现连接的端口在2182,2183,2184来回改变。
参考:《ZooKeeper-分布式过程协同技术》