欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ZooKeeper部署

程序员文章站 2022-06-19 08:30:58
...
两台虚拟机(CentOS Linux 7):
    192.168.190.200 master
    192.168.190.201 slave1
   创建两个zookeeper服务,最好是奇数个节点,原因:
    3个节点和4个节点时,允许节点宕机数目都为1个(三分之一),所以从高可用角度,3个和4个效果一样

所有节点都执行(hadoop用户)
1. 在 /home/hadoop/ 下创建目录,如下结构:
    
    zookeeper_server
    |——  data
    |——  logs
    
    (**下面是很关键的一步)
    并在 data/ 下创建 myid 文件,用于存放 zk的server_id
        master 节点中的 myid 文件内容: 0
        slave1 节点中的 myid 文件内容: 1

2. 下载 ZooKeeper 版本:zookeeper-3.4.14.tar.gz ,存放/opt/下
3. 解压
    $ cd /opt
    $ tar -zxvf zookeeper-3.4.14.tar.gz
4. 复制并修改配置文件
    $ cd zookeeper-3.4.14/conf
    $ cp zoo_sample.cfg zoo.cfg
    $ vi zoo.cfg

    <如下配置:>
    tickTime=2000    # 客户端与服务端的心跳间隔(毫秒)
    initLimit=10    # follower和leader服务器间初始连接的超时时间,tick倍数
    syncLimit=5    # follower和leader服务器间同步时的超时时间,tick倍数
    dataDir=/home/hadoop/zookeeper_server/data    # 内存数据库快照存放目录
    dataLogDir=/home/hadoop/zookeeper_server/logs    # 事务日志目录
    clientPort=2181    # 服务器向客户端提供的连接端口号
    server.0=192.168.190.200:2888:3888    # 服务器0地址
    server.1=192.168.190.201:2888:3888    # 服务器1地址
    注:server.id=host:port:port 中的后两个端口号分别用于仲裁通讯和群首选举


5. 配置zk环境变量,在/etc/profile文件末尾添加如下内容:
    $ su root
    $ vi /etc/profile
    export ZOOKEEPER_HOME=/opt/zookeeper-3.4.14
    export PATH=$PATH:$ZOOKEEPER_HOME/bin
    $ source /etc/profile

6. 启动所有节点的zk server 进程:
    [email protected] ~]$ zkServer.sh start
    [email protected] ~]$ zkServer.sh start
    启动后,如下信息:
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
    Starting zookeeper ... STARTED    

7. 查看服务是否真的启动了
    $ ps -ef | grep zookeeper

8. 查看zk服务状态(提示:leader 和 follower )
    [email protected] ~]$ zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
    Mode: follower

    [email protected] ~]$ zkServer.sh status
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
    Mode: leader

    **注:1.服务只启动了一个(无法构成法定仲裁人数:至少 三分之二 数量);
         2.或者防火墙没有关;
        3.或者server_id配置错误
        都会如下报错:
    ZooKeeper JMX enabled by default
    Using config: /opt/zookeeper-3.4.14/bin/../conf/zoo.cfg
    Error contacting service. It is probably not running.

9. 相关服务操作:
    $ zkServer.sh start
    $ zkServer.sh status
    $ zkServer.sh restart
    $ zkServer.sh stop
    $ zkServer.sh start-foreground (以打印日志方式启动,容易打印时卡住)

10. 访问集群
    $ zkCli.sh -server master:2181
  1. 创建znode节点,并包含数据
    [zk: master:2181(CONNECTED) 0] create /mynode "Hello zk !"
    Created /mynode
  2. 获取znode数据
    [zk: master:2181(CONNECTED) 1] get /mynode
    Hello zk !
  3. 删除znode节点
    [zk: master:2181(CONNECTED) 2] delete /mynode
  4. 查看根节点下子节点目录
    [zk: master:2181(CONNECTED) 3] ls /
  5. 更多命令查看help
    [zk: master:2181(CONNECTED) 4] help
    ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit
        getAcl path
        close
        connect host:port

参考链接:

1. 《Spark Streaming 实时流式大数据处理实战》5.1 ZooKeeper简介

2. Linux环境快速部署Zookeeper集群