软件介绍

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

支持的ARM体系结构

ZooKeeper可支持ARMv8体系结构。

华为鲲鹏生态基于ARMv8体系结构,因此ZooKeeper可以支持在华为云鲲鹏 ECS实例上运行。

支持的操作系统

经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行ZooKeeper的全部功能:

l CentOS7.5

l EulerOS2.8

支持版本和获取方式

建议使用3.4.x版本

安装和部署

本文选用华为鲲鹏云服务ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920,详细规格见下:

类别 子项 版本
云主机配置 ECS实例类型 kc1.xlarge.4
ECS配置 4U16GB
EVS 高IO(100GB)
云OS Euler OS 2.8
Kernel 4.19.36

1.运行环境配置和必要条件准备

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

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

yum install java-1.8.0-openjdk

2.软件的安装步骤

本文采用zookeeper-3.4.14版本为例,采用直接下载软件包方式安装ZooKeeper。

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

mkdir /opt/zookeeper

1)执行如下命令,进入目录/opt/zookeeper。

cd /opt/zookeeper

2)执行如下命令,下载软件包。

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

3)执行如下命令,解压软件包。

tar -zxvf zookeeper-3.4.14.tar.gz

4)执行如下命令,进入目录zookeeper-3.4.14。

cd zookeeper-3.4.14

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

mkdir dataDir

6)执行如下命令,进入conf目录。

cd conf

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

cp zoo_sample.cfg zoo.cfg

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

vim zoo.cfg

9)配置文件修改以下内容:

10) 按“Esc”键。

  1. 输入“wq!”保存退出。

  2. 设置ZooKeeper开机启动。

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

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

touch zookeeper

chmod +x zookeeper

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

vim zookeeper

c. 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

d. 执行如下命令,开启开机启动。

chkconfig zookeeper on

3.软件的运行启动

执行如下命令,启动ZooKeeper。

service zookeeper start

关闭ZooKeeper命令:

service zookeeper stop

测试已完成编译的软件

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

cd /opt/zookeeper/zookeeper-3.4.14/bin

./zkCli.sh

当回显如下内容是,表示连接成功。

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

ls /

系统回显类似如下信息:

[zookeeper]

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

create /huawei x86

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

Created /huawei

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

ls /

系统回显如下信息:

[huawei, zookeeper]

5.执行如下命令,查看新建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

6.执行如下命令,修改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

7.执行如下命令,查看修改后的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

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

delete /huawei

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

ls /

系统回显信息如下。

[zookeeper]