Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。本次移植以Zookeeper3.4.8为例进行说明。
1 软硬件环境
类别 |
子项 |
版本 |
硬件 硬件 |
CPU |
鲲鹏916 |
OS |
Linx |
6.0.90 |
Kernel |
4.19.0 |
|
软件 |
GCC |
7.3.0 |
OpenJDK |
1.8.0_181 |
|
Maven |
3.3.9 |
2 编译环境准备
2.1 安装系统自带的openjdk
java –version查看查看系统是否安装以及java版本号,如果未安装则通过如下命令进行安装:
apt-get install openjdk-8-jdk
2.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):
wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
tar -zxf apache-maven-3.3.9-bin.tar.gz
mv apache-maven-3.3.9 /opt/
修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:
M2_HOME=/opt/tools/installed/apache-maven-3.5.4
PATH=$M2_HOME/bin:$PATH
export M2_HOME GCC_HOME PATH
运行下面的命令,是修改的环境变量生效:
source /etc/profile
修改maven配置文件中的:本地仓路径、远程仓等:
<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录-->
<localRepository>/path/to/local/repo</localRepository>
<!--修改成自己搭建的maven仓库,ARM使能后的jar包替换到该仓库-->
<mirror>
</mirror>
这里配置的是镜像源地址,请根据自己的需要进行修改。
<mirror> <id>mirror</id> <mirrorOf>*</mirrorOf> <name>cmc-cd-mirror</name> <url>镜像源地址</url> </mirror> |
2.3 安装ant
1、安装ant和svn工具
apt-get install ant libsvn1
2、安装automake工具
apt-get install autoconf automake libtool
3 Zookeeper编译
1、从官网上下载zookeeper-release-3.4.8源码并解压:
wget https://github.com/apache/zookeeper/archive/release-3.4.8.tar.gz
tar -zxf zookeeper-release-3.4.8.tar.gz
cd zookeeper-release-3.4.8
2、由于内网网络代理问题,需要修改build.xml和ivysettings.xml文件
(由于在内网编译,需要配置代理。如果可以接入外网环境,不用修改文件,只需要执行ant编译命令)
从http://downloads.sourceforge.net/project/ant-eclipse/ant-eclipse/1.0/ant-eclipse-1.0.bin.tar.bz2,
手动下载ant-eclipse-1.0.bin.tar.bz2,拷贝到${src.dir}/java/ 路径下,并修改build.xml。注释掉如下内容:
在${src.dir}/java/lib/目录下载ivy-2.2.0.jar包,并注释掉相关记录。
wget http://repo1.maven.org/maven2/org/apache/ivy/ivy/2.2.0/ivy-2.2.0.jar
修改ivysettings.xml,修改为所需的镜像仓库地址。
3、执行编译:
ant package tar
编译成功后将在源码目录下./build/目录生成zookeeper-3.4.8.tar.gz包。
4 测试
请参考鲲鹏社区zookeeper移植和测试指导
https://www.huaweicloud.com/kunpeng/software/zookeeper.html
5 参考信息
官方链接:https://zookeeper.apache.org/。
6 FAQ
6.1 报错'AM_PATH_CPPUNIT' not found in library
[exec] configure.ac:37: warning: macro 'AM_PATH_CPPUNIT' not found in library
[exec] configure.ac:37: error: possibly undefined macro: AM_PATH_CPPUNIT
[exec] If this token and others are legitimate, please use m4_pattern_allow.
[exec] See the Autoconf documentation.
[exec] autoreconf: /usr/bin/autoconf failed with exit status: 1
解决方法:安装cppunit
wget https://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/cppunit-1.12.1.tar.gz
tar zxvf cppunit-1.12.1.tar.gz
cd cppunit-1.12.1
./configure --build=arm
make
make install