ZooKeeper 组件安装配置
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix