文档首页 > > 移植指南> 其他> 移植Zookeeper

移植Zookeeper

分享
更新时间:2020/08/06 GMT+08:00

介绍

简要介绍

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

语言:Java

一句话描述:分布式应用程序协调软件

开源协议:Apache

建议的版本

建议使用版本为“3.4.x”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.large.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

说明

下载地址

CentOS

  • 版本:7.5
  • Kernel:4.14.0

在公共镜像中已提供

EulerOS

  • 版本:2.8
  • Kernel:4.19.36

在公共镜像中已提供

配置编译环境

Java版本需要在1.8.0及上版本。

您可以通过执行下面命令,安装java 1.8.0。

yum install java-1.8.0-openjdk

获取源码

  1. 执行如下命令,创建目录/opt/zookeeper。

    mkdir /opt/zookeeper

  2. 执行如下命令,进入目录/opt/zookeeper。

    cd /opt/zookeeper

  3. 执行如下命令,下载软件包。

    wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

编译和安装

  1. 执行如下命令,解压软件包。

    tar -zxvf zookeeper-3.4.14.tar.gz

  2. 执行如下命令,进入目录zookeeper-3.4.14。

    cd zookeeper-3.4.14

  3. 执行如下命令,创建日志存放目录。

    mkdir dataDir

  4. 执行如下命令,进入conf目录。

    cd conf

  5. 执行如下命令,备份zoo_sample.cfg文件。

    cp zoo_sample.cfg zoo.cfg

  6. 执行如下命令,编辑zoo.cfg文件。

    vim zoo.cfg

  7. 修改配置文件,如图1所示。

    图1 修改配置文件

  8. 按“Esc”键。
  9. 输入“wq!”保存退出。
  10. 设置ZooKeeper开机启动。

    1. 依次执行如下命令,进入到/etc/rc.d/init.d目录下,新建一个zookeeper脚本。

      cd /etc/rc.d/init.d/

      touch zookeeper

      chmod +x zookeeper

    2. 执行如下命令,编辑zookeeper文件。

      vim zookeeper

    3. vim编译zookeeper脚本文件,在文件中输入如下内容:
      #!/bin/bash
      
      #chkconfig:2345 10 90
      #description:service zookeeper
      
      export     ZOO_LOG_DIR=/data/zookeeper/logs
      
      ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.14/
      
      case  "$1"   in
          start)  su  root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  start;;
          start-foreground)  su  root ${ZOOKEEPER_HOME}/bin/zkServer.sh   start-foreground;;
          stop)  su  root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  stop;;
          status)  su root  ${ZOOKEEPER_HOME}/bin/zkServer.sh    status;;
          restart)  su root   ${ZOOKEEPER_HOME}/bin/zkServer.sh   restart;;
          upgrade)su root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  upgrade;;
          print-cmd)su root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  print-cmd;;
          *)  echo "requirestart|start-foreground|stop|status|restart|print-cmd";;
      esac
    4. 执行如下命令,开启开机启动。

      chkconfig zookeeper on

运行和验证

  1. 执行如下命令,启动ZooKeeper。

    service zookeeper start

    关闭ZooKeeper命令:service zookeeper stop

  2. 执行如下命令,启动zkcli工具连接zookeeper。

    cd /opt/zookeeper/zookeeper-3.4.14/bin

    ./zkCli.sh

    当回显如图2所示时,表示连接成功。

    图2 连接成功

  3. 执行如下命令,查看当前zookeeper中所包含的内容。

    ls /

    系统回显类似如下信息:
    [zookeeper]

  4. 执行如下命令,创建一个新的znode。

    create /huawei x86

    系统回显如下信息,表示创建成功。
    Created /huawei

  5. 执行如下命令,再次查看zookeeper所包含的内容。

    ls /

    系统回显如下信息:
    [huawei, zookeeper]

  6. 执行如下命令,查看新建znode的信息。

    get /huawei

    系统回显如下信息:
    x86
    cZxid = 0x6
    ctime = Thu Jun 20 21:43:29 CST 2019
    mZxid = 0x6
    mtime = Thu Jun 20 21:43:29 CST 2019
    pZxid = 0x6
    cversion = 0
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0

  7. 执行如下命令,修改znode的内容:将“x86”修改为“arm”。

    set /huawei arm

    系统回显如下信息,表示修改成功。
    cZxid = 0x6
    ctime = Thu Jun 20 21:43:29 CST 2019
    mZxid = 0x8
    mtime = Thu Jun 20 21:45:52 CST 2019
    pZxid = 0x6
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0

  8. 执行如下命令,查看修改后的znode。

    get /huawei

    系统回显如下:
    arm
    cZxid = 0x6
    ctime = Thu Jun 20 21:43:29 CST 2019
    mZxid = 0x8
    mtime = Thu Jun 20 21:45:52 CST 2019
    pZxid = 0x6
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 3
    numChildren = 0

  9. 执行如下命令,删除znode。

    delete /huawei

  10. 执行如下命令,查看此时zookeeper所包含的内容。

    ls /

    系统回显信息如下。
    [zookeeper]

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问