Zookeeper集群安装

1 Zookeeper简介

ZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步、提供组服务。分布式应用程序以某种形式使用所有这些类型的服务。每次实现它们时,都有大量的工作要做,以修复不可避免的错误和竞争条件。由于实现这类服务的困难,应用程序最初通常会忽略它们,这使得它们在出现变化时变得脆弱,并且难以管理。即使正确地完成了这些服务,在部署应用程序时,这些服务的不同实现也会导致管理复杂性。

2 Zookeeper安装部署

前提条件

  安装好jdk,安装jdk可参考 在CentOS7部署Hadoop-CSDN博客 中jdk安装

2.1 Zookeeper下载

从Zookeeper官网选 Apache ZooKeeper 选择合适的版本下载

以下集群部署以apache-zookeeper-3.7.1-bin.tar.gz为例

2.2 集群规划

集群规划
node1node2node3

Zookeeper

Zookeeper

Zookeeper

Zookeeper

有三个节点为例,多个节点部署方法类似

2.3 解压安装

说明:在home/hadoop/soft下用于存放解压后的包

在home/hadoop/installfiles目录下用于存放安装包

在node1节点:

将下载好的安装包上传到/home/hadoop/installfiles目录下

在installfiles目录下将安装包解压到/home/hadoop/soft目录下

[hadoop@node1 ~]$ cd installfiles/

[hadoop@node1 installfiles]$ ls

apache-zookeeper-3.7.1-bin.tar.gz hadoop-3.3.4.tar.gz jdk-8u212-linux-x64.tar.gz

[hadoop@node1 installfiles]$ tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C ~/soft/

为了方便后续的操作

切换到soft目录下apache-zookeeper-3.7.1-bin名称修改为zookeeper

[hadoop@node1 soft]$ mv apache-zookeeper-3.7.1-bin zookeeper

2.4 配置服务器编号

在/home/hadoop/soft/zookeeper/目录下创建zkData目录

[hadoop@node1 zookeeper]$ mkdir zkData

在/home/hadoop/soft/zookeeper/zkData目录下创建一个myid的文件

[hadoop@node1 zkData]$ vim myid

在文件中添加与server对应的编号:

1

2.5 配置zoo.cfg文件

此文件在zookeeper中的conf目录下,

重命名/home/hadoop/soft/zookeeper/conf目录下的zoo_sample.cfg为zoo.cfg

[hadoop@node1 conf]$ mv zoo_sample.cfg zoo.cfg

编写zoo.cfg文件

[hadoop@node1 conf]$ vim zoo.cfg

修改数据存储路径配置

dataDir=/home/hadoop/soft/zookeeper/zkData

在最后增加如下配置

#######################cluster##########################
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888

解读配置

server.A=B:C:D

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

B是这个服务器的地址;

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

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

使用xsync分发  xsync安装可参考在CentOS7部署Hadoop-CSDN博客中的安装rsync分发脚本部分

将/home/hadoop/soft/zookeeper目录内容分发到node2、node3

[hadoop@node1 soft]$ xsync zookeeper/

分别修改node2、node3在/home/hadoop/soft/zookeeper/zkData/myid文件中内容为2、3

2.6 启动集群

分别在node1、node2和node3上启动Zookeeper

切换到Zookeeper目录下使用bin/zkServer.sh start命令启动

查看状态

[hadoop@node1 zookeeper]$ bin/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/soft/zookeeper/bin/../conf/zoo.cfg

Client port found: 2181. Client address: localhost. Client SSL: false.

Mode: follower

[hadoop@node2 zookeeper]$ bin/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/soft/zookeeper/bin/../conf/zoo.cfg

Client port found: 2181. Client address: localhost. Client SSL: false.

Mode: leader

[hadoop@node3 zookeeper]$ bin/zkServer.sh status

ZooKeeper JMX enabled by default

Using config: /home/hadoop/soft/zookeeper/bin/../conf/zoo.cfg

Client port found: 2181. Client address: localhost. Client SSL: false.

Mode: follower

2.7 集群启动停止脚本

在node1的/home/hadoop/bin目录下创建脚本zk.sh脚本

[hadoop@node1 zookeeper]$ cd /home/hadoop/bin

[hadoop@node1 bin]$ vim zk.sh

脚本内容如下

#!/bin/bash

case $1 in
"start"){
	for i in node1 node2 node3
	do
        echo ---------- zookeeper $i 启动 ------------
		ssh $i "/home/hadoop/soft/zookeeper/bin/zkServer.sh start"
	done
};;
"stop"){
	for i in node1 node2 node3
	do
        echo ---------- zookeeper $i 停止 ------------    
		ssh $i "/home/hadoop/soft/zookeeper/bin/zkServer.sh stop"
	done
};;
"status"){
	for i in node1 node2 node3
	do
        echo ---------- zookeeper $i 状态 ------------    
		ssh $i "/home/hadoop/soft/zookeeper/bin/zkServer.sh status"
	done
};;
esac

添加权限

[hadoop@node1 bin]$ chmod 777 zk.sh

Zookeeper集群启动脚本

[hadoop@node1 bin]$ zk.sh start

Zookeeper集群停止脚本

[hadoop@node1 bin]$ zk.sh stop

Zookeeper集群状态查询脚本

[hadoop@node1 bin]$ zk.sh status

以上部署完成~~~

3 客户端

3.1启动客户端

[hadoop@node1 zookeeper]$ bin/zkCli.sh

3.2 客户端基本命令操作

命令基本语法

功能描述

help

显示所有操作命令

ls path

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

-w  监听子节点变化

-s   附加次级信息

create

普通创建

-s  含有序列

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

get path

获得节点的值

-w  监听节点内容变化

-s   附加次级信息

set

设置节点的具体值

stat

查看节点状态

delete

删除节点

deleteall

递归删除节点

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值