Zookeeper的下载安装

发布于:2025-07-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

 一、前期准备

1、查看网卡:

2、配置静态IP

3、设置主机名

4、配置IP与主机名映射

5、关闭防火墙

6、配置免密登录

二、JDK的安装

三、Zookeeper的安装

1、Zookeeper的下载安装 

2、 创建数据存储和日志目录

3、 配置文件

4、分发文件

5、修改 myid

6、 ZK集群启动停止脚本

四、客户端命令行操作

1、客户端常用命令

3、客户端命令自行练习

五、参数说明


       Zookeeper是一个开源的分布式服务,是Hadoop下的一个子项目,提供了优秀的分布式一致性的解决方案。Zookeeper的主要功能包括:配置管理、名字服务、分布式锁和集群管理等功能,来统筹分布式场景下的应用服务。
       Zookeeper官网:https://Zookeeper.apache.org/

 一、前期准备

1、查看网卡:

2、配置静态IP

vi /etc/sysconfig/network-scripts/ifcfg-ens32  ----  根据自己网卡设置。

3、设置主机名

hostnamectl --static set-hostname  主机名

例如:

hostnamectl --static set-hostname  hadoop001

4、配置IP与主机名映射

vi /etc/hosts

5、关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

6、配置免密登录

传送门

二、JDK的安装

传送门

三、Zookeeper的安装

1、Zookeeper的下载安装 

1.1. 下载

https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/
​下载 apache-zookeeper-3.7.1-bin.tar.gz 安装包

1.2 上传
使用xshell上传到指定安装路径

此处是安装路径是 /opt/module

1.3 解压重命名

tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz 

mv apache-zookeeper-3.7.1-bin zookeeper

1.4 配置环境变量

vi  /etc/profile

export JAVA_HOME=/opt/module/java

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export ZK_HOME=/opt/module/zookeeper

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

1.5 加载环境变量

source  /etc/profile

验证环境变量是否生效:

env | grep HOME

env | grep PATH

2、 创建数据存储和日志目录

​     创建数据存储目录和日志目录

mkdir /opt/module/zookeeper/zkData

mkdir /opt/module/zookeeper/log

3、 配置文件

     配置服务器编号

编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在hadoop001上,“myid”文件内容就是1。在hadoop002上,内容就是2。

vi  /opt/module/zookeeper/zkData/myid

1

或者使用下面脚本执行:

echo '1'> /opt/module/zookeeper/zkData/myid;

     编辑配置文件

cp /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg

vi /opt/module/zookeeper/conf/zoo.cfg

dataDir=/opt/module/zookeeper/zkData
dataLogDir=/opt/module/zookeeper/log

server.1=hadoop001:2888:3888
server.2=hadoop002:2888:3888
server.3=hadoop003:2888:3888

或者私用脚本命令

cp /opt/module/zookeeper/conf/zoo_sample.cfg /opt/module/zookeeper/conf/zoo.cfg;

sed -i 's|^dataDir=.*|dataDir=/opt/module/zookeeper/zkData|' /opt/module/zookeeper/conf/zoo.cfg;
sed -i '/^dataDir=\/opt\/module\/zookeeper\/zkData$/a\dataLogDir=\/opt\/module\/zookeeper\/log' /opt/module/zookeeper/conf/zoo.cfg;


cat <<EOL >> /opt/module/zookeeper/conf/zoo.cfg
server.1=hadoop001:2888:3888
server.2=hadoop002:2888:3888
server.3=hadoop003:2888:3888
EOL

查看效果

head -n 15 /opt/module/zookeeper/conf/zoo.cfg | tail -n 5

cat /opt/module/zookeeper/conf/zoo.cfg | grep server

4、分发文件

scp -r  /etc/profile  root@hadoop002:/etc/profile

scp -r  /etc/profile  root@hadoop003:/etc/profile

scp -r  /opt/module/java root@hadoop002:/opt/module/java 

scp -r  /opt/module/java root@hadoop003:/opt/module/java 

scp -r  /opt/module/zookeeper  root@hadoop002:/opt/module/zookeeper

scp -r  /opt/module/zookeeper  root@hadoop003:/opt/module/zookeeper

让三台机器文件生效

ssh hadoop001 "source /etc/profile"
ssh hadoop002 "source /etc/profile"
ssh hadoop003 "source /etc/profile"

5、修改 myid

修改 hadoop002 的 /opt/module/zookeeper/zkData/myid 内容为 2

vi /opt/module/zookeeper/zkData/myid

2

修改 hadoop003 的 /opt/module/zookeeper/zkData/myid 内容为 3

vi /opt/module/zookeeper/zkData/myid

3

或者使用下面脚本

ssh hadoop002 "echo '2' > /opt/module/zookeeper/zkData/myid"
ssh hadoop003 "echo '3' > /opt/module/zookeeper/zkData/myid"

或者使用下面脚本

ssh hadoop002 "sed -i 's/^0$/2/' /opt/module/zookeeper/zkData/myid"
ssh hadoop003 "sed -i 's/^0$/3/' /opt/module/zookeeper/zkData/myid"

查看效果

ssh hadoop001 "cat /opt/module/zookeeper/zkData/myid"

ssh hadoop002 "cat /opt/module/zookeeper/zkData/myid"

ssh hadoop003 "cat /opt/module/zookeeper/zkData/myid"

6、 ZK集群启动停止脚本

touch /usr/bin/zkall.sh

chmod 777 /usr/bin/zkall.sh

vi /usr/bin/zkall.sh

#!/bin/bash

case $1 in
"start"){
	for i in hadoop001 hadoop002 hadoop003
	do
        echo ---------- zookeeper $i 启动 ------------
		ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh start"
	done
};;
"stop"){
	for i in hadoop001 hadoop002 hadoop003
	do
        echo ---------- zookeeper $i 停止 ------------    
		ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh stop"
	done
};;
"status"){
	for i in hadoop001 hadoop002 hadoop003
	do
        echo ---------- zookeeper $i 状态 ------------    
		ssh $i "source /etc/profile; /opt/module/zookeeper/bin/zkServer.sh status"
	done
};;
esac

启动:/usr/bin/zkall.sh start

停止:/usr/bin/zkall.sh stop

状态:/usr/bin/zkall.sh status

四、客户端命令行操作

1、客户端常用命令

命令基本语法

功能描述

help

显示所有操作命令

ls path

使用 ls 命令来查看当前znode的子节点

-w  监听子节点变化

-s   附加次级信息

create

普通创建

-s  含有序列

-e  临时(重启或者超时消失)

get path

获得节点的值

-w  监听节点内容变化

-s   附加次级信息

set

设置节点的具体值

stat

查看节点状态

delete

删除节点

deleteall

递归删除节点

2、启动客户端

在任意一台安装zk的机器上都可以启动客户端

cd /opt/module/zookeeper/

bin/zkCli.sh

3、客户端命令自行练习

五、参数说明

      zoo.cfg配置参数解读

server.A=B:C:D

案例:

server.1=hadoop001:2888:3888

A是一个数字,表示这个是第几号服务器;

例如:在hadoop001上 dataDir目录下的配置一个文件myid中的数字是1,Zookeeper启动时读取此文件,拿到里面数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

B是这个服务器的地址;

C是这个服务器Follower与集群中的Leader服务器交换信息的端口;

D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。


网站公告

今日签到

点亮在社区的每一天
去签到