ZooKeeper 组件安装配置

发布时间 2023-07-06 18:24:01作者: 雙_木

1.ZooKeeper 组件安装配置

1.1. 实验目的

完成本实验,您应该能够:
掌握下载和安装 ZooKeeper
掌握 ZooKeeper 的配置选项
掌握启动 ZooKeeper

1.2. 实验要求

了解 ZooKeeper 的配置选项
熟悉启动 ZooKeeper

1.3. 实验环境

本实验所需之主要资源环境如表 1-1 所示。
表 1-1 资源环境
服务器集群 单节点,机器最低配置:双核 CPU、8GB 内存、100G 硬盘
运行环境 CentOS.7.3
服务和组件 服务和组件根据实验需求安装

1.4. 实验过程

1.4.1. 实验任务一:下载和安装 ZooKeeper

ZooKeeper最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取, 安装 ZooKeeper 组件需要与 Hadoop 环境适配。
注意,各节点的防火墙需要关闭,否则会出现连接问题。
1.ZooKeeper 的安装包 zookeeper-3.4.8.tar.gz 已放置在 Linux 系统/root 目录下。
2.解压安装包到指定目标,在 Master 节点执行如下命令。
[root@master ~]# tar xf zookeeper-3.4.8.tar.gz -C /usr/local/src/
[root@master ~]# cd /usr/local/src
[root@master src]# ls
hadoop  hive  jdk  zookeeper-3.4.8

1.4.2. 实验任务二:ZooKeeper 的配置选项

1.4.2.1. 步骤一:Master 节点配置
(1)在 ZooKeeper 的安装目录下创建 data 和 logs 文件夹。
[root@master zookeeper]# mkdir data && mkdir logs
(2)在每个节点写入该节点的标识编号,每个节点编号不同,master 节点写入 1, slave1 节点写入 2,slave2 节点写入 3。
[root@master ~]# echo 1 > /usr/local/src/zookeeper/data/myid
[root@master ~]# cat /usr/local/src/zookeeper/data/myid
1

(3)修改配置文件 zoo.cfg
[root@master zookeeper]# cd conf/
[root@master conf]# ls
configuration.xsl  log4j.properties  zoo_sample.cfg
[root@master conf]# cp zoo_sample.cfg zoo.cfg
[root@master conf]# ls
configuration.xsl  log4j.properties  zoo.cfg  zoo_sample.cfg
root@master conf]# vi zoo.cfg 

修改 dataDir 参数内容如下:
dataDir=/usr/local/src/zookeeper/data
(4)在 zoo.cfg 文件末尾追加以下参数配置,表示三个 ZooKeeper 节点的访问端口号。
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

(5)修改 ZooKeeper 安装目录的归属用户为 hadoop 用户。

[root@master conf]# chown -R hadoop:hadoop /usr/local/src/zookeeper
[root@master conf]# cd ..
[root@master zookeeper]# ll
total 1556
drwxr-xr-x.  2 hadoop hadoop     149 Feb  5  2016 bin
-rw-rw-r--.  1 hadoop hadoop   83235 Feb  5  2016 build.xml
-rw-rw-r--.  1 hadoop hadoop   88625 Feb  5  2016 CHANGES.txt
drwxr-xr-x.  2 hadoop hadoop      92 Mar 28 21:40 conf
drwxr-xr-x. 10 hadoop hadoop     130 Feb  5  2016 contrib
drwxr-xr-x.  2 hadoop hadoop       6 Mar 28 21:34 data
drwxr-xr-x.  2 hadoop hadoop    4096 Feb  5  2016 dist-maven
drwxr-xr-x.  6 hadoop hadoop    4096 Feb  5  2016 docs
-rw-rw-r--.  1 hadoop hadoop    1953 Feb  5  2016 ivysettings.xml
-rw-rw-r--.  1 hadoop hadoop    3498 Feb  5  2016 ivy.xml
drwxr-xr-x.  4 hadoop hadoop     266 Feb  5  2016 lib
-rw-rw-r--.  1 hadoop hadoop   11938 Feb  5  2016 LICENSE.txt
drwxr-xr-x.  2 hadoop hadoop       6 Mar 28 21:34 logs
-rw-rw-r--.  1 hadoop hadoop     171 Feb  5  2016 NOTICE.txt
-rw-rw-r--.  1 hadoop hadoop    1770 Feb  5  2016 README_packaging.txt
-rw-rw-r--.  1 hadoop hadoop    1585 Feb  5  2016 README.txt
drwxr-xr-x.  5 hadoop hadoop      47 Feb  5  2016 recipes
drwxr-xr-x.  8 hadoop hadoop     191 Feb  5  2016 src
-rw-rw-r--.  1 hadoop hadoop 1360961 Feb  5  2016 zookeeper-3.4.8.jar
-rw-rw-r--.  1 hadoop hadoop     819 Feb  5  2016 zookeeper-3.4.8.jar.asc
-rw-rw-r--.  1 hadoop hadoop      33 Feb  5  2016 zookeeper-3.4.8.jar.md5
-rw-rw-r--.  1 hadoop hadoop      41 Feb  5  2016 zookeeper-3.4.8.jar.sha1

1.4.2.2. 步骤二:Slave 节点配置
(1)从 Master 节点复制 ZooKeeper 安装目录到两个 Slave 节点。
[root@master ~] # scp -r /usr/local/src/zookeeper slave1:/usr/local/src/
[root@master ~] # scp -r /usr/local/src/zookeeper slave2:/usr/local/src/
RecordWriter.java                                                 100% 3834     2.3MB/s   00:00    
CsvOutputArchive.java                                             100% 4406     2.3MB/s   00:00    
Quotas.java                                                       100% 2103     2.0MB/s   00:00    
Login.java                                                        100%   18KB  20.0MB/s   00:00    
FourLetterWordMain.java                                           100% 3874     6.4MB/s   00:00    
ZooKeeperSaslClient.java                                          100%   28KB   9.0MB/s   00:00    
HostProvider.java                                                 100% 2098     1.6MB/s   00:00    
StaticHostProvider.java                                           100% 4395   814.1KB/s   00:00    
ConnectStringParser.java                                          100% 2932     4.7MB/s   00:00    
Transaction.java                                                  100% 2174     1.1MB/s   00:00    
MBeanRegistry.java                                                100% 7326     7.7MB/s   00:00    
CommonNames.java                                                  100% 1144     1.2MB/s   00:00     
......
myid   
(2)在 slave1节点上修改 zookeeper 目录的归属用户为 hadoop 用户
[root@slave1 ~]# chown -R hadoop:hadoop /usr/local/src/zookeeper
[root@slave2 ~]# chown -R hadoop:hadoop /usr/local/src/zookeeper
(3)在 slave1 节点上配置该节点的 myid 为 2。
[root@slave1 ~]#  echo 2 > /usr/local/src/zookeeper/data/myid
[root@slave1 ~]# cat /usr/local/src/zookeeper/data/myid
2

(5)在 slave2 节点上配置该节点的 myid 为 3。
[root@slave2 ~]#  echo 3 > /usr/local/src/zookeeper/data/myid
[root@slave2 ~]# cat /usr/local/src/zookeeper/data/myid
3

1.4.2.3. 步骤三:系统环境变量配置
在 master、slave1、slave2 三个节点增加环境变量配置。
[root@master ~]# vi /etc/profile.d/zoo.sh
[root@master ~]# cat /etc/profile.d/zoo.sh
export ZOOKEEPER_HOME=/usr/local/src/zookeeper
export PATH=${ZOOKEEPPER_HOME}/bin:$PATH
[root@master ~]# scp /etc/profile.d/zoo.sh slave1:/etc/profile.d/
root@slave1's password: 
zoo.sh                                                            100%   88    24.3KB/s   00:00    
[root@master ~]# scp /etc/profile.d/zoo.sh slave2:/etc/profile.d/
root@slave2's password: 
zoo.sh      

1.4.3. 实验任务三:启动 ZooKeeper

启动 ZooKeeper 需要使用 Hadoop 用户进行操作。
(1)分别在 master、slave1、slave2 三个节点使用 zkServer.sh start 命令启动 ZooKeeper。
[root@master ~]# su - hadoop
Last login: Tue Mar 28 22:16:17 EDT 2023 on pts/0
[hadoop@master ~]$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[hadoop@slave1 ~]$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

[hadoop@slave2 ~]# zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

(2)三个节点都启动完成后,再统一查看 ZooKeeper 运行状态。
分别在 master、slave1、slave2 三个节点使用 zkServer.sh status 命令查看 ZooKeeper 状态。可以看到三个节点的状态分别为 follower、leader、follower。三个节 点会包括一个 leader 和两个 follower,每个节点地位均等,leader 是根据 ZooKeeper 内 部算法进行选举,每个节点的具体状态不固定
[hadoop@master ~]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Mode: follower

[hadoop@slave1 ~]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Mode: leader

[hadoop@slave2 ~]$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Mode: follower