【Zookeeper搭建】Zookeeper分布式集群搭建完整指南

发布于:2025-03-29 ⋅ 阅读:(25) ⋅ 点赞:(0)

Zookeeper分布式集群搭建

(一)克隆前准备工作

一、时钟同步

步骤:

1、输入date命令可以查看当前系统时间,可以看到此时系统时间为PDT(部分机器或许为EST),并非中国标准时间。我们在中国地区,因此要把系统时间改为CST(中国标准时间)

2、修改时间类型:

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

修改完后再次使用date命令查看是否更改成功。

二、Zookeeper的安装和部署

步骤:

1、使用XFTP把安装包zookeeper-3.4.6.tar.gz传输到虚拟机主目录(/home/hadoop)下,然后解压:

cd ~  
tar -zxvf zookeeper-3.4.6.tar.gz  

2、配置环境变量,在.bashrc文件中添加内容。先执行以下命令打开.bashrc文件:

vim ~/.bashrc  

在文件末尾加上以下语句:

export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.4.6  
export PATH=$ZOOKEEPER_HOME/bin:$PATH  

添加完成后保存,然后控制台执行以下命令刷新即可:

source ~/.bashrc  

3、修改zoo.cfg配置文件:

该文件需要新建,并保存在zookeeper安装路径的conf子目录中:

cd ~/zookeeper-3.4.6/conf  
vim zoo.cfg  

4、大概配置内容如下:

initLimit=10  
syncLimit=5  
#此处为数据保存目录,需自行创建  
dataDir=/home/hadoop/zkdata  
#此处为日志保存目录,需自行创建  
dataLogDir=/home/hadoop/zklog  
clientPort=2181  
server.1=master:2888:3888  
server.2=slave1:2888:3888  
server.3=slave2:2888:3888  

[注意:此处标红的两组数字,前面的1、2、3是每个节点服务的编号,后面的主机名是对应节点服务器的IP地址,这里的配置需要和后面克隆后的配置信息对应上。]{.underline}

[节点服务编号的值是一个整型数字,且不能重复。]{.underline}

5、创建数据和日志目录:

mkdir /home/hadoop/zkdata  
mkdir /home/hadoop/zklog  

此时,可以开始克隆虚拟机了。

(二)克隆Linux虚拟机

前言:

克隆开始之前,可以保存一下虚拟机的快照,或者完整地备份一下自己的虚拟机,这样就不必担忧后续集群使用过程中出现严重的问题需要重来。

一、克隆出两台虚拟机

步骤:

1、使用stop-all.sh命令关闭hadoop集群后,关闭Linux虚拟机;

2、右键选中master,管理-克隆;

3、在弹出的克隆虚拟机向导中,选择克隆自虚拟机中的当前状态;

4、创建完整克隆;

5、虚拟机名称建议为slave1、slave2;位置选择F盘你自己的目录;

6、点击完成开始克隆;

二、把三台虚拟机都启动起来

步骤:略

(三)克隆虚拟机后配置

一、为两台新的虚拟机修改IP地址

由于是克隆的虚拟机,因此他们的配置都是一样的,所以开机以后第一步,先把两台slave机器的ip地址修改一下,否则IP地址会发生冲突。

只需修改最后的部分即可,即192.168.203.XXX中标红的一节;设置方式参考前面教程。

二、为两台新的虚拟机修改主机名

步骤:

1、修改slave1主机的/etc/hostname文件,将其主机名修改为slave1

sudo vim /etc/hostname  

2、重复上述步骤,也把slave2的主机名修改为slave2

三、为三台机器配置hosts文件

步骤:

1、先在master主机修改/etc/hosts文件,建立主机名与ip地址的映射:

sudo vim /etc/hosts  

在末尾添加两行:

192.168.203.XXX slave1  
192.168.203.XXX slave2  

其中的ip地址要对应上一步你自己为每一台主机设置的ip地址。

2、为另外两台slave1、slave2主机也重复上面步骤。

四、为master主机配置NTP服务器,用于时钟同步

步骤:

1、配置NTP服务器:

我们选择master节点来配置NTP服务器,后续其他节点定时同步master节点的时间。CentOS系统一般已经安装有NTP服务,因此直接修改配置文件ntp.conf即可,该文件位于/etc文件夹内:

sudo vim /etc/ntp.conf  

打开后如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{width=“4.813379265091863in” height=“3.261459973753281in”}

2、修改一:

找到#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap这一行,然后在其下方添加:

restrict 192.168.240.129 mask 255.255.255.0 nomodify notrap  

其中标红的ip地址需改成你master主机的ip地址。

3、修改二:

注释掉下面的4行server域名配置:

#server 0.centos.pool.ntp.org iburst  
#server 1.centos.pool.ntp.org iburst  
#server 2.centos.pool.ntp.org iburst  
#server 3.centos.pool.ntp.org iburst  

4、修改三:

注释完以后在下方添加两行:

server 127.127.1.0  
fudge 127.127.1.0 stratum 10  

5、修改完后大体如图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传{width=“4.6292465004374455in” height=“1.8431157042869641in”}

6、在master执行以下命令启动服务:

systemctl start ntpd  

7、执行以下命令可以让master每次启动机器时,都自动开启NTP服务:

chkconfig ntpd on  

8、在其他节点配置定时同步时间:

使用Linux的crontab命令配置定时任务,定时执行ntpdate时间同步命令即可。

在slave1、slave2都使用crontab -e命令打开vim编辑器编辑定时命令脚本,在其中添加此行命令:

0-59/10 * * * * sudo /usr/sbin/ntpdate master  

其中标红的需改成你上述配置了ntp服务器的主机名。

设置完成后,后续slave1、slave2将定期每10分钟自动与master主机同步时间。

五、创建Zookeeper各节点服务编号

在各个机器的/home/hadoop/zkdata目录,创建一个myid文件,然后分别输入服务编号即可,下面以master为例设置,执行以下命令:

cd /home/hadoop/zkdata  
touch myid  
echo 1 > myid  

其中编号1即为master机器的编号,此处必须按照前面Zookeeper安装与部署步骤4中对应的主机与编号进行设置。

自行重复上述步骤,把三台机器都配置完毕。

六、启动Zookeeper集群

在每一台机器上,分别执行以下命令启动Zookeeper服务:

zkServer.sh start  

一段时间后使用以下命令查看状态:

zkServer.sh status  

如果Zookeeper集群中,出现一个节点为Leader,另外两个为Follower,则说明Zookeeper集群安装部署成功。