实验二:ZooKeeper组件安装配置
实验目的
完成本实验,您应该能够:
- 掌握下载和安装ZooKeeper
- 掌握ZooKeeper的配置选项
- 掌握启动ZooKeeper
实验要求
- 了解ZooKeeper的配置选项
- 熟悉启动ZooKeeper
实验环境
本实验所需之主要资源环境如表1-1所示。
表1-1 资源环境
服务器****集群 | 3个以上节点,节点间网络互通,各节点最低配置:双核CPU、8GB内存、100G硬盘 |
---|---|
运行环境 | CentOS 7.4 |
大数据平台 | H3C教学与实践管理系统 |
服务和组件 | 完成前面章节的实验,其他服务及组件根据实验需求安装 |
实验过程
实验任务一:下载和安装ZooKeeper
ZooKeeper最新的版本可以通过官网http://hadoop.apache.org/zookeeper/来获取,安装ZooKeeper组件需要与Hadoop环境适配。
注意,各节点的防火墙需要关闭,否则会出现连接问题。
# 关闭防火墙服务
[root@master ~]# systemctl stop firewalld
# 设置防火墙服务开机不启动
[root@master ~]# systemctl disable firewalld
1.ZooKeeper的安装包zookeeper-3.4.8.tar.gz已放置在Linux系统/opt/software目录下。
2.解压安装包到指定目标,在Master节点执行如下命令。
[root@master ~]# tar -zxvf /opt/software/zookeeper-3.4.8.tar.gz -C /usr/local/src
[root@master ~]# mv /usr/local/src/zookeeper-3.4.8 /usr/local/src/zookeeper
实验任务二:ZooKeeper的配置选项
步骤一:Master节点配置
(1)在ZooKeeper的安装目录下创建data和logs文件夹。
[root@master ~]# cd /usr/local/src/zookeeper
[root@master zookeeper]# mkdir data && mkdir logs
(2)在每个节点写入该节点的标识编号,每个节点编号不同,master节点写入1,slave1节点写入2,slave2节点写入3。
[root@master zookeeper]# echo 1 > /usr/local/src/zookeeper/data/myid
(3)修改配置文件zoo.cfg
[root@master zookeeper]# cp /usr/local/src/zookeeper/conf/zoo_sample.cfg /usr/local/src/zookeeper/conf/zoo.cfg
[root@master zookeeper]# vi /usr/local/src/zookeeper/conf/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 zookeeper]# chown -R hadoop:hadoop /usr/local/src/zookeeper
步骤二:Slave节点配置
(1)从Master节点复制ZooKeeper安装目录到两个Slave节点。
[root@master ~] # cd ~
[root@master ~] # scp -r /usr/local/src/zookeeper root@slave1:/usr/local/src/
[root@master ~] # scp -r /usr/local/src/zookeeper root@slave2:/usr/local/src/
(2)在slave1节点上修改zookeeper目录的归属用户为hadoop用户。
#slave1 root用户
[root@slave1 ~] # chown -R hadoop:hadoop /usr/local/src/zookeeper
(3)在slave1节点上配置该节点的myid为2。
[root@slave1 ~] # echo 2 > /usr/local/src/zookeeper/data/myid
(4)在slave2节点上修改zookeeper目录的归属用户为hadoop用户。
#slave2 root用户
[root@slave2 ~] # chown -R hadoop:hadoop /usr/local/src/zookeeper
(5)在slave2节点上配置该节点的myid为3。
[root@slave2 ~] # echo 3 > /usr/local/src/zookeeper/data/myid
步骤三:系统环境变量配置
在master、slave1、slave2三个节点增加环境变量配置。
#master root用户
[root@master ~] # vi /etc/profile
# 在文件末尾追加
# set zookeeper environment
export ZOOKEEPER_HOME=/usr/local/src/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
[root@master ~]# scp /etc/profile root@slave1:/etc/
root@slave1's password:
profile 100% 2272 402.3KB/s 00:00
[root@master ~]# scp /etc/profile root@slave2:/etc/
root@slave2's password:
profile 100% 2272 927.4KB/s 00:00
[root@master ~]#
实验任务三:启动ZooKeeper
启动ZooKeeper需要使用Hadoop用户进行操作。
(1)分别在master、slave1、slave2三个节点使用zkServer.sh
start命令启动ZooKeeper。
[root@master ~]# su - hadoop
[hadoop@master ~]$ source /etc/profile
# ZooKeeper启动
[hadoop@master ~]$ zkServer.sh start
JMX enabled by default
Jsing. config:' /usr/1oca1/src/zookeeper/bin/ ../conf/zoo.cfg
starting zookeeper . .STARTED
[root@slave1 ~]# su - hadoop
[hadoop@slave1 ~]$ source /etc/profile
# ZooKeeper启动
[hadoop@slave1 ~]$ zkServer.sh start
JMX enabled by default
Jsing. config:' /usr/1oca1/src/zookeeper/bin/ ../conf/zoo.cfg
starting zookeeper . .STARTED
[root@slave2 ~]# su - hadoop
[hadoop@slave2 ~]$ source /etc/profile
# ZooKeeper启动
[hadoop@slave2 ~]$ zkServer.sh start
JMX enabled by default
Jsing. config:' /usr/1oca1/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内部算法进行选举,每个节点的具体状态不固定。
#master节点状态
[hadoop@master ~]$ zkServer.sh status
JMX enabled by default
Using config: /usr/1oca1/src/zookeeper/bin/ ../conf/zoo.cfg
Mode: fo11ower # follower状态
#slave1节点状态
[hadoop@s1ave1 ~]$ zkServer.sh status
JMX enab1ed by default
Using config:' /usr/1oca1/src/zookeeper/bin/ . ./conf/zoo.cfg
Mode:1eader # leader状态
#slave2节点状态
[hadoop@s1ave2 ~]$ zkServer.sh status
JMX enabled by default
Using config:' /usr/1oca1/src/zookeeper/bin/ . ./conf/zoo.cfg
Mode: fo11ower # follower状态