前置环境
Hadoop集群必须部署完成,如果还没有搭建请先前往>>Hadoop全分布搭建笔记
程序版本
zookeeper 3.4.5
资源下载
zookeeper官网链接: Apache ZooKeeper
**链接:https://pan.xunlei.com/s/VNoQ6lRsS3-BEOZ0D1El3noVA1?pwd=5r39# **
提取码:5r39
zookeeper官网下载步骤:
进入到其官网后,选择download下载对应的zookeeper版本即可
我选择的版本是zookeeper 3.4.5
这里直接选择Http的对应链接下载即可
点击之后就下载完啦
组件介绍
ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。 Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在 某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookeeper的目的就在于此。
操作流程
上传Zookeeper
使用FTP工具(xftp)上传Zookeeper的程序包到master
[root@master ~]# ls
zookeeper-3.4.5.tar.gz
解压Zookeeper
[root@master ~]# tar xf zookeeper-3.4.5.tar.gz -C /usr/local/src/
解压后,cd进入Zookeeper解压目录
[root@master ~]# cd /usr/local/src/
[root@master src]# ls
hadoop jdk zookeeper-3.4.5
修改Zookeeper文件夹名称
[root@master src]# mv zookeeper-3.4.5/ zookeeper
[root@master src]# ls
hadoop jdk zookeeper
配置环境变量
使环境变量仅对root用户生效,编辑root用户的环境变量
[root@master src]# vi /root/.bash_profile
修改后的文件状态
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
JAVA_HOME=/usr/local/src/jdk
HADOOP_HOME=/usr/local/src/hadoop
ZOOKEEPER_HOME=/usr/local/src/zookeeper
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
export PATH
生效环境变量
[root@master src]# source /root/.bash_profile
配置Zookeeper
进入Zookeeper配置目录:cd /usr/local/src/zookeeper/conf/
复制Zookeeper配置模板:cp zoo_sample.cfg zoo.cfg
编辑Zookeeper配置文件:vi zoo.cfg
修改位置:12行 dataDir 新增26-28行
# do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/local/src/zookeeper/data # 指定数据文件目录+数据持久化路径 # the port at which the clients will connect clientPort=2181 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature #autopurge.purgeInterval=1 # 配置zookeeper集群的服务器编号以及对应的主机名,选举端口号和通信端口号 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888
返回Zookeeper主目录
cd .. 返回主目录
[root@master conf]# cd ..
pwd 查看当前目录是否为Zookeeper目录
[root@master zookeeper]# pwd
/usr/local/src/zookeeper
创建ID文件,使集群中的Zookeeper服务相互连接
创建data目录,对应上方 dataDir 的路径
[root@master zookeeper]# mkdir data
cd 进入data目录
[root@master zookeeper]# cd data
创建ID识别文件
[root@master data]# touch myid
写入本机ID,根据上方 server.x 的值配置
[root@master data]# echo 1 > myid
写入方式也可以用 vi 编辑写入
将配置好的Zookeeper复制到其他两台主机
scp 拷贝到slave1
[root@master zookeeper]# scp -r /usr/local/src/zookeeper/ slave1:/usr/local/src/
scp 拷贝到slave2
[root@master zookeeper]# scp -r /usr/local/src/zookeeper/ slave2:/usr/local/src/
拷贝环境变量
[root@master zookeeper]# scp /root/.bash_profile slave1:/root/
.bash_profile 100% 491 743.8KB/s 00:00
[root@master zookeeper]# scp /root/.bash_profile slave2:/root/
.bash_profile 100% 491 780.5KB/s 00:00
切换到slave,进行后续配置
切换至slave1,修改myid的值
[root@slave1 ~]# echo 2 > /usr/local/src/zookeeper/data/myid
查看是否修改成功
[root@slave1 ~]# cat /usr/local/src/zookeeper/data/myid
2
生效环境变量
[root@slave1 ~]# source /root/.bash_profile
切换至slave2,修改myid的值
[root@slave2 ~]# echo 3 > /usr/local/src/zookeeper/data/myid
查看是否修改成功
[root@slave2 ~]# cat /usr/local/src/zookeeper/data/myid
3
生效环境变量
[root@slave2 ~]# source /root/.bash_profile
启动Zookeeper集群
启动命令:zkServer.sh start
三台主机都要启动Zookeeper
master
[root@master ~]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
slave1
[root@slave1 ~]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
slave2
[root@slave2 ~]# zkServer.sh start
JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
查看进程状态:jps
[root@master ~]# jps
1976 Jps
1945 QuorumPeerMain
[root@slave1 ~]# jps
1478 QuorumPeerMain
1504 Jps
[root@slave2 ~]# jps
1494 Jps
1469 QuorumPeerMain
查看Zookeeper集群状态:zkServer.sh status
一台主机为leader,两台主机为follower即为配置成功
master
[root@master ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Mode: follower
slave1
[root@slave1 ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Mode: follower
slave2
[root@slave2 ~]# zkServer.sh status
JMX enabled by default
Using config: /usr/local/src/zookeeper/bin/../conf/zoo.cfg
Mode: leader
至此——Zookeeper集群搭建完成
版权归原作者 Grey_hat_cmd 所有, 如有侵权,请联系我们删除。