Hadoop集群搭建三 Zookeeper完全分布模式安装

一、Zookeeper的基本安装配置

此项所有操作在集群中的admin用户下进行

此操作只需在一台主机操作,其余主机在下一步骤进行同步安装配置

注:所需软件安装包zookeeper在此前jdk配置实验中已使用xftp应用上传至admin用户家目录的‘setups’目录下

创建用于存放Zookeeper的目录

#mkdir ~/zookeeper
#cd ~/zookeeper

hadoop指定zookeeper认证 hadoop zookeeper_bash


解压压缩包

#tar -xzf ~/setups/zookeeper-3.4.9.tar.gz

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_02


配置Zookeeper相关环境变量

在文件~/.bash_profile文件末尾添加:

#zookeeper environment
ZOOKEEPER_HOME=/home/admin/zookeeper/zookeeper-3.4.9
PATH=$ZOOKEEPER_HOME/bin: $PATH
export ZOOKEEPER_HOME PATH

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_03


#source ~/.bash_profile
#echo $ZOOKEEPER_HOME
#echo $PATH

hadoop指定zookeeper认证 hadoop zookeeper_配置文件_04


二、Zookeeper的完全分布模式配置

该项所有操作在专用集群的用户admin下进行

新建文件夹data和logs分别存放数据和日志

#mkdir data logs

hadoop指定zookeeper认证 hadoop zookeeper_zookeeper_05


进入zookeeper配置文件所在目录conf

#cd ~/zookeeper/zookeeper-3.4.9/conf

将zoo_sample文件复制并重命名zoo.cfg

#cp zoo_sample.cfg zoo.cfg

hadoop指定zookeeper认证 hadoop zookeeper_hadoop指定zookeeper认证_06

对配置文件zoo.cfg进行修改:

dataDir=/home/admin/zookeeper/data
dataLogDir=/home/admin/zookeeper/logs

hadoop指定zookeeper认证 hadoop zookeeper_配置文件_07


在文件末尾添加

server.1=cluster-01:2888:3888
server.2=cluster-02:2888:3888
server.3=cluster-03:2888:3888
server.4=cluster-04:2888:3888
server.5=cluster-05:2888:3888

hadoop指定zookeeper认证 hadoop zookeeper_hadoop指定zookeeper认证_08


三、同步安装和配置

该项操作在专用集群admin用户下进行

将“zookeeper”目录和“.bash_profile”文件发给集群中所有主机,发送目标用户为集群专用用户admin,目标路径为“/home/admin”。

#scp -r -/zookeeper ~/.bash_profile admin@cluster-02/home/admin
#scp -r -/zookeeper ~/.bash_profile admin@cluster-03/home/admin
#scp -r -/zookeeper ~/.bash_profile admin@cluster-04/home/admin
#scp -r -/zookeeper ~/.bash_profile admin@cluster-05/home/admin

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_09


hadoop指定zookeeper认证 hadoop zookeeper_配置文件_10


#source ~/.bash_profile

打印新添加和修改的环境变量,检查是否正确。

#echo $ZOOKEEPER_HOME
#echo $PATH

hadoop指定zookeeper认证 hadoop zookeeper_hadoop指定zookeeper认证_11

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_12

四、配置zookeeper节点标识文件

在集群中所有主机使用命令“echo ‘*’> ~/zookeeper/data/myid

hadoop指定zookeeper认证 hadoop zookeeper_hadoop指定zookeeper认证_13


hadoop指定zookeeper认证 hadoop zookeeper_配置文件_14


主机三对应‘3’、主机四对应‘4’、主机五对应‘5’

五、zookeeper完全分布模式启动和验证

进行操作前所有主机必须在root模式下关闭防火墙

#systemctl stop firewalld.service
#systemctl disable firewalld.service

hadoop指定zookeeper认证 hadoop zookeeper_zookeeper_15


在集群左右主机使用命令“zkServer.sh start”启动Zookeeper服务的脚本,若结果显示“STARTED”则表示启动成功

#zkServer.sh start

hadoop指定zookeeper认证 hadoop zookeeper_配置文件_16

hadoop指定zookeeper认证 hadoop zookeeper_zookeeper_17

在集群中所有主机使用命令“jps”查看Java进程信息,若存在一个名为“QuroumPeerMain”的进程,则表示Zookeeper服务启动成功。

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_18


hadoop指定zookeeper认证 hadoop zookeeper_zookeeper_19


在集群所有主机使用命令“zkServer.sh status”查看该节点Zookeeper服务当前的状态,若集群中只有一个“leader”节点,其余的均为“follower”节点,则集群工作状态正常,防火墙必须关闭,如果防火墙未关闭,状态是Error contacting service,it is probably not runing

hadoop指定zookeeper认证 hadoop zookeeper_配置文件_20

hadoop指定zookeeper认证 hadoop zookeeper_配置文件_21

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_22

hadoop指定zookeeper认证 hadoop zookeeper_zookeeper_23


hadoop指定zookeeper认证 hadoop zookeeper_bash_24


由上图可以看出cluster-03是leader

使用命令“zkCli.sh -server cluster-0-:2181*”利用zookeeper的命令行工具连接zookeeper集群,其中“”为集群中节点的编号,可以选择连接集群中的任意一个节点,若显示“CONNECTED”则表示连接正常,命令行工具可以正常使用,可以使用“quit”退出工具程序。

hadoop指定zookeeper认证 hadoop zookeeper_hadoop_25

hadoop指定zookeeper认证 hadoop zookeeper_bash_26

关机时可以在一台主机上进行操作

hadoop指定zookeeper认证 hadoop zookeeper_配置文件_27

(1)在利用scp命令将配置文件发送到其他主机时发现报错:主机不存在。解决方案:先查看局域网网络是否正常(主机间是否可以正常通信),若可以正常通信则是之前实验不太完整需要重新查看每个节点和其他主机是否连接正常。并用代码ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub admin@cluster-02~5解决。 若不可以通信则关闭所有主机重新还原虚拟机网络编辑器中的NAT模式,重新设置后,在windows10中添加VM8ip地址并验证与虚拟机通信正常后,在虚拟机中检查是否相互通信正常。
(2)在关机时可以利用一台主机关闭所有虚拟机。利用ssh命令。

总结:
通过本次实验使我掌握了如何将别的目录中的文件解压当当前目录中,还掌握了Zookeeper的安装步骤及工作特点:一个领导者(leader),多个跟随者(follower)组成的集群。Leader负责进行投票的发起和决议,更新系统状态。Follower用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票。集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。并且leader并不是一成不变的它如果将已有的leader主机停掉,其他四台主机又会重新选举出新的leader。
学会了在遇到问题时通过提示及已做过的实验自己解决问题,并帮助同学排错提高自己动手实验能力。已经养成了良好的实验习惯:在每次实验结束后建立快照。