在Linux中进行ZooKeeper集群搭建

在公网IP为x.x.x.x、y.y.y.y和z.z.z.z并装有Alibaba Cloud Linux 3.2104 LTS 64位的服务器上进行zookeeper集群搭建,都安装server-jre-8u202-linux-x64和apache-zookeeper-3.9.1-bin。

环境准备(三台服务器都一样)

第一步,下载server-jre-8u202-linux-x64.tar.gz安装包。

到地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html下载server-jre-8u202-linux-x64.tar.gz安装包。然后使用WinSCP将安装包上传到/usr/local/src文件夹中。或者也可以使用wget命令下载。

命令:cd /usr/local/src/

wget https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html/jre-8u202-linux-x64.tar.gz

第二步,解压server-jre-8u202-linux-x64.tar.gz安装包。

命令:cd /usr/local/src/

tar -zxvf server-jre-8u202-linux-x64.tar.gz -C /usr/local

第三步,配置环境变量。

配置/etc/profile文件,在文件添加下面的代码:

export JAVA_HOME=/usr/local/jdk1.8.0_202

export JRE_HOME=$JAVA_HOME/jre

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

# 刷新profile文件

命令:source /etc/profile

第四步,测试server-jre是否配置成功。

# 查看jdk版本

命令:java -version

若结果显示server-jre的版本,则说明server-jre配置成功。

第五步,关闭防火墙。

为了可以让本地的机器可以通过Web网页访问集群资源,为了防止在运行集群的时候出现集群不可访问的状况,需要关闭防火墙。

命令:systemctl stop firewalld

# 开机时禁用防火墙

命令:systemctl disable firewalld

第六步,各自修改主机名,配置IP地址映射。

命令:hostnamectl set-hostname node1

hostnamectl set-hostname node2

hostnamectl set-hostname node3

对三台主机的IP地址进行映射,可以方便后续的配置,同时也方便对集群进行通信,三台机器同样操作。

在/etc/hosts文件中加入下面的代码:

x.x.x.x node1

y.y.y.y node2

z.z.z.z node3

第七步,配置免密登录。

# 在~目录下执行,生成密钥

命令:cd

ssh-keygen -t rsa # 按四下enter

cd /root/.ssh/

cp id_rsa.pub authorized_keys

# 将node1的密钥拷到其他服务器上

ssh-copy-id -i node2

ssh-copy-id -i node3

第八步,集群时间同步。

命令:yum -y install ntpdate

ntpdate ntp4.aliyun.com

ZooKeeper的安装与配置(三台服务器都一样)

第一步,下载安装ZooKeeper。

登录网址:https://dlcdn.apache.org/zookeeper/zookeeper-3.9.1/apache-zookeeper-3.9.1-bin.tar.gz,下载apache-zookeeper-3.9.1-bin,然后通过WinSCP上传到/usr/local/src文件夹。

第二步,解压ZooKeeper安装包。

命令:cd /usr/local/src

tar -xvzf apache-zookeeper-3.9.1-bin.tar.gz -C /usr/local/

mv apache-zookeeper-3.9.1-bin zookeeper-3.9.1

第三步,配置ZooKeeper。

# 将/usr/local/zookeeper-3.9.1/conf中的zoo_sample.cfg改成zoo.cfg

命令:cd /usr/local/zookeeper-3.9.1/conf

mv zoo_sample.cfg zoo.cfg

# 在/usr/local/zookeeper-3.9.1下新建zkData文件夹

命令:cd /usr/local/zookeeper-3.9.1

mkdir zkData

最后对文件zoo.cfg进行编辑,将dataDir的路径换成文件夹zkData的路径,得到下面的代码:

dataDir=/usr/local/zookeeper-3.9.1/zkData

第四步,启动测试。

# 启动服务端

命令:cd /usr/local/zookeeper-3.9.1/bin

./zkServer.sh start

# 查看进程

命令:jps

# 启动客户端

命令:cd /usr/local/zookeeper-3.9.1/bin

./zkCli.sh

第五步,配置环境变量。

在文件/etc/profile中添加下面的代码:

#zookeeper

export ZK_HOME=/usr/local/zookeeper-3.9.1

export PATH=$PATH:$ZK_HOME/bin

# 使环境变量生效

命令:source /etc/profile

第六步,对/usr/local/zookeeper-3.9.1/conf/zoo.cfg文件做进一步的修改。

说明:2888为组成zookeeper服务器之间的通信端口,3888为用来选举leader的端口,server后面的数字与后面的myid相对应。

server.1=x.x.x.x:2888:3888

server.2=y.y.y.y:2888:3888

server.3=z.z.z.z:2888:3888

第七步,进入/usr/local/zookeeper-3.9.1/zkData,修改myid文件,内容要和zoo.cfg中的修改相对应。

ZooKeeper集群测试

# 启动各个服务器的zookeeper

命令:./zkServer.sh start

# 查看当前zookeeper的状态

命令:./zkServer.sh status

若zookeeper正常启动,则可以发现,由于选举机制,不能成功启动第一台服务器node1和第二台服务器node2。

当启动第三台服务器node3时,出现选票超过半数,node3成为了leader,而node1和node2成为了follower。

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值