【大数据工具】Zookeeper 分布式集群和伪分布式安装

Zookeeper 安装

zookeeper 安装包下载地址:https://archive.apache.org/dist/zookeeper/

1. 伪分布式部署

说明:伪分布即在一台服务器上通过不同端口模拟出分布式集群的效果,分布式一般 3 台起,一主两从。

说明:伪分布安装在了 Windows 开辟的虚拟机上,主机名为 bigdata

1. 将 zookeeper 安装包 zookeeper-3.4.10.tar.gz 导入 Linux

2. 解压并重命名

[root@bigdata ~]# cd /software/
[root@bigdata software]# tar -zxvf zookeeper-3.4.10.tar.gz -C .
[root@bigdata software]# mv zookeeper-3.4.10 zk

3. 配置环境变量

# /etc/profile
export ZOOKEEPER_HOME=/software/zk
export PATH=.:$PATH:$ZOOKEEPER_HOME/bin

4. 备份及修改 zk 配置文件 zoo_sample.cfg.bak

[root@bigdata software]# cd zk/conf
[root@bigdata conf]# cp zoo_sample.cfg zoo1.cfg
[root@bigdata conf]# vi zoo1.cfg  # 修改该文件,注意一下两点即可,其他按默认即可
# 客户端端口,三个节点需要指定不同端口避免端口冲突
clientPort=2181
# 存放数据的目录,自定义,后边创建
dataDir=/software/zk/data/bigdata1
# 服务器列表及端口,三个节点需要指定不同的端口避免端口冲突
server.1=bigdata:2887:3887
server.2=bigdata:2888:3888
server.3=bigdata:2889:3889
  • 说明1:需要修改或添加的配置项
    • 修改 clientPortdataDir
    • 下边三行是需要添加的,指定各节点信息端口,格式为:
server.id=hostname:port1:port2
  • 说明2:参数解释

    • tickTime:zk 服务器和客户端会话心跳超时间间隔,单位为毫秒
    • initLimit:在 zk follower 和 leader 之间进行数据同步最大超时次数,比如 initLimit = 5 ,tickTime = 2000,则允许最大延迟则为 5 * 2000 = 10000 毫秒
    • syncLimit:在 follower 和 leader 之间数据同步和消息发送时,请求和应答不能超过多少个 tickTIme
    • dataDir:zk 内部存储数据的磁盘位置,默认情况下 zk 的日志文件也保存在这个目录中。zk 运行期间会将数据存储在内存,保证访问速度
    • server.x:zk 的服务器列表,格式如下:server.x = hostname:port1:port2 ,x 为从 1 -N 的数字,说明该节点 zk 集群中的编号,该编号在 myid 中配置,hostname 为当前服务器主机名或 IP,port1 为 follower 和 leader 之间通讯端口,port2 为 leader 失效后选举端口
    • myid:在各自的 dataDir 目录中,内容就是当前服务器的编号

zoo1.cfg 配置完后为其他两个节点复制两份,并修改 clientPort 和 dataDir:

[root@bigdata conf]# cp zoo1.cfg zoo2.cfg
[root@bigdata conf]# cp zoo1.cfg zoo3.cfg
[root@bigdata conf]# vi zoo2.cfg
clientPort=2182
dataDir=/software/zk/data/bigdata2
[root@bigdata conf]# vi zoo3.cfg
clientPort=2183
dataDir=/software/zk/data/bigdata3

5. 创建节点数据存放目录及 myid

  • 根据 zoox.cfg 中 dataDir 创建目录
[root@bigdata conf]# mkdir /software/zk/data
[root@bigdata conf]# cd /software/zk/data
[root@bigdata data]# mkdir bigdata1 bigdata2 bigdata3
[root@bigdata data]# vi bigdata1/myid
1
[root@bigdata data]# vi bigdata2/myid
2
[root@bigdata data]# vi bigdata3/myid
3

6. 启动 zk 并查看

  • 启动:
# 在 zk/bin 目录下
zkServer.sh start zoo1.cfg
zkServer.sh start zoo2.cfg
zkServer.sh start zoo3.cfg
  • 查看进程:
[root@bigdata zk]# jps
2320 Jps
2050 QuorumPeerMain
2008 QuorumPeerMain
1980 QuorumPeerMain
  • 查看节点状态:一个 leader,两个 follower
[root@bigdata zk]# bin/zkServer.sh status zoo1.cfg
ZooKeeper JMX enabled by default
Using config: /software/zk/bin/../conf/zoo1.cfg
Mode: follower
[root@bigdata zk]# bin/zkServer.sh status zoo2.cfg
ZooKeeper JMX enabled by default
Using config: /software/zk/bin/../conf/zoo2.cfg
Mode: leader
[root@bigdata zk]# bin/zkServer.sh status zoo3.cfg
ZooKeeper JMX enabled by default
Using config: /software/zk/bin/../conf/zoo3.cfg
Mode: follower
  • 根据 zk 选举机制,一共 3 台,当第二台启动后就会根据 serverid 选举出 myid 大的作为 leader,myid 小的和第三台作为 follower

图示:

【大数据工具】Zookeeper 分布式集群和伪分布式安装_第1张图片

2. 分布式集群安装

1. 上传解压名命名

# 将zookeeper解压后文件夹重命名为zk
mv zookeeper-3.4.10.tar.gz /software
tar -zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zk

2. 配置环境变量

export ZOOKEEPER_HOME=/software/zk
export PATH=.:$PATH:$ZOOKEEPER_HOME/bin
# 配置完source一下,使其生效:
source /etc/profile

3. 修改配置文件

cd /software/zk/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
# 在 /software/zk/ 下创建zk的数据存放目录data,并配置到此
dataDir=/software/zk/data
# 在最后添加上以下内容,其中2888是通讯端口,3888是选举端口
server.0=hadoop0:2888:3888
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888

4. 配置 myid

mkdir /software/zk/data
cd /software/zk/data
vi myid
# 把 0 写到该文件的最上边,Hadoop1的就写1,Hadoop2的就写2

5. 复制到其他节点上

  • 若 zk 在之前就安装好了,只需修改配置文件和创建 ZooKeeper 的数据存放目录

6. 环境变量的赋值

  • 按 serverID 命名须知,修改 /etc/myid 里的数值(myid 就是 serverID,0~255)

7. 关闭防火墙和 selinux

# 查看防火墙状态
systemctl status firewalld.service
# 停止防火墙命令
systemctl stop firewalld
# 开机禁止启动命令
systemctl disable firewalld

# 查看selinux状态,非 disabled 则需要禁用
sestatus
# 修改selinux配置文件
vi /etc/selinux/config
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 然后重启机器
reboot

8. 启动测试

  • 分别在三台机器下启动
cd /software/zk/bin  # 配置了zk的环境变量可以不切到该目录,在任意目录执行start都可以
zkServer.sh start
# 查看服务器的各个角色:
zkServer.sh status
有Follower、Leader等等

说明:

  • leader 不一定是在第一个节点上面,是由 Zookeeper 内部的选举机制产生的
  • QuorumPeerMain 进程是 ZooKeeper 的进程名字

你可能感兴趣的:(大数据工具安装,java-zookeeper,zookeeper,分布式)