Zookeeper简介和安装

一、Zookeeper简介

ZooKeeper 是一个开源的分布式协调服务框架。

ZooKeeper是 Hadoop项目中的一个子项目,是 Hadoop集群管理的一个必不可少的模块,它主要用来解决分布式集群中应用系统的一致性问题。

ZooKeeper本质上是一个分布式的小文件存储系统(Zookeeper=文件系统+监听机制)。但并不是用来专门存储数据,它的作用主要是用来维护和监控你存储的数据的状态变化。从而可以设计出多种多样的分布式的数据管理模型。

Zookeeper提供了基于层次型的目录树(类似于文件系统)的数据存储结构,并且可以对树中的节点进行有效管理,从而用来维护和监控存储的数据的状态变化。通过这些数据状态的变化,可以达到基于数据的集群管理、数据发布订阅、负载均衡、统一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调、Master选举等功能。

二、Zookeeper安装和连接

Zookeeper的安装方式有很多,这里使用 Docker进行安装使用。

  • zookeeper 官网:https://zookeeper.apache.org/
  • zookeeper 下载地址为: https://zookeeper.apache.org/releases.html

1、拉取镜像容器安装

1) 查找 Zookeeper镜像,查看本地镜像

[root@centos7 ~]# docker search zookeeper 
...
[root@centos7 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
redis6       v6.0.8    5452fb8a98eb   10 hours ago   104MB
zookeeper    3.6.3     25511be3b9ee   2 weeks ago    269MB

2)拉取 Zookeeper镜像

没有镜像就拉取,有的话就省略这一步。

[root@centos7 ~]# docker pull zookeeper:3.6.3

3)创建并启动容器

[root@centos7 ~]# docker run -d --name zookeeper_v3.6.3 -p 192.168.198.110:2181:2181 zookeeper:3.6.3
9bb8ce0a893f93fe739b1ac3f665c5d6c83cae199f31662c28ad021313a86fea

[root@centos7 ~]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED         STATUS         PORTS                                                          NAMES
9bb8ce0a893f   zookeeper:3.6.3   "/docker-entrypoint.…"   8 seconds ago   Up 6 seconds   2888/tcp, 3888/tcp, 192.168.198.110:2181->2181/tcp, 8080/tcp   zookeeper_v3.6.3

4)进入启动好的 Zookeeper服务

[root@centos7 ~]# docker exec -it 9bb8ce0a893f /bin/bash
root@9bb8ce0a893f:/apache-zookeeper-3.6.3-bin# ls
LICENSE.txt  NOTICE.txt  README.md  README_packaging.md  bin  conf  docs  lib

使用 ls命令查看了 Zookeeper目录结构:

  • bin 存放系统脚本
  • conf 存放配置文件
  • docs zk 文档

其中 bin 和 conf 是我们平时经常使用的。

2、zkCli 客户端连接 Zookeeper服务

先进入 bin目录:

root@9bb8ce0a893f:/apache-zookeeper-3.6.3-bin# cd bin
root@9bb8ce0a893f:/apache-zookeeper-3.6.3-bin/bin# ls
README.txt    zkCli.sh   zkServer-initialize.sh  zkSnapShotToolkit.cmd  zkTxnLogToolkit.sh
zkCleanup.sh  zkEnv.cmd  zkServer.cmd            zkSnapShotToolkit.sh
zkCli.cmd     zkEnv.sh   zkServer.sh             zkTxnLogToolkit.cmd

其中:

  • zkServer:为服务器,启动后默认端口为 2181
  • zkCli:为命令行客户端

然后使用 zkCli 客户端连接 Zookeeper服务(也可以使用绝对路径)。

root@9bb8ce0a893f:/apache-zookeeper-3.6.3-bin/bin# zkCli.sh -server 192.168.198.110:2181
Connecting to 192.168.198.110:2181
...

连接成功后,便可以使用命令与 ZK服务进行交互了。比如:

  • 输入help 命令:查看 ZK支持的所有命令
  • 输入quit 命令 :退出 ZK服务。
[zk: 192.168.198.110:2181(CONNECTED) 1] help
ZooKeeper -server host:port -client-configuration properties-file cmd args
        addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
        addauth scheme auth
        close 
        config [-c] [-w] [-s]
        connect host:port
        create [-s] [-e] [-c] [-t ttl] path [data] [acl]
        delete [-v version] path
        deleteall path [-b batch size]
        delquota [-n|-b] path
        get [-s] [-w] path
        getAcl [-s] path
        getAllChildrenNumber path
        getEphemerals path
        history 
        listquota path
        ls [-s] [-w] [-R] path
        printwatches on|off
        quit 
        reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
        redo cmdno
        removewatches path [-c|-d|-a] [-l]
        set [-s] [-v version] path data
        setAcl [-s] [-v version] [-R] path acl
        setquota -n|-b val path
        stat [-w] path
        sync path
        version 
Command not found: Command not found help

更多常用 zkCli 命令,查看官方文档:https://zookeeper.apache.org/doc/r3.8.0/zookeeperCLI.html

– 求知若饥,虚心若愚。

你可能感兴趣的:(#,Zookeeper,Zookeeper安装)