前提条件

1. 1台Linux环境机器

2. Linux环境下安装好jdk

目标

用1台Linux环境机器,安装zookeeper伪分布式环境。

操作步骤

下载:

点击如下链接下载zookeeper安装包,这里使用的版本为3.4.13

Index of /dist/zookeeper

解压:

tar -zxvf zookeeper-3.4.13.tar.gz

重命名:

mv zookeeper-3.4.13 zookeeper-3.4.13-pseudo

进入zookeeper解压目录下的配置目录conf:

hadoop@node1:~/soft$ cd zookeeper-3.4.13-pseudo/conf/
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo/conf$ ls
configuration.xsl  log4j.properties  zoo_sample.cfg

复制模板文件,得到zoo1.cfg:

hadoop@node1:~/soft/zookeeper-3.4.13-pseudo/conf$ cp zoo_sample.cfg zoo1.cfg

编辑zoo1.cfg,最终内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/soft/zookeeper-3.4.13-pseudo/data_1
dataLogDir=/home/hadoop/soft/zookeeper-3.4.13-pseudo/logs_1
clientPort=2181
server.1=node1:2888:3888
server.2=node1:2889:3889
server.3=node1:2890:3890

注意:

1. dataDir为zookeeper的数据目录,建议放在zookeeper解压后的目录下,目录注意按实际修改;

2.dataLogDir为zookeeper的数据目录,建议放在zookeeper解压后的目录下,目录注意按实际修改。

3.server.x表示第几台zookeeper机器,x与后面的myid里的数字一致

4.node1表示Linux机器的主机名,也可以写Linux机器的ip地址。

5.伪分布只有1台机器,通过配置不同端口来区别不同的zookeeper服务

同样的,在与zoo1.cfg相同目录下,创建zoo2.cfg和zoo3.cfg。

创建zoo2.cfg,内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/soft/zookeeper-3.4.13-pseudo/data_2
dataLogDir=/home/hadoop/soft/zookeeper-3.4.13-pseudo/logs_2
clientPort=2182
server.1=node1:2888:3888
server.2=node1:2889:3889
server.3=node1:2890:3890

创建zoo3.cfg,内容如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/hadoop/soft/zookeeper-3.4.13-pseudo/data_3
dataLogDir=/home/hadoop/soft/zookeeper-3.4.13-pseudo/logs_3
clientPort=2183
server.1=node1:2888:3888
server.2=node1:2889:3889
server.3=node1:2890:3890

创建3个myid文件:

进入zookeeper解压目录后,因为dataDir不存在,需要先执行创建数据文件夹,并在每个数据目录下创建一个myid文件,写入对应的id,命令如下:

hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ mkdir data_1
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ mkdir data_2
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ mkdir data_3
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ echo 1 > data_1/myid
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ echo 2 > data_2/myid
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ echo 3 > data_3/myid

启动zookeeper:

分别按3个配置启动zookeeper

$ bin/zkServer.sh start conf/zoo1.cfg 
$ bin/zkServer.sh start conf/zoo2.cfg 
$ bin/zkServer.sh start conf/zoo3.cfg 

具体执行过程如下: 

hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ bin/zkServer.sh start conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo1.cfg
Starting zookeeper ... STARTED
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ bin/zkServer.sh start conf/zoo2.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo2.cfg
Starting zookeeper ... STARTED
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ bin/zkServer.sh start conf/zoo3.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo3.cfg
Starting zookeeper ... STARTED

查看zookeeper状态:

hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ bin/zkServer.sh status conf/zoo1.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo1.cfg
Mode: follower
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ bin/zkServer.sh status conf/zoo2.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo2.cfg
Mode: leader
hadoop@node1:~/soft/zookeeper-3.4.13-pseudo$ bin/zkServer.sh status conf/zoo3.cfg 
ZooKeeper JMX enabled by default
Using config: conf/zoo3.cfg
Mode: follower

可看到zoo2.cfg配置的zk为leader,另外两个配置的zk为follower。

至此,zookeeper伪分布式配置成功。

完成!enjoy it!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐