一、Zookeeper入门

1.概述

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。

2 .特点

zookeeper集群状态描述 zookeeper 集群_zookeeper集群状态描述


1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。

2)集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。
3)全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
4)更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。

5)数据更新原子性,一次数据更新要么成功,要么失败。

6)实时性,在一定时间范围内,Client能读到最新数据。

3.应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。

二、Zookeeper单机版安装

下载地址:https:///zookeeper/zookeeper-3.5.10/

本次安装前提:Hadoop集群已搭建完成

1.拷贝apache-zookeeper-3.5.7-bin.tar.gz安装包到Linux系统下

zookeeper集群状态描述 zookeeper 集群_大数据_02


zookeeper集群状态描述 zookeeper 集群_大数据_03


解压到指定目录

[hadoop@hadoop101 software]$ tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/

zookeeper集群状态描述 zookeeper 集群_zookeeper_04


zookeeper集群状态描述 zookeeper 集群_hadoop_05

修改名称

[hadoop@hadoop101 module]$ mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7

zookeeper集群状态描述 zookeeper 集群_大数据_06


2.配置修改

将/opt/module/zookeeper-3.5.7/conf这个路径下的zoo_sample.cfg修改为zoo.cfg

[hadoop@hadoop101 conf]$ vim zoo.cfg

zookeeper集群状态描述 zookeeper 集群_vim_07

打开zoo.cfg文件,修改dataDir路径

[hadoop@hadoop101 conf]$ vim zoo.cfg

dataDir:保存Zookeeper中的数据
clientPort = 2181:客户端连接端口,通常不做修改。

修改如下内容:

dataDir=/opt/module/zookeeper-3.5.7/zkData

zookeeper集群状态描述 zookeeper 集群_大数据_08


在/opt/module/zookeeper-3.5.7/这个目录上创建zkData文件夹

[hadoop@hadoop101 zookeeper-3.5.7]$ mkdir zkData

zookeeper集群状态描述 zookeeper 集群_hadoop_09

3.操作Zookeeper

启动Zookeeper,查看进程是否启动,查看状态

[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ status
[hadoop@hadoop101 zookeeper-3.5.7]$ jps

zookeeper集群状态描述 zookeeper 集群_zookeeper集群状态描述_10

三、Zookeeper集群安装

配置服务器编号

[hadoop@hadoop101 zookeeper-3.5.7]$ cd zkData/
[hadoop@hadoop101 zkData]$ vim myid

zookeeper集群状态描述 zookeeper 集群_vim_11

zookeeper集群状态描述 zookeeper 集群_zookeeper集群状态描述_12


配置zoo.cfg文件

[hadoop@hadoop101 conf]$ vim zoo.cfg

zookeeper集群状态描述 zookeeper 集群_hadoop_13


在文件中添加以下内容:

server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888

zookeeper集群状态描述 zookeeper 集群_zookeeper_14


拷贝配置好的zookeeper到其他机器上(分发脚本Hadoop阶段已写好)

[hadoop@hadoop101 conf]$ xsync /opt/module/

zookeeper集群状态描述 zookeeper 集群_大数据_15

zookeeper集群状态描述 zookeeper 集群_大数据_16

zookeeper集群状态描述 zookeeper 集群_hadoop_17


zookeeper集群状态描述 zookeeper 集群_vim_18


修改其他机器的myid

[hadoop@hadoop102 module]$ vim zookeeper-3.5.7/zkData/myid

zookeeper集群状态描述 zookeeper 集群_vim_19

[hadoop@hadoop103 module]$ vim zookeeper-3.5.7/zkData/myid

zookeeper集群状态描述 zookeeper 集群_zookeeper集群状态描述_20


分别启动Zookeeper ,查看状态

[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop101 zookeeper-3.5.7]$ bin/ status
[hadoop@hadoop102 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop102 zookeeper-3.5.7]$ bin/ status
[hadoop@hadoop103 zookeeper-3.5.7]$ bin/ start
[hadoop@hadoop103 zookeeper-3.5.7]$ bin/ status

zookeeper集群状态描述 zookeeper 集群_zookeeper集群状态描述_21

zookeeper集群状态描述 zookeeper 集群_zookeeper_22


zookeeper集群状态描述 zookeeper 集群_zookeeper_23

四、Zookeeper集群启动停止脚本

[hadoop@hadoop101 bin]$  vim /home/hadoop/bin/myzookper.sh

脚本中添加如下内容:

#!/bin/bash

case $1 in
"start"){
        for i in hadoop101 hadoop102 hadoop103
        do
        echo ---------- zookeeper $i 启动 ------------
                ssh $i "/opt/module/zookeeper-3.5.7/bin/ start"
        done
};;
"stop"){
        for i in hadoop101 hadoop102 hadoop103
        do
        echo ---------- zookeeper $i 停止 ------------    
                ssh $i "/opt/module/zookeeper-3.5.7/bin/ stop"
        done
};;
"status"){
        for i in hadoop101 hadoop102 hadoop103
        do
        echo ---------- zookeeper $i 状态 ------------    
                ssh $i "/opt/module/zookeeper-3.5.7/bin/ status"
        done
};;
esac

zookeeper集群状态描述 zookeeper 集群_zookeeper集群状态描述_24


增加脚本执行权限

[hadoop@hadoop101 bin]$ chmod u+x myzookper.sh

zookeeper集群状态描述 zookeeper 集群_大数据_25

群起脚本,查看状态,关闭集群

[hadoop@hadoop101 bin]$ mv myzookper.sh myzookper
[hadoop@hadoop101 bin]$ myzookper start
[hadoop@hadoop101 bin]$ myzookper status
[hadoop@hadoop101 bin]$ myzookper status

zookeeper集群状态描述 zookeeper 集群_vim_26


zookeeper集群状态描述 zookeeper 集群_zookeeper_27