菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
167
0

zookeeper集群搭建

原创
05/13 14:22
阅读数 58771

作为程序员的我们可能都知道,在公司开发过程中如果不是leader和架构,很少有机会自己搭建软件的架构。zookeeper作为Java程序相对来说安装起来很容易,解压即可,省去了编译的过程。可能对于没有了解的小白听到集群感觉很高大上的样子,其实所有的知识都一样,当你学习多了,好多的知识都是相通的,好了废话不多说了,下面开始搭建。

一、准备工作

1、如果你的资源充沛,可以搞几台linux服务器(这里上一篇文章说过这里最好使用2n+1 :为了更充分的利用资源),如果没条件就准备一台虚拟机(这里对虚拟机的安装和linux服务器的安装就不做过多的赘述)

2、下载zookeeper压缩包(最新版直接到官网下载: https://zookeeper.apache.org/   历史版本:http://archive.apache.org/dist/zookeeper/)这里使用的是3.4.6版本

3、下载jdk压缩包() https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html  

二、jdk安装

首先看一下你的你的linux服务器有没有安装jdk(java -version)  如果没有进行安装  如果已经安装可以略过jdk的安装

1、使用xshell  和  xftp 连接服务器  ,使用 Xftp 将jdk压缩包上传到服务器上,  建立文件夹/usr/local/java/  ,将文件拷贝到建好的文件夹 , 解压。

mkdir -p /usr/local/java/    ---->  mv jdk-8u261-linux-x64.tar.gz  /usr/local/java/  ----->   tar xf  jdk-8u261-linux-x64.tar.gz

2、配置环境变量:

export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export JRE_HOME=/usr/local/java/jdk1.8.0_261/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

3、配置完成后需要让配置文件生效:source /etc/profile

测试安装成功 :java -version   出现Java版本即为成功

三、zookeeper安装

这里搭建以最少数量3台机器为例:在虚拟机建立三台linux服务器 , 使用 ip addr 查看ip地址记录下来

1、建立文件夹 :进入opt 文件夹  , 在opt下创建dongl文件  mkdir /dongl/  

2、使用xftp将下载好的zookeeper压缩包上传到/opt/dongl/ 文件夹下 然后解压-------->   解压 文件: tar xf zookeeper-3.4.6.tar.gz 

3、进入zookeeper文件夹内 :cd opt/dongl/zookeeper-3.4.6

这里有bin/----->里面有很多的脚本命令   

conf/ ------>里面有zoo_sample.cfg配置文件

4、(zookeeper启动默认加载的是zoo.cfg)  所以需要拷贝一份或者将zoo_sample.cfg改名    这里进行拷贝 cp zoo_sample.cfg zoo.cfg

5、进入zoo.cfg 进行配置文件的修改:vi zoo.cfg

tickTime=2000(心跳时间)
initLimit=10 当有一个从节点追随一个主节点时 主节点可以忍受2000*10这么长时间的初始延迟
syncLimit=5 同步时间为2000*5 如果leader 下发同步数据的命令在10s没回复认为follower有问题
dataDir=/**/**/ 存放临时数据 修改目录名 dataDir=/var/dongl/zk
clientPort=2181 客户端连接zookeeper进程使用的端口号
maxClientCnxns=60 zookeeper最大连接数
配置集群server信息:

server.1=192.168.247.132:2888:3888

server.2=192.168.247.133:2888:3888

server.3=192.168.247.134:2888:3888

3888---->当zookeeper主节点(leader)挂掉后 他们通过3888建立连接 ---->选出一个leader--->leader会起一个2888的端口,其他foller通过2888和leader建立socate连接,之后他们的所有通信都在这个2888下进行 前面的1234 为了快速选出leader

6、创建 var/dongl/zk 文件夹 mkdir -p /var/dongl/zk 进入var/dongl/zk 之后持久化的数据会在这个目录下

这个目录下还要放一个东西:myid -----> vi myid ---> 写入上面配置服务的id   即为 server.1  就为1 --->退出

7、配置环境变量:进入profile文件: cd  /etc/  ------>   vi profile

export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export JRE_HOME=/usr/local/java/jdk1.8.0_261/jre
export ZOOKEEPER_HOME=/opt/dongl/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$ZOOKEEPER_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib

8、让profile生效  : source /etc/profile        测试配置是否成功:zk  +tal键  会出现命令

到这里单机的zookeeper就安装好了剩下两台机器的安装和上面的相同

9、下面需要将第一台配置好的机器的zookeeper信息copy到另外的集群机器中:

发起一个远程的copy :

scp -r ./dongl/ 192.168.247.133>'pwd'

scp -r ./dongl/ 192.168.247.134>'pwd'

进入另外的机器 查看 配置文件 cd opt/dongl/zookeeper-3.4.6/conf ---->vi zoo.cfg
分别建立/var/dongl/zk 目录 mkdir -p /var/dongl/zk ---->echo 2 > /var/dongl/zk/myid ----> cat /var/dongl/zk/myid 会看到文件中存放一个2
依次给下面的几台机器同样的操作

10、使用命令启动:zkServer.sh  help   可以查看命令详情    依次使用 zkServer.sh start 启动   -------->zkServer.sh  status 查看状态

 四、【总结】

到这里zookeeper的简单集群就搭建好了,是不是也没有想象那么困难  如果有疑问可以互相讨论

发表评论

0/200
167 点赞
0 评论
收藏