微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ZooKeeper_002_分布式搭建

1,上传Zookeeper安装文件

官网下载:https://www.apache.org/dyn/closer.lua/zookeeper

将apache-zookeeper-3.7.0-bin.tar.gz上传到node001节点的主文件夹中

在这里插入图片描述

进入主目录进行解压

cd ~
tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz -C /home/hadoop/

在这里插入图片描述

由于后边设置变量等情况会多次使用该文件夹,所以可以对该文件夹进行改名。我这里为了方便将其改为 zookeeper

在这里插入图片描述

2,编写配置文件

在ZooKeeper的安装目录下新建文件夹dataDir 用于存放Zookeeper相关数据。

cd ~/zookeeper
mkdir dataDir

在ZooKeeper安装目录下的conf文件夹中新建配置文件zoo.cfg

cd conf
sudo gedit zoo.cfg

加入以下内容

#基本事件单元,用来指示一个心跳的时长。以毫秒为单位,认2000
tickTime=2000
#集群中的Follower服务器初始化连接leader服务器时能等待的最大心跳数(也就是##连接超时的时长),认为10,我们调整为5,也就是5*2000ms =10s
initLimit=5
# 集群中的Follower服务器与leader服务器之间发送消息以及请求/应答所能等待的##最多心跳数,我们设置为2,2*2000ms=4s
synclimit=2
#Zookeeper数据文件的存储位置
dataDir=/home/hadoop/zookeeper/dataDir
#ZooKeeper供客户端连接的端口,认是2181
clientPort=2181

server.1=node001:2888:3888
server.2=node002:2888:3888
server.3=node003:2888:3888

重点说一下最后三行:

server.id=host:port1:port2

server后边的数字也就是节点的id,用来区分不同的服务器。

后边是的组合host是服务器的名称或者IP地址

part1是leader节点的端口,即该服务器作为leader时供其Follower服务器连接的端口

part2是选举端口,也就是选取leader服务器时供其他Follower服务器连接的端口

之后在/home/hadoop/zookeeper/dataDir问价夹下创建文件myid文件这个文件内容只有一行,由于这台服务器是node001 我们向myid文件中写入一个1即可:

cd /home/hadoop/zookeeper/dataDir
sudo gedit myid

3,复制Zookeeper安装信息到其他节点

scp -r /home/hadoop/zookeeper/ hadoop@node002:/home/hadoop/
scp -r /home/hadoop/zookeeper/ hadoop@node003:/home/hadoop/

4,修改其他节点配置

修改node002节点,进入安装目录下前边创建的数据文件dataDir,修改数据文件中的myid文件为2

修改node003节点,进入安装目录下前边创建的数据文件dataDir,修改数据文件中的myid文件为3

cd ~/zookeeper/dataDir
sudo gedit myid

5,启动ZooKeeper

Zookeeper的启动与Hadoop有所不同,zookeeper需要手动启动每个节点才能使整个集群运行起来。

分别进入ZooKeeper安装目录下的bin文件夹执行启动命令

cd ~/zookeeper/bin
zkServer.sh start

出现图片中的内容说明启动成功

在这里插入图片描述

同样的操作进入node002,node003继续执行。

6,查看启动状态

zkServer.sh status

我们发现启动的时候报错了报错信息如下:

Error contacting service. It is probably not running.

此时需要修改Zookeeper安装目录下的bin/zkEnv.sh 文件的以下内容:

sudo gedit zkEnv.sh
if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
    ZOO_LOG4J_PROP="INFO,CONSOLE"

将其中的CONSOLE修改为ROLLINGFILE

if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
    ZOO_LOG4J_PROP="INFO,ROLLINGFILE"

关闭zookeeper服务

zkServer.sh stop

再次启动查看服务

查看防火墙状态

sudo ufw status

关闭防火墙(每个节点都关闭

sudo ufw disable

再次启动就可以了

7,测试客户端连接

进入ZooKeeper安装目录下的bin文件夹执行启动命令(任意节点都可以)

zkCli.sh -server node001:2181

在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐