大数据系列——ZooKeeper部署及应用

ZooKeeper有三种部署方式,分别为单机模式、伪集群模式、集群模式。

其中单机模式比较简单,自行查找;伪集群模式和集群模式基本一样,区别就是前者都在一台电脑上,后者在不同的电脑上。

下面以生产环境一般用的集群方式部署为例说明,按最小要求3台节点来介绍集群部署方式。本样例是在3台虚拟机下部署的,每个节点安装Centos7核心版(不带GUI)

3台机器分别规划如下:

hdp1:10.10.10.110

hdp2:10.10.10.112

hdp3:10.10.10.113

相关配置

挂载windows目录、 IP配置、hosts名称配置、关闭防火墙、SSH配置, 需要3台电脑网络互通且能相互SSH登录,

具体操作参见:

Linux系列——挂载Windows虚拟文件夹到Linux系统

Linux系列——配置SSH免密登录

Linux系列——常规基础操作

jdk安装

具体参见:Linux系列——常规基础操作

ZooKeeper安装

先在其中任意一台上面安装,若要应用hadoop、hbase、kafka时,注意选择匹配版本。

1、下载程序,注意要用带bin的程序,直接解压就可以用,不要选择了源代码还的编译。例如:apache-zookeeper-3.5.9-bin.tar.gz

2、下载地址

https://zookeeper.apache.org/releases.html

3、解压到目标目录

$ cp /mnt/hdfs/vf/apache-zookeeper-3.5.9-bin.tar /usr/proc/zk 从挂载目录将安装文件拷贝到目标路径

$ cd /usr/proc/zk  这里切换到zk安装目录(每台机器都要新建该目录,配好一台后后面两台直接用scp命令分发,具体路径可以自定义,推荐放在/usr下)

$ tar -zxvf apache-zookeeper-3.5.9-bin.tar (解压后记着删除压缩文件)

ZooKeeper配置

1、自带配置样例文件默认在conf目录下,

$ cd /usr/proc/zk/apache-zookeeper-3.5.9-bin/conf   切换到配置文件所在目录

mv zoo_sample.cfg  zoo.cfg  新建配置文件,

2、对配置文件进行相应配置,主要配置下面内容:

1)、配置server.id

server.1=hdp1:2888:3888  (含义:1<下面的myid名字>;hdp1<本机名字> 2888<同步端口> 3888<选举端口>)

server.2=hdp2:2888:3888

server.3=hdp3:2888:3888

2)、配置datadir  logdir 绑定端口及IP

$ mkdir /usr/data/zk/datadir

$ mkdir /usr/data/zk/logdir

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

dataDir=/usr/data/zk/datadir

dataLogDir=/usr/data/zk/logdir

# the port at which the clients will connect

clientPortAddress=10.10.10.110

3)、创建myid文件,

$ mkdir /usr/data/zk/datadir/myid  在数据目录下新建myid文件,用于标识本机,其中id 必须与配置文件里主机名对应的 server.(id) 一致

$ cd /usr/data/zk/datadir  切换到数据目录

$ echo '1' > /myid  设置myid标识

4)、核心参数,保持默认配置

# 发送心跳的间隔时间

tickTime=2000

# leader和follower初始化连接时最长能忍受多少个心跳时间的间隔数

initLimit=10

# 正常请求成功的tick数量

syncLimit=5

# 客户端连接端口

clientPort=2181

分发程序

scp -r /usr/proc/zk  root@hdp2:/usr/proc/zk  分发到hdp2

scp -r /usr/proc/zk  root@hdp2:/usr/proc/zk  分发到hdp3

修改配置

1、分别修改zoo.cfg文件、myid文件

2、clientPortAddress=10.10.10.112  hdp2上修改

$ cd /usr/data/zk/datadir  切换到数据目录

$ echo '2' > /myid  设置myid标识

3、clientPortAddress=10.10.10.113  hdp3上修改

$ cd /usr/data/zk/datadir  切换到数据目录

$ echo '3' > /myid  设置myid标识

启动

1、分别启动3台机器上的ZooKeeper进程

$ cd /usr/proc/zk/apache-zookeeper-3.5.9-bin/ 切换到进程目录

$ zkServer.sh start

2、在启动时若报错可根据提示信息进行排错处理,第一次安装时会遇到如下常见问题:

1)、由于没有指定IP地址报错,要在配置文件绑定地址, clientPortAddress=IP地址

2)、由于开着防火墙导致不能相互通信,需要关闭防火墙, 用命令  systemctl stop firewalld  进行关闭防火墙

查看状态

1、在3台机器都正确启动ZooKeeper进程后,进行查看状态,

$ cd /usr/proc/zk/apache-zookeeper-3.5.9-bin/ 切换到进程目录

$ zkServer.sh status

2、启动后3台机器的状态,其中有一台是:leader,另外2台是:follower

基本操作

启动实例:./bin/zkServer.sh start

停止实例:./bin/zkServer.sh stop

重启实例:./bin/zkServer.sh restart

查看状态:./bin/zkServer.sh status

打开zk客户端, 参数可选

zkCli.sh -server ip:port 

输出所有zk支持的命令

help

// 查看节点所包含的节点

ls path

// 创建一个新节点

// -e 创建临时节点

// -s 创建有序节点

create [-e] [-s] path [data]

// 查看节点上的值

get path

// 设置节点上的值

set path data

// 删除节点(只能删除没有下级节点的类型)

delete path

// 删除节点(递归删除下级节点)

rmr path

你可能感兴趣的