Linux环境ZooKeeper安装配置及使用

转载自:YBCarry

一、ZooKeeper

1.1 zookeeper作用

  • 存储+监听

1.2 zookeeper角色

  • 主从结构

1)Leader领导者->主
2)Follower追随者->从
3)zookeeper由一个领导者多个追随者组成

**zookeeper集群中只要有半数以上的节点存活,zookeeper集群就能正常工作。(高可用)**所以搭建zk集群最好搭建奇数台(3,5,11)。

1.3 zookeeper功能

大数据中使用zookeeper业务:

  • 1)做统一的配置管理
  • 2)做统一的命名服务
  • 3)做统一的集群管理
  • 4)做服务器的动态上下线感知(代码)

二、集群规划

  1. hadoop01、hadoop02和hadoop03三个节点上部署ZooKeeper。
  2. 上传安装包zookeeper-3.4.10.tar.gz
  3. 具备java环境

三、安装流程

(1)单节点安装——hadoop01

解压zookeeper安装包到目标目录下:

$ tar -zxvf zookeeper-3.4.10.tar.gz -C 目标目录

在zookeeper的根目录zookeeper-3.4.10/下创建zkData:

$ mkdir -p zkData

重命名zookeeper-3.4.10/conf目录下的zoo_sample.cfg为zoo.cfg作为配置文件:

$ mv zoo_sample.cfg zoo.cfg

(2)配置zoo.cfg文件

修改dataDir路径为创建的zkData路径:

 dataDir=/XXXXXX/zookeeper-3.4.10/zkData

增加集群信息:

  #######################cluster##########################  
  server.1=hadoop01:2888:3888  
  server.2=hadoop02:2888:3888  
  server.3=hadoop03:2888:3888  
  • 2888:zookeeper服务之间通信端口
  • 3888:zookeeper选举机制端口
  • 2181:zookeeper客户端用于连接zookeeper服务器

(3)配置参数解读

Server.A=B:C:D。

  • A是一个数字,表示这个是第几号服务器;
  • B是这个服务器的ip地址;
  • C是这个服务器与集群中的Leader服务器交换信息的端口;
  • D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。

(4)集群操作

  • 在zookeeper-3.4.10/zkData目录下创建一个myid的文件:
touch myid
  • 编辑myid文件:(注意myid除编号外不能有任何多余内容,包括空格和空行) vi myid 在文件中添加与server对应的编号:如1
  • 拷贝配置好的zookeeper到其他机器上
    scp -r zookeeper-3.4.10/ hadoop02:$PWD
    scp -r zookeeper-3.4.10/ hadoop03:$PWD
  • 分别修改myid文件中内容为2、3

(5)选举机制

在这里插入图片描述

四、命令行操作

(1)配置环境变量:

修改配置文件:

vi /etc/profile

增加以下内容:

export ZOOKEEPER_HOME=zookeeper安装路径
export PATH=ZOOKEEPER_HOME/bin

声明环境变量:

source /etc/profile

(2)启动zookeeper集群

$ bin/zkServer.sh start

(3)查看zookeeper状态

$ bin/zkServer.sh status

(4)启动客户端

$ bin/zkCli.sh

(5)退出客户端

$ quit

(6)连接其它机器客户端操作

$ connect 主机名:2181

(7)查看历史操作记录

$ history

(8)查看当前节点的内容

$ ls /

(9)创建节点

$ create /节点名 数据信息

(10)查看节点的值

$ get /节点名

(11)创建节点的可选项

$ create [-s] [-e] path data acl
  • [-e] 短暂节点,退出客户端后消失。
  • [-s] 序号,可创建节点名相同的节点,序号依次累加。

(12)修改节点值

$ set path data [version]
  • [version] 版本
  • 注意:设置版本号 必须从0开始

(13)删除节点

$ delete path

(14)创建子节点

$ create /节点名/子节点名 数据信息

(15)递归删除

$ rmr /节点名

(16)监听

获得监听:

$ get path watch

获得当前节点下增减变化:

$ ls path watch

(17)查看当前节点状态

$ stat /节点名

五、节点状态信息

  • czxid:zookeeper事务id
  • ctime:节点创建时间
  • mZxid:最后更新的
  • czxid mtime:最后修改的时间
  • pZxid:最后更新子节点的czxid
  • cversion:子节点的变化号、子节点修改次数
  • dataVersion:数据变化号
  • aclVersion:访问控制列表的变化号
  • ephemeralOwner:临时节点判断
  • dataLength:节点数据长度
  • numChildren:子节点个数
原文地址:https://www.cnblogs.com/aixing/p/13327399.html