移植指南(apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(apache)...

69
鲲鹏大数据解决方案 移植指南(Apache文档版本 01 发布日期 2020-03-20 华为技术有限公司

Upload: others

Post on 20-May-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

鲲鹏大数据解决方案

移植指南(Apache)

文档版本 01

发布日期 2020-03-20

华为技术有限公司

Page 2: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

版权所有 © 华为技术有限公司 2020。 保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明

和其他华为商标均为华为技术有限公司的商标。本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示的声明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 i

Page 3: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

目 录

1 Hadoop 3.1.1 移植指南(CentOS 7.6)................................................................................11.1 介绍.............................................................................................................................................................................................. 11.2 环境要求......................................................................................................................................................................................21.3 配置编译环境............................................................................................................................................................................. 21.3.1 安装 Openjdk......................................................................................................................................................................... 21.3.2 安装 Maven............................................................................................................................................................................ 31.3.3 安装 GCC................................................................................................................................................................................. 41.3.4 安装 cmake............................................................................................................................................................................. 41.3.5 安装 Protoc............................................................................................................................................................................. 51.4 执行移植分析............................................................................................................................................................................. 51.5 编译依赖包................................................................................................................................................................................. 51.6 编译 Hadoop..............................................................................................................................................................................61.7 验证.............................................................................................................................................................................................. 71.8 故障排除......................................................................................................................................................................................7

2 Hbase 2.1.0 移植指南(CentOS 7.6)................................................................................... 82.1 介绍.............................................................................................................................................................................................. 82.2 环境要求......................................................................................................................................................................................92.3 配置编译环境............................................................................................................................................................................. 92.3.1 安装 Openjdk......................................................................................................................................................................... 92.3.2 安装 Maven.......................................................................................................................................................................... 102.3.3 安装 GCC............................................................................................................................................................................... 112.3.4 安装 Protoc........................................................................................................................................................................... 112.4 执行移植分析...........................................................................................................................................................................122.5 编译依赖包............................................................................................................................................................................... 122.6 编译 Hbase.............................................................................................................................................................................. 132.7 验证............................................................................................................................................................................................ 132.8 故障排除................................................................................................................................................................................... 13

3 Hive 3.0.0 移植指南(CentOS 7.6)....................................................................................153.1 介绍............................................................................................................................................................................................ 153.2 环境要求................................................................................................................................................................................... 163.3 配置编译环境...........................................................................................................................................................................163.3.1 安装 Openjdk....................................................................................................................................................................... 16

鲲鹏大数据解决方案移植指南(Apache) 目 录

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 ii

Page 4: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

3.3.2 安装 Maven.......................................................................................................................................................................... 173.3.3 安装 Protoc........................................................................................................................................................................... 183.4 执行移植分析...........................................................................................................................................................................183.5 编译依赖包............................................................................................................................................................................... 193.6 编译 Hive.................................................................................................................................................................................. 193.7 验证............................................................................................................................................................................................ 193.8 故障排除................................................................................................................................................................................... 20

4 Spark 2.3.0 移植指南(CentOS 7.6)..................................................................................214.1 介绍............................................................................................................................................................................................ 214.2 环境要求................................................................................................................................................................................... 224.3 配置编译环境...........................................................................................................................................................................224.3.1 安装 Openjdk....................................................................................................................................................................... 224.3.2 安装 Maven.......................................................................................................................................................................... 234.3.3 安装 GCC............................................................................................................................................................................... 244.3.4 安装 R 语言........................................................................................................................................................................... 244.3.5 安装 Scala............................................................................................................................................................................. 254.4 执行移植分析...........................................................................................................................................................................264.5 编译依赖包............................................................................................................................................................................... 264.6 编译 Spark................................................................................................................................................................................274.7 故障排除................................................................................................................................................................................... 274.7.1 编译 Spark 时报错 Cannot find‘R_HOME’. Please specify‘R_HOME’ or make sure R is properlyinstalled........................................................................................................................................................................................... 284.7.2 编译 R 语言时报错 error: cannot compile a simple Fortran program...............................................................284.7.3 编译 R 语言时报错 configure: error: --with-x=yes (default) and X11 headers/libs are not available... 294.7.4 编译 R 语言时报错/usr/bin/install: cannot stat ‘NEWS.pdf’: No such file or directory.........................29

5 Zookeeper 移植指南(CentOS 7.6)...................................................................................315.1 介绍............................................................................................................................................................................................ 315.2 环境要求................................................................................................................................................................................... 325.3 配置编译环境...........................................................................................................................................................................325.3.1 安装 Openjdk....................................................................................................................................................................... 325.3.2 安装 Maven.......................................................................................................................................................................... 335.3.3 安装 ant 和 svn 工具.......................................................................................................................................................... 335.3.4 安装 automake 工具.......................................................................................................................................................... 345.3.5 安装 GCC............................................................................................................................................................................... 345.4 软件移植分析...........................................................................................................................................................................345.5 编译 Zookeeper...................................................................................................................................................................... 34

6 Flink 1.8.1 移植指南(CentOS 7.6)................................................................................... 366.1 介绍............................................................................................................................................................................................ 366.2 环境要求................................................................................................................................................................................... 376.3 配置编译环境...........................................................................................................................................................................376.3.1 安装 Openjdk....................................................................................................................................................................... 376.3.2 安装 Maven.......................................................................................................................................................................... 38

鲲鹏大数据解决方案移植指南(Apache) 目 录

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 iii

Page 5: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

6.3.3 编译 scala..............................................................................................................................................................................386.4 软件移植分析...........................................................................................................................................................................396.5 编译依赖包............................................................................................................................................................................... 396.6 编译 Flink................................................................................................................................................................................. 406.7 故障排除................................................................................................................................................................................... 406.7.1 编译 Flink 时报错................................................................................................................................................................ 40

7 Kafka 2.1.0 移植指南(CentOS 7.6)................................................................................. 427.1 介绍............................................................................................................................................................................................ 427.2 环境要求................................................................................................................................................................................... 437.3 配置编译环境...........................................................................................................................................................................437.3.1 安装 Gradle.......................................................................................................................................................................... 437.3.2 安装 Openjdk....................................................................................................................................................................... 447.3.3 安装 Scala............................................................................................................................................................................. 447.3.4 安装 GCC............................................................................................................................................................................... 457.4 执行移植分析...........................................................................................................................................................................467.5 编译依赖库............................................................................................................................................................................... 467.6 编译源码................................................................................................................................................................................... 467.7 运行和验证............................................................................................................................................................................... 477.8 故障排除................................................................................................................................................................................... 48

8 Druid 0.12.1 移植指南(CentOS 7.6)................................................................................498.1 介绍............................................................................................................................................................................................ 498.2 环境要求................................................................................................................................................................................... 498.3 配置编译环境...........................................................................................................................................................................508.3.1 安装 Openjdk....................................................................................................................................................................... 508.3.2 安装 Maven.......................................................................................................................................................................... 508.3.3 安装 GCC............................................................................................................................................................................... 518.3.4 安装 Protoc........................................................................................................................................................................... 528.4 执行移植分析...........................................................................................................................................................................528.5 编译依赖库............................................................................................................................................................................... 538.6 编译 druid.................................................................................................................................................................................538.7 故障排除................................................................................................................................................................................... 548.7.1 git clone 报证书错误......................................................................................................................................................... 548.7.2 wget 下载 https 链接报错................................................................................................................................................ 548.7.3 hadoop-lzo 依赖下载报错............................................................................................................................................... 558.7.4 libthrift 依赖下载报错....................................................................................................................................................... 558.8 参考............................................................................................................................................................................................ 56

9 Phoenix 移植指南(CentOS 7.6)....................................................................................... 579.1 介绍............................................................................................................................................................................................ 579.2 环境要求................................................................................................................................................................................... 579.3 编译环境准备...........................................................................................................................................................................589.3.1 安装 Openjdk....................................................................................................................................................................... 58

鲲鹏大数据解决方案移植指南(Apache) 目 录

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 iv

Page 6: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

9.3.2 安装 Maven.......................................................................................................................................................................... 589.3.3 安装 GCC............................................................................................................................................................................... 599.4 软件移植分析...........................................................................................................................................................................609.5 编译依赖库............................................................................................................................................................................... 609.6 Phoenix 编译........................................................................................................................................................................... 619.7 参考............................................................................................................................................................................................ 62

A 修订记录................................................................................................................................... 63

鲲鹏大数据解决方案移植指南(Apache) 目 录

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 v

Page 7: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

1 Hadoop 3.1.1 移植指南(CentOS 7.6)

1.1 介绍

1.2 环境要求

1.3 配置编译环境

1.4 执行移植分析

1.5 编译依赖包

1.6 编译Hadoop

1.7 验证

1.8 故障排除

1.1 介绍

简要介绍

Hadoop是一个开源的分布式存储及计算框架,被广泛用于海量数据的存储及处理,可以以可靠、高效、可伸缩的方式进行数据处理。

关于Hadoop的更多信息请访问Hadoop官网。

开发语言:Java

一句话描述:分布式系统基础架构

建议的版本

建议的软件版本

软件 版本

OpenJDK 8u191-b12

Maven 3.5.4

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 1

Page 8: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

软件 版本

hadoop 3.1.1

scala 2.11.12

cmake 3.13.2

Protoc 2.5.0

1.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

1.3 配置编译环境

1.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 2

Page 9: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤3 按ESC键,输入:wq保存并退出。

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

1.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 3

Page 10: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

1.3.3 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

1.3.4 安装 cmakeHadoop编译要求3.12及以上版本,本文以安装cmake 3.12.4版本为例。

步骤1 下载cmake安装包。

wget https://cmake.org/files/v3.12/cmake-3.12.4.tar.gz

步骤2 解压安装包

tar- zxf cmake-3.12.4.tar.gz

步骤3 编译安装cmake。

cd cmake-3.12.4

./bootstrap

make -j8

make install

----结束

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 4

Page 11: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

1.3.5 安装 Protoc步骤1 下载并解压源码。

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

tar -zxf protobuf-2.5.0.tar.gz

mv protobuf-2.5.0 /opt/tools/installed/

cd /opt/tools/installed/protobuf-2.5.0

步骤2 安装依赖库。

yum -y install patch automake libtool

步骤3 上传protoc.patch到服务器,打补丁,其中protoc.patch的路径视实际情况而定。

cp protoc.patch ./src/google/protobuf/stubs/

cd ./src/google/protobuf/stubs/

patch -p1 < protoc.patch

cd -

步骤4 编译并安装到系统默认目录。

./autogen.sh && ./configure CFLAGS='-fsigned-char' && make -j8 && makeinstall

----结束

1.4 执行移植分析请依据《CheckSo用户指南》扫描Hadoop安装包,分析得出需要移植的第三方依赖包,如表1-1所示。

表 1-1 软件移植分析结果

原始jar so文件

lz4-1.2.0.jar Liblz4-java.so

netty-all-4.0.52.Final.jar libnetty_transport_native_epoll_x86_64.so

leveldbjni-all-1.8.jar libleveldbjni.so

snappy-java-1.0.5.jar libsnappy.so

1.5 编译依赖包步骤1 请使用yum安装基本库。

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 5

Page 12: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

yum install openssl-devel zlib-devel automake libtool cmake

步骤2 (可选)编译Snappy。

Snappy是一个可选的压缩库,可添加编译选项打包到hadoop软件包中。

1. 下载Snappy依赖包。

下载地址:https://github.com/google/snappy/releases/tag/1.1.7解压后进入文件夹

cd snappy-1.1.72. 解压和编译命令。

mkdir buildcd buildcmake ../make install

3. 修改CMakeLists.txt文件开启动态链接库编译,将该选项从“OFF”改为“ON”。vim CMakeLists.txtoption(BUILD_SHARED_LIBS "Build shared libraries(DLLs)." ON)

步骤3 请参考表1-2编译其他依赖包。

表 1-2 依赖包编译参考

依赖包 编译参考

leveldbjni-all-1.8.jar 详细编译步骤请参考《leveldbjni-all-1.8.jar 移植指南(CentOS 7.6)》。

lz4-1.2.0.jar 详细编译步骤请参考《lz4-1.2.0.jar 移植指南(CentOS7.6)》。

netty-all-4.0.52.Final.jar

详细编译步骤请参考《netty-all-4.0.52.Final.jar 移植指南(CentOS 7.6)》。

snappy-java-1.0.5.jar 详细编译步骤请参考《snappy-java-1.0.5.jar 移植指南(CentOS 7.6)》。

步骤4 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中。

----结束

1.6 编译 Hadoop步骤1 下载Hadoop安装包。

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.1.1/hadoop-3.1.1-src.tar.gz

步骤2 解压安装包。

tar -zxvf hadoop-3.1.1-src.tar.gz

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 6

Page 13: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤3 进入解压后目录。

cd hadoop-3.1.1-src

步骤4 执行基础编译命令。

mvn package -DskipTests -Pdist,native -Dtar -Dmaven.javadoc.skip=true

步骤5 添加snappy库编译命令。

mvn package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib64 -Dbundle.snappy -Dmaven.javadoc.skip=true

编译成功后,将在源码下的“hadoop-dist/target/”目录生成tar.gz包。

----结束

1.7 验证步骤1 组件安装可参考官方网站手册,分为单节点和集群安装两种。

● 单节点安装:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/SingleCluster.html

● 集群安装:https://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/ClusterSetup.html

步骤2 使用hadoop自带测试程序计算PI值。

./hadoop-3.1.1/bin/yarn jar hadoop-3.1.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar pi 5 10

----结束

1.8 故障排除

鲲鹏大数据解决方案移植指南(Apache) 1 Hadoop 3.1.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 7

Page 14: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

2 Hbase 2.1.0 移植指南(CentOS 7.6)

2.1 介绍

2.2 环境要求

2.3 配置编译环境

2.4 执行移植分析

2.5 编译依赖包

2.6 编译Hbase

2.7 验证

2.8 故障排除

2.1 介绍

简要介绍

HBase– Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群,海量数据的快速随机访问。

关于Hbase的更多信息请访问Hbase官网。

开发语言:Java

一句话描述:分布式数据库

建议的版本

建议的软件版本

软件 版本

OpenJDK 8u191-b12

Maven 3.5.4

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 8

Page 15: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

软件 版本

HBase 2.1.0

Protoc 2.5.0

2.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

2.3 配置编译环境

2.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 9

Page 16: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

2.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 10

Page 17: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

2.3.3 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

2.3.4 安装 Protoc步骤1 下载并解压源码。

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

tar -zxf protobuf-2.5.0.tar.gz

mv protobuf-2.5.0 /opt/tools/installed/

cd /opt/tools/installed/protobuf-2.5.0

步骤2 安装依赖库。

yum -y install patch automake libtool

步骤3 上传protoc.patch到服务器,打补丁,其中protoc.patch的路径视实际情况而定。

cp protoc.patch ./src/google/protobuf/stubs/

cd ./src/google/protobuf/stubs/

patch -p1 < protoc.patch

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 11

Page 18: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

cd -

步骤4 编译并安装到系统默认目录。

./autogen.sh && ./configure CFLAGS='-fsigned-char' && make -j8 && makeinstall

步骤5 Protoc部署在本地maven仓库中。

mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc

----结束

2.4 执行移植分析请依据《CheckSo用户指南》扫描Hbase安装包,分析得出需要移植的第三方依赖包如表2-1所示。

表 2-1 软件移植分析结果

原始jar so文件

commons-crypto-1.0.0.jar libcommons-crypto.so

netty-all-4.0.23.Final.jar libnetty-transport-native-epoll.so

leveldbjni-all-1.8.jar libleveldbjni.so

snappy-java-1.0.5.jar libsnappyjava.so

hbase-shaded-netty-2.1.0.jar liborg_apache_hbase_thirdparty_netty_transport_native_epoll_x86_64.so

2.5 编译依赖包步骤1 请参考表2-2编译第三方依赖包。

表 2-2 依赖包编译参考

依赖包 编译参考

commons-crypto-1.0.0.jar 详细编译步骤请参考《commons-crypto-1.0.0.jar 移植指南(CentOS 7.6)》。

netty-all-4.0.23.Final.jar 详细编译步骤请参考《netty-all-4.0.23.Final.jar 移植指南(CentOS 7.6)》。

leveldbjni-all-1.8.jar 详细编译步骤请参考《leveldbjni-all-1.8.jar 移植指南(CentOS 7.6)》。

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 12

Page 19: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

依赖包 编译参考

snappy-java-1.0.5.jar 详细编译步骤请参考《snappy-java-1.0.5.jar 移植指南(CentOS 7.6)》。

hbase-shaded-netty-2.1.0.jar

详细编译步骤请参考《hbase-shaded-netty-2.1.0.jar 移植指南(CentOS 7.6)》。

步骤2 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中。

----结束

2.6 编译 Hbase步骤1 下载Hbase安装包。

wget http://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-src.tar.gz

步骤2 解压安装包。

tar -zxf hbase-2.1.0-src.tar.gz

步骤3 进入解压后目录。

cd hbase-2.1.0

步骤4 执行编译。

mvn clean package -DskipTests assembly:single

编译成功后,将在源码下的“hbase-assembly/target/”目录生成tar.gz包。

----结束

2.7 验证参考《Hbase集群 部署指南(CentOS 7.6)》,部署HBase集群,进行验证。

2.8 故障排除

问题一:提示加载 mojo ‘findbugs’失败,导致执行默认的 findbugs-maven-plugin失败

问题描述

提示加载mojo ‘findbugs’失败,导致执行默认的findbugs-maven-plugin失败。

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 13

Page 20: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

处理方法

修改使用的findbugs-maven-plugin版本为“3.0.4”。

问题二:protobuf-2.5.0 已安装,但 hbase 编译时,提示缺失 protoc问题描述

protobuf-2.5.0已安装,但hbase编译时,提示缺失protoc

处理方法

通过执行以下命令,指定安装的Protoc可执行文件。

mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc

鲲鹏大数据解决方案移植指南(Apache) 2 Hbase 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 14

Page 21: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

3 Hive 3.0.0 移植指南(CentOS 7.6)

3.1 介绍

3.2 环境要求

3.3 配置编译环境

3.4 执行移植分析

3.5 编译依赖包

3.6 编译Hive

3.7 验证

3.8 故障排除

3.1 介绍

简要介绍

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

关于Hive的更多信息请访问Hive官网。

开发语言:Java

一句话描述:一个基于Hadoop的数据仓库工具

建议的版本

建议的软件版本

软件 版本

OpenJDK 8u191-b12

鲲鹏大数据解决方案移植指南(Apache) 3 Hive 3.0.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 15

Page 22: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

软件 版本

Maven 3.5.4

HBase 3.0.0

3.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

3.3 配置编译环境

3.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

鲲鹏大数据解决方案移植指南(Apache) 3 Hive 3.0.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 16

Page 23: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

3.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

鲲鹏大数据解决方案移植指南(Apache) 3 Hive 3.0.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 17

Page 24: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

3.3.3 安装 Protoc步骤1 下载并解压源码。

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

tar -zxf protobuf-2.5.0.tar.gz

mv protobuf-2.5.0 /opt/tools/installed/

cd /opt/tools/installed/protobuf-2.5.0

步骤2 安装依赖库。

yum -y install patch automake libtool

步骤3 上传protoc.patch到服务器,打补丁,其中protoc.patch的路径视实际情况而定。

cp protoc.patch ./src/google/protobuf/stubs/

cd ./src/google/protobuf/stubs/

patch -p1 < protoc.patch

cd -

步骤4 编译并安装到系统默认目录。

./autogen.sh && ./configure CFLAGS='-fsigned-char' && make -j8 && makeinstall

步骤5 Protoc部署在本地maven仓库中。

mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/local/bin/protoc

----结束

3.4 执行移植分析请依据《CheckSo用户指南》扫描Hive安装包,分析得出需要移植的第三方依赖包如表3-1所示。

表 3-1 软件移植分析结果

原始jar so文件

commons-crypto-1.0.0.jar libcommons-crypto.so

netty-all-4.1.17.Final.jar libnetty_transport_native_epoll_x86_64.so

jline-2.12.jar libjansi.so

server-metrics-0.2.8.jar libsigar.so

lz4-1.2.0.jar liblz4-java.so

鲲鹏大数据解决方案移植指南(Apache) 3 Hive 3.0.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 18

Page 25: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

3.5 编译依赖包步骤1 请参考表3-2编译依赖包。

表 3-2 依赖包编译参考

依赖包 编译参考

commons-crypto-1.0.0.jar 详细编译步骤请参考《commons-crypto-1.0.0.jar移植指南(CentOS 7.6)》。

netty-all-4.1.17.Final.jar 详细编译步骤请参考《netty-all-4.1.17.Final.jar 移植指南(CentOS 7.6)》。

jline-2.12.1.jar 详细编译步骤请参考《jline-2.12.1.jar 移植指南(CentOS 7.6)》。

server-metrics-0.2.8.jar 详细编译步骤请参考《server-metrics-0.2.8.jar 移植指南(CentOS 7.6)》。

lz4-1.2.0.jar 详细编译步骤请参考《lz4-1.2.0.jar 移植指南(CentOS 7.6)》。

步骤2 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中。

----结束

3.6 编译 Hive步骤1 下载Hive安装包。

wget https://github.com/apache/hive/archive/rel/release-3.0.0.tar.gz

步骤2 解压安装包。

tar -zxf hive-rel-release-3.0.0.tar.gz

步骤3 进入解压目录。

cd hive-rel-release-3.0.0

步骤4 执行编译。

mvn clean install -DskipTests

编译成功后,将在源码下的“packaging/target”目录生成Hive的tar.gz包。

----结束

3.7 验证参考《Hive集群 部署指南》,部署Hive集群,进行验证。

鲲鹏大数据解决方案移植指南(Apache) 3 Hive 3.0.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 19

Page 26: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

3.8 故障排除

鲲鹏大数据解决方案移植指南(Apache) 3 Hive 3.0.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 20

Page 27: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

4 Spark 2.3.0 移植指南(CentOS 7.6)

4.1 介绍

4.2 环境要求

4.3 配置编译环境

4.4 执行移植分析

4.5 编译依赖包

4.6 编译Spark

4.7 故障排除

4.1 介绍

简要介绍

Spark是用于大规模数据处理的统一分析引擎,具有可伸缩、基于内存计算等特点,已经成为轻量级大数据快速处理的统一平台,各种不同的应用,如实时流处理、机器学习、交互式查询等,都可以通过Spark建立在不同的存储和运行系统上。

关于Spark的更多信息请访问Spark官网。

开发语言:Scala

一句话描述:大规模数据计算引擎

建议的版本

建议的软件版本

项目 版本

OpenJdk 8u191-b12

Maven 3.5.4

Scala 2.11.12

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 21

Page 28: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

项目 版本

R语言 3.1.1

spark 2.3.0

4.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

4.3 配置编译环境

4.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 22

Page 29: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

4.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 23

Page 30: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

4.3.3 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

4.3.4 安装 R 语言

步骤1 下载R语言安装包。

wget http://cran.rstudio.com/src/base/R-3/R-3.1.1.tar.gz

步骤2 解压安装包。

tar -zxf R-3.1.1.tar.gz

步骤3 安装依赖库。

yum -y install libXt-devel.aarch64 gcc-gfortran.aarch64 readline-devel.aarch64

步骤4 进入解压后目录。

cd R-3.1.1

步骤5 执行编译。

./configure --enable-R-shlib --enable-R-static-lib --with-libpng --with-jpeglib--prefix=/opt/tools/installed/R-3.1.1

make all -j10 && make install

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 24

Page 31: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

说明

编译R语言过程中的相关故障处理请参考4.7.2 编译R语言时报错error: cannot compile asimple Fortran program、4.7.3 编译R语言时报错configure: error: --with-x=yes (default)and X11 headers/libs are not available、4.7.4 编译R语言时报错/usr/bin/install: cannotstat ‘NEWS.pdf’: No such file or directory。

步骤6 配置R语言环境变量。export R_HOME=/opt/tools/installed/R-3.1.1

----结束

4.3.5 安装 Scala步骤1 下载sbt-0.13.15到指定目录,并解压(如/opt/tools/installed)。

wget https://sbt-downloads.cdnedge.bluemix.net/releases/v0.13.15/sbt-0.13.15.tgz

tar -zxf sbt-0.13.15.tgz

mv sbt /opt/tools/installed

步骤2 在当前用户根目录创建.sbt目录,并将repositories文件拷贝到.sbt目录(repositories定义了sbt编译时使用的maven仓库顺序)。

mkdir ~/.sbt

cp repositories ~/.sbt

repositories文件内容如下:

[repositories]localhuawei-maven: http://mirrors.huaweicloud.com/repository/maven/sbt-releases-repo: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]sbt-plugins-repo: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

步骤3 配置SBT_HOME环境变量。

vim /etc/profile

SBT_HOME=/opt/tools/installed/sbt/binPATH=${SBT_HOME}/bin:${PATH}

source /etc/profile

步骤4 下载scala-2.11.12源码到指定目录(如/opt/tools/installed)。

cd /opt/tools/installed

git clone https://github.com/scala/scala.git

cd scala

git checkout v2.11.12

sed -i "50,50s%)%),\n\ \ \ \ Keys.\`package\`\ := bundle.value%g" project/Osgi.scala

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 25

Page 32: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤5 编译scala。

sbt package

步骤6 配置scala环境变量,在/etc/profile文件末尾增加下面高亮代码。

export SCALA_HOME=/opt/tools/installed/scalaexport PATH=$SCALA_HOME/build/pack/bin:$PATH

步骤7 按ESC键,输入:wq保存并退出

步骤8 运行下面的命令,是修改的环境变量生效。

source /etc/profile

----结束

4.4 执行移植分析请依据《CheckSo用户指南》扫描Spark安装包,分析得出需要移植的第三方依赖包如表4-1所示。

表 4-1 软件移植分析结果

原始jar so文件

commons-crypto-1.0.0.jar libcommons-crypto.so

jline-2.12.1.jar libjansi.so

leveldbjni-all-1.8.jar libleveldbjni.so

netty-all-4.1.17.Final.jar libnetty_transport_native_epoll_x86_64.so

scala-compiler-2.11.12.jar libjansi.so

snappy-java-1.1.2.6.jar libsnappyjava.so

lz4-java-1.4.0.jar liblz4-java.so

4.5 编译依赖包步骤1 请参考表4-2编译第三方依赖包。

表 4-2 依赖包编译参考

依赖包 编译参考

commons-crypto-1.0.0.jar 详细编译步骤请参考《commons-crypto-1.0.0.jar 移植指南》。

netty-all-4.1.17.Final.jar 详细编译步骤请参考《netty-all-4.1.17.Final.jar 移植指南》。

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 26

Page 33: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

依赖包 编译参考

jline-2.12.1.jar 详细编译步骤请参考《jline2.11,2.12.1,2.12,2.14.3移植指南》。

leveldbjni-all-1.8.jar 详细编译步骤请参考《leveldbjni-all-1.8.jar 移植指南》。

scala-compiler-2.11.12.jar 详细编译步骤请参考《scala-compiler-2.11.12.jar 移植指南》。

说明如果已在4.3.5 安装Scala章节执行过编译操作,则此处无需再次执行。

snappy-java-1.1.2.6.jar 详细编译步骤请参考《snappy-java-1.1.1.7.jar移植指南》。

lz4-java-1.4.0.jar 详细编译步骤请参考《lz4-java-x.x.x.jar 移植指南》。

步骤2 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中,maven默认本地仓库位于~/.m2/repository。

----结束

4.6 编译 Spark步骤1 下载Spark安装包。

wget https://github.com/apache/spark/archive/v2.3.0.tar.gz

步骤2 解压安装包。

tar -zxf spark-2.3.0.tar.gz

步骤3 进入解压后目录。

cd spark-2.3.0

步骤4 执行编译。

dev/make-distribution.sh --tgz -Pyarn,hive,hive-thriftserver,sparkr

说明

编译Spark过程中的相关故障处理请参考4.7.1 编译Spark时报错Cannot find‘R_HOME’.Please specify‘R_HOME’ or make sure R is properly installed。

----结束

4.7 故障排除

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 27

Page 34: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

4.7.1 编译 Spark 时报错 Cannot find‘R_HOME’. Pleasespecify‘R_HOME’ or make sure R is properly installed

现象描述

编译Spark时报错“Cannot find ‘R_HOME’. Please specify ‘R_HOME’ or makesure R is properly installed”。

可能原因

编译Spark时启动了R语言支持,需要在环境上编译安装R语言。

处理步骤

步骤1 成功编译安装R语言(安装在“/opt/tools/installed”目录),并设置好环境变量。

详情操作步骤请参见4.3.4 安装R语言。

步骤2 再次执行Spark编译命令。

----结束

4.7.2 编译 R 语言时报错 error: cannot compile a simple Fortranprogram

现象描述

编译R语言时报错“error: cannot compile a simple Fortran program”。

可能原因

出现该问题的原因是由于系统缺少gfortran包。

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 28

Page 35: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

处理步骤

利用yum命令直接安装OS镜像中的对应gfortran包即可。

yum -y install gcc-gfortran.aarch64

4.7.3 编译 R 语言时报错 configure: error: --with-x=yes (default)and X11 headers/libs are not available

现象描述

编译R语言时报错“configure: error: --with-x=yes (default) and X11 headers/libs arenot available”。

可能原因

R语言默认--with-x=yes(use the X Window System)是打开的,因此需要安装libXt-devel模块。

处理步骤

利用yum命令直接安装OS镜像中对应的模块即可。

yum -y install libXt-devel.aarch64

4.7.4 编译 R 语言时报错/usr/bin/install: cannot stat‘NEWS.pdf’: No such file or directory

现象描述

编译R语言时报错“/usr/bin/install: cannot stat ‘NEWS.pdf’: No such file ordirectory”。

可能原因

在源码目录R-3.1.1没有找到NEWS.pdf文件,所以make install时无法拷贝。

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 29

Page 36: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

处理步骤

查看doc目录有NEWS相关的文本文件,因此将doc目录的NEWS内容直接放到NEWS.pdf里面。

cat doc/NEWS > doc/NEWS.pdf

鲲鹏大数据解决方案移植指南(Apache) 4 Spark 2.3.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 30

Page 37: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

5 Zookeeper 移植指南(CentOS 7.6)

5.1 介绍

5.2 环境要求

5.3 配置编译环境

5.4 软件移植分析

5.5 编译Zookeeper

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

关于Zookeeper的更多信息请访问Zookeeper官网。

建议的版本

建议的软件版本

项目 版本

OpenJdk 8u191-b12

Maven 3.5.4

Zookeeper 3.4.6

鲲鹏大数据解决方案移植指南(Apache) 5 Zookeeper 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 31

Page 38: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

5.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

5.3 配置编译环境

5.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。

export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

鲲鹏大数据解决方案移植指南(Apache) 5 Zookeeper 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 32

Page 39: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

5.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

5.3.3 安装 ant 和 svn 工具

步骤1 安装ant和svn工具。

鲲鹏大数据解决方案移植指南(Apache) 5 Zookeeper 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 33

Page 40: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

yum install ant svn

----结束

5.3.4 安装 automake 工具

步骤1 安装automake工具。

yum install autoconf automake libtool

----结束

5.3.5 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

5.4 软件移植分析请依据《CheckSo用户指南》扫描Zookeeper安装包,分析得出没有需要移植的第三方依赖包。

5.5 编译 Zookeeper步骤1 从官网上下载zookeeper-release-3.4.6源码并解压。

鲲鹏大数据解决方案移植指南(Apache) 5 Zookeeper 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 34

Page 41: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

wget https://github.com/apache/zookeeper/archive/release-3.4.6.tar.gz

tar -zxf zookeeper-release-3.4.6.tar.gz

cd zookeeper-release-3.4.6

步骤2 进入解压后目录。

cd zookeeper-release-3.4.6

步骤3 由于网络代理问题,需要修改build.xml和ivysettings.xml文件。

1. 从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,注释下载和拷贝操作相应的内容。

2. 修改ivysettings.xml的repo.maven.org值。

步骤4 执行编译。

ant package tar

步骤5 编译成功后将在源码目录下“./build/”生成zookeeper-3.4.6.tar.gz包。

----结束

鲲鹏大数据解决方案移植指南(Apache) 5 Zookeeper 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 35

Page 42: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

6 Flink 1.8.1 移植指南(CentOS 7.6)

6.1 介绍

6.2 环境要求

6.3 配置编译环境

6.4 软件移植分析

6.5 编译依赖包

6.6 编译Flink

6.7 故障排除

6.1 介绍Flink是一个分布式、高性能、高可用的开源大数据处理框架,具有基于内存计算,流式处理等特点,用于对无边界和有边界数据流进行有状态的计算。

建议的版本

建议的软件版本

软件 版本

OpenJDK 8u191-b12

Maven 3.5.4

Flink 1.8.1

scala 2.11.12

鲲鹏大数据解决方案移植指南(Apache) 6 Flink 1.8.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 36

Page 43: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

6.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

6.3 配置编译环境

6.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。

export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

鲲鹏大数据解决方案移植指南(Apache) 6 Flink 1.8.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 37

Page 44: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

6.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

6.3.3 编译 scala步骤1 请参考《scala-compiler-2.11.12.jar 移植指南》文档进行编译。

步骤2 配置scala环境变量。

鲲鹏大数据解决方案移植指南(Apache) 6 Flink 1.8.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 38

Page 45: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

1. 在“/etc/profile”文件末尾增加下面代码。JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4SCALA_HOME=/opt/tools/installed/scala-2.12.7PATH=$SCALA_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport SCALA_HOME MAVEN_HOME JAVA_HOME PATH

2. 使修改的环境变量生效。

source /etc/profile

步骤3 将编译好的scala替换到maven本地仓库。

目标jar包所在路径:*/scala1-2.12.7/build/pack/lib/scala-compiler.jar

请将编译后scala-compiler.jar重命名为scala-compiler-2.12.7.jar,并替换maven本地仓库中的*/org/scala-lang/scala-compiler/2.12.7/scala-compiler-2.12.7.jar。

----结束

6.4 软件移植分析请依据《CheckSo用户指南》扫描Flink安装包,分析得出需要移植的第三方依赖包如表6-1。

表 6-1 软件移植分析结果

原始jar so文件

jython-standalone-2.7.1.jar libjansi.so

scala-compiler-2.12.7.jar libjansi.so

flink-shaded-netty-4.1.32.Final-6.0.jar

liborg_apache_flink_shaded_netty4_netty_transport_native_epoll_x86_64.so

frocksdbjni-5.17.2-artisans-1.0.jar

librocksdbjni32.so, librocksdbjni64.so,librocksdbjnile.so

6.5 编译依赖包步骤1 请参考表6-2编译第三方依赖包。

表 6-2 依赖包编译参考

依赖包 编译参考

jython-standalone-2.7.1.jar

详细编译步骤请参考《jython-standalone-2.7.0.jar 移植指南(CentOS 7.6)》。

scala-compiler-2.12.7.jar 详细编译步骤请参考《scala-compiler-2.11.12.jar 移植指南(CentOS 7.6)》。

flink-shaded-netty-4.1.32.Final-6.0.jar

详细编译步骤请参考《flink-shaded-netty-4.1.32.Final.jar 移植指南(CentOS 7.6)》。

鲲鹏大数据解决方案移植指南(Apache) 6 Flink 1.8.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 39

Page 46: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

依赖包 编译参考

frocksdbjni-5.17.2-artisans-1.0.jar

详细编译步骤请参考《rocksdbjni-5.17.2-artisans-1.0.jar 移植指南(CentOS 7.6)》。

步骤2 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中。

----结束

6.6 编译 Flink步骤1 从github上下载flink-release-1.8.1源码并解压。

wget https://github.com/apache/flink/archive/release-1.8.1.tar.gz

tar -zxf flink-release-1.8.1.tar.gz

步骤2 进入解压后目录。

cd flink-release-1.8.1

步骤3 执行编译。

mvn clean install -DskipTests -Dhadoop.version=2.7.0 -Dscala-2.12 -Dpython2.12

步骤4 编译完成后在“flink-release-1.8.1/flink-dist/target/flink-1.8.1-bin/”生成目标目录flink-1.8.1。

----结束

6.7 故障排除

6.7.1 编译 Flink 时报错

现象描述

编译flink时报错:Failed to execute goal on project flink-avro-confluent-registry:Could not resolve dependencies for project org.apache.flink:flink-avro-confluent-registry:jar:1.8.1: Could not find artifact io.confluent:kafka-schema-registry-client:jar:3.3.1 in big (http://10.93.238.51/maven/)

鲲鹏大数据解决方案移植指南(Apache) 6 Flink 1.8.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 40

Page 47: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

可能原因

缺少依赖的第三方jar包kafka-schema-registry-client-3.3.1.jar。

处理步骤

下载可用的kafka-schema-registry-client-3.3.1.jar保存到maven仓库或者本地缓存库*/.m2/repository/io/confluent/kafka-schema-registry-client/3.3.1目录下,重新编译Flink。

鲲鹏大数据解决方案移植指南(Apache) 6 Flink 1.8.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 41

Page 48: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

7 Kafka 2.1.0 移植指南(CentOS 7.6)

7.1 介绍

7.2 环境要求

7.3 配置编译环境

7.4 执行移植分析

7.5 编译依赖库

7.6 编译源码

7.7 运行和验证

7.8 故障排除

7.1 介绍

简要介绍

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。

官方链接:https://kafka.apache.org/

类别:应用程序

建议的版本

建议的软件版本

项目 版本

GCC 4.8.5

OpenJdk 8u191-b12

Gradle 4.10

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 42

Page 49: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

项目 版本

Scala 2.11.12

kafka 2.1.0

7.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

7.3 配置编译环境

7.3.1 安装 Gradle步骤1 下载Gradle4.10安装包。

须知

如果环境无法直接连接网络,需要配置可用代理步骤如下

在/etc/profile文件末尾处增加下面的代码:

export http_proxy={代理ip}:{代理端口}export https_proxy={代理ip}:{代理端口}修改完之后,执行source /etc/profile命令,使配置的代理生效。

wget https://gradle.org/next-steps/?version=4.10&format=bin

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 43

Page 50: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤2 解压安装包。

unzip -d /home/tools/gradle/ gradle-4.10-bin.zip

步骤3 设置环境变量。

export GRADLE_HOME =/home/tools/gradle/gradle-4.10

export PATH=$ GRADLE _HOME/bin:$PATH

----结束

7.3.2 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

7.3.3 安装 Scala步骤1 下载sbt-0.13.15到指定目录,并解压(如/opt/tools/installed)。

wget https://sbt-downloads.cdnedge.bluemix.net/releases/v0.13.15/sbt-0.13.15.tgz

tar -zxf sbt-0.13.15.tgz

mv sbt /opt/tools/installed

步骤2 在当前用户根目录创建.sbt目录,并将repositories文件拷贝到.sbt目录(repositories定义了sbt编译时使用的maven仓库顺序)。

mkdir ~/.sbt

cp repositories ~/.sbt

repositories文件内容如下:

[repositories]localhuawei-maven: http://mirrors.huaweicloud.com/repository/maven/sbt-releases-repo: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]sbt-plugins-repo: http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/, [organization]/

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 44

Page 51: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

步骤3 配置SBT_HOME环境变量。

vim /etc/profile

SBT_HOME=/opt/tools/installed/sbt/binPATH=${SBT_HOME}/bin:${PATH}

source /etc/profile

步骤4 下载scala-2.11.12源码到指定目录(如/opt/tools/installed)。

cd /opt/tools/installed

git clone https://github.com/scala/scala.git

cd scala

git checkout v2.11.12

sed -i "50,50s%)%),\n\ \ \ \ Keys.\`package\`\ := bundle.value%g" project/Osgi.scala

步骤5 编译scala。

sbt package

步骤6 配置scala环境变量,在/etc/profile文件末尾增加下面高亮代码。export SCALA_HOME=/opt/tools/installed/scalaexport PATH=$SCALA_HOME/build/pack/bin:$PATH

步骤7 按ESC键,输入:wq保存并退出

步骤8 运行下面的命令,是修改的环境变量生效。

source /etc/profile

----结束

7.3.4 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 45

Page 52: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

7.4 执行移植分析请依据《CheckSo用户指南》扫描Kafka安装包,分析得出需要移植的第三方依赖包如下表格。

原始jar so文件

rocksdbjni-5.14.2.jar librocksdbjni32.so

rocksdbjni-5.14.2.jar librocksdbjni64.so

rocksdbjni-5.14.2.jar librocksdbjnile.so

7.5 编译依赖库步骤1 请参考表7-1编译第三方依赖包。

表 7-1 依赖包编译参考

依赖包 编译参考

rocksdbjni-5.14.2.jar 详细编译步骤请参考《rocksdbjni-5.7.3.jar移植指南(CentOS 7.6)》。

步骤2 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中。

----结束

7.6 编译源码步骤1 从Kafka官网下载kafka-2.1.0源码。

下载地址:https://archive.apache.org/dist/kafka/2.1.0/kafka-2.1.0-src.tgz

步骤2 解压源码。

tar -zxvf kafka-2.1.0-src.tgz

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 46

Page 53: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤3 进入源码目录。

cd kafka-2.1.0-src

步骤4 进行编译。

gradle -g /$UserHome/gradleRepository clean

gradle -g /$UserHome/gradleRepository releaseTarGz –info

说明

gradleRepository为gradle本地仓库目录,需要手动创建。

mkdir -p /$UserHome/gradleRepository

步骤5 解压生成的二进制包。

tar -zxvf kafka_2.12-2.1.0.tgz

步骤6 配置server.properties。

cd kafka_2.12-2.1.0

步骤7 配置zookeeper和主机名。

vim conf/server.properties

host.name=hostname

zookeeper.connect=hostname:2181

----结束

说明

Kafka配置可以参考官网指导(https://kafka.apache.org/documentation/#configuration)。

7.7 运行和验证

运行

步骤1 启动Kafka。

bin/zookeeper-server-start.sh config/zookeeper.properties &

bin/kafka-server-start.sh config/server.properties &

步骤2 检查进程启动情况。

jps

说明

如果Kafka进程中Kafka、QuorumPeerMain两个进程启动成功,则整个Kafka服务启动完成。

----结束

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 47

Page 54: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

验证

步骤1 创建topic。

bin/kafka-topics.sh --create --zookeeper XX.XX.XX.XX:2181 --replication-factor1 --partitions 1 --topic test

步骤2 生产数据。

bin/kafka-console-producer.sh --broker-list XX.XX.XX.XX:9092 --topic test

步骤3 消费数据。

bin/kafka-console-consumer.sh --zookeeper XX.XX.XX.XX:2181 --topic test --from-beginnin

----结束

7.8 故障排除

鲲鹏大数据解决方案移植指南(Apache) 7 Kafka 2.1.0 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 48

Page 55: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

8 Druid 0.12.1 移植指南(CentOS 7.6)

8.1 介绍

8.2 环境要求

8.3 配置编译环境

8.4 执行移植分析

8.5 编译依赖库

8.6 编译druid

8.7 故障排除

8.8 参考

8.1 介绍Druid是一个高效的数据查询系统,主要解决的是对于大量的基于时序的数据进行聚合查询。数据可以实时摄入,进入到Druid后立即可查,同时数据是几乎是不可变。通常是基于时序的事实事件,事实发生后进入Druid,外部系统就可以对该事实进行查询。

8.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 49

Page 56: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

8.3 配置编译环境

8.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

8.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 50

Page 57: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

8.3.3 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 51

Page 58: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

8.3.4 安装 Protoc步骤1 下载并解压源码。

wget https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gz

tar -zxf protobuf-2.5.0.tar.gz

mv protobuf-2.5.0 /opt/tools/installed/

cd /opt/tools/installed/protobuf-2.5.0

步骤2 安装依赖库。

yum -y install patch automake libtool

步骤3 上传protoc.patch到服务器,打补丁,其中protoc.patch的路径视实际情况而定。

cp protoc.patch ./src/google/protobuf/stubs/

cd ./src/google/protobuf/stubs/

patch -p1 < protoc.patch

cd -

步骤4 编译并安装到系统默认目录。

./autogen.sh && ./configure CFLAGS='-fsigned-char' && make -j8 && makeinstall

----结束

8.4 执行移植分析使用checkSo工具扫描avro jar包, 该工具主要用于扫描安装包中是否包含了X86的so可执行程序等。

Druid包下载地址:http://static.druid.io/artifacts/releases/druid-0.12.1-bin.tar.gz

具体使用方法如下:

步骤1 执行扫描命令,参考《checkSo用户指南》。

步骤2 扫描结束后,可以在checkSo目录下的JarResult.log和NonJarResult.log。

1. JarResult.log主要包含的是jar包及jar包中包含的so文件。

2. NonJarResult.log包含的是so/*.a/可执行程序。

步骤3 汇总分析得出如下依赖需要重新编译。

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 52

Page 59: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

原始jar包 so文件

leveldbjni-all-1.8.jar libleveldbjni.so

lz4-1.3.0.jar liblz4-java.so

netty-all-4.0.23.Final.jar libnetty-transport-native-epoll.so

netty-all-4.0.52.Final.jar libnetty_transport_native_epoll_x86_64.so

snappy-java-1.0.4.1.jar libsnappyjava.so

snappy-java-1.1.1.3.jar libsnappyjava.so

snappy-java-1.1.1.6.jar libsnappyjava.so

----结束

8.5 编译依赖库步骤1 使用yum安装基本依赖库。

yum install openssl-devel zlib-devel automake libtool make cmake libstdc++-static glibc-static git gcc gcc-c++ make

步骤2 请参考表8-1编译第三方依赖包。

表 8-1 依赖包编译参考

依赖包 编译参考

leveldbjni-all-1.8.jar 详细编译步骤请参考《leveldbjni-all-1.8.jar 移植指南(CentOS 7.6)》。

lz4-1.3.0.jar 详细编译步骤请参考《lz4-java-x.x.x.jar移植指南(CentOS 7.6)》。

netty-all-4.x.jar 详细编译步骤请参考《netty-all-4.0.52.Final.jar移植指南(CentOS 7.6)》。

snappy-java-1.x.jar 详细编译步骤请参考《snappy-java-1.1.1.7.jar移植指南(CentOS 7.6)》。

步骤3 请将编译完成的jar包替换到自己搭建的Maven仓库和本地仓库中。

----结束

8.6 编译 druid步骤1 下载代码并解压。

wget --no-check-certificate https://github.com/apache/druid/archive/druid-0.12.1.tar.gz

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 53

Page 60: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

tar -xvf druid-0.12.1.tar.gz

步骤2 进入druid源码解压目录。

cd druid-0.12.1

步骤3 修改pom.xml,在文件第1295行开始,添加maven仓库源。

vim pom.xml

<repositories> <repository> <id>kunpengmaven</id> <name>kunpeng maven</name> <url>https://mirrors.huaweicloud.com/kunpeng/maven</url> </repository></repositories>

步骤4 修改java-util/pom.xml,在文件第271行开始,修改sigar-dist-1.6.5.132.zip下载路径。

vim java-util/pom.xml

<!--<url>https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/</url>--><url>http://porting-dependence.obs.cn-north-4.myhuaweicloud.com/ARTIFACTS/</url>

步骤5 执行编译。

mvn package -DskipTests

步骤6 编译完成后在distribution目/target/目录下生成tar.gz包。

----结束

8.7 故障排除

8.7.1 git clone 报证书错误

问题现象

编译过程中报错:fatal:unable to access 'https://*******': Peer's Certificate issuer isnot recognized.

解决方法

git config --global http.sslVerify false

8.7.2 wget 下载 https 链接报错

问题现象

编译过程中报错:无法验证github.com颁发的证书:无法本地检验颁发者的权限。要以不安全的方式连接至github.com,使用“--no-check-certificate”。

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 54

Page 61: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

解决方法

在下载命令后面跟参数--no-check-certificate

8.7.3 hadoop-lzo 依赖下载报错

问题现象

编译过程中报错:

[ERROR] Failed to execute goal on project druid-thrift-extensions: Could not resolve dependencies for project io.druid.extensions.contribto collect dependencies at com.twitter.elephantbird:elephant-bird-core:jar:4.8 -> com.hadoop.gplcompression:hadoop-lzo:jar:0.4.19: Failedgplcompression:hadoop-lzo:jar:0.4.19: Could not transfer artifact com.hadoop.gplcompression:hadoop-lzo:pom:0.4.19 from/to twitter (http:/http://maven.twttr.com/com/hadoop/gplcompression/hadoop-lzo/0.4.19/hadoop-lzo-0.4.19.pom. Return code is: 502 , ReasonPhrase:badgateway.)

解决方法

修改本地库 ./repository/com/twitter/elephantbird/elephant-bird/4.8/elephant-bird-4.8.pom

<repositories><repository><id>twitter</id><!--url>http://maven.twttr.com</url--><url>https://nexus.xebialabs.com/nexus/content/groups/public/</url></repository></repositories><pluginRepositories><pluginRepository><id>twitter</id><!--url>http://maven.twttr.com</url--><url>https://nexus.xebialabs.com/nexus/content/groups/public/</url></pluginRepository></pluginRepositories>

8.7.4 libthrift 依赖下载报错

问题现象

编译过程中报错:

[ERROR] Failed to execute goal com.twitter:scrooge-maven-plugin:4.11.0:testCompile (thrift-test-sources) on project druid-thrift-extensions: Execution thrift-test-sources of goal com.twitter:scrooge-maven-plugin:4.11.0:testCompile failed: Plugin com.twitter:scrooge-maven-plugin:4.11.0 or one of its dependencies could not be resolved: Failed to collect dependencies at com.twitter:scrooge-maven-plugin:jar:4.11.0 -> com.twitter:scrooge-generator_2.10:jar:4.11.0 -> org.apache.thrift:libthrift:jar:0.5.0-1: Failed to read artifact descriptor for org.apache.thrift:libthrift:jar:0.5.0-1: Could not transfer artifact org.apache.thrift:libthrift:pom:0.5.0-1 from/to maven.twttr.com

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 55

Page 62: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

解决方法

下载https://github.com/pantsbuild/maven-repo ,将下载org/apache/thrift目录替换本地maven仓库 thrift目录。

8.8 参考更多关于CDH信息请参见官网:https://github.com/apache/druid

鲲鹏大数据解决方案移植指南(Apache) 8 Druid 0.12.1 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 56

Page 63: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

9 Phoenix 移植指南(CentOS 7.6)

9.1 介绍

9.2 环境要求

9.3 编译环境准备

9.4 软件移植分析

9.5 编译依赖库

9.6 Phoenix编译

9.7 参考

9.1 介绍Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。本次移植以phoenix-5.0.0-HBase-2.0为例进行说明。

9.2 环境要求

硬件要求

项目 说明

服务器 TaiShan 200服务器

CPU 鲲鹏920处理器 或 鲲鹏916处理器

磁盘分区 对磁盘分区无要求

网络 可访问外网

鲲鹏大数据解决方案移植指南(Apache) 9 Phoenix 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 57

Page 64: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

操作系统要求

项目 版本

CentOS 7.6 aarch64

OS Kernel 4.14.0

9.3 编译环境准备

9.3.1 安装 Openjdk步骤1 下载OpenJDK源码并安装到指定目录(如/opt/tools/installed)。

wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz

mv jdk8u191-b12 /opt/tools/installed/

步骤2 配置java环境变量,在/etc/profile文件末尾处增加下面的代码。export JAVA_HOME=/opt/tools/installed/jdk8u191-b12export PATH=$JAVA_HOME/bin:$PATH

步骤3 按ESC键,输入:wq保存并退出。

步骤4 运行下面命令,使修改的环境变量生效。

source /etc/profile

----结束

9.3.2 安装 Maven步骤1 下载并安装到指定目录(如/opt/tools/installed)。

wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz

tar -zxf apache-maven-3.5.4-bin.tar.gz

mv apache-maven-3.5.4 /opt/tools/installed/

步骤2 修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码。export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4export PATH=$MAVEN_HOME/bin:$PATH

步骤3 运行下面的命令,是修改的环境变量生效。

source /etc/profile

步骤4 修改maven配置文件中的:本地仓路径、远程仓等。

配置文件路径:/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml

鲲鹏大数据解决方案移植指南(Apache) 9 Phoenix 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 58

Page 65: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

本地仓库配置(默认在“~/.m2/”目录下,如果想修改成指定目录,则修改localRepository标签,没有特殊需求,可不必修改该参数):

<localRepository>/path/to/local/repo</localRepository>

远程仓库配置(修改成自己搭建的maven仓库,如果没有,可以下面配置):

<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>

当编译环境不能访问外网,需要在settings.xml配置文件中添加代理配置,具体内容如下:

<proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol> <username>用户名</username> <password>密码</password> <host>代理服务器网址</host> <port>代理服务器端口</port> <nonProxyHosts>local.net|some.host.com</nonProxyHosts> </proxy></proxies>

----结束

9.3.3 安装 GCC步骤1 挂载OS镜像。

mount YOUR_OS.iso /media -o loop

说明

YOUR_OS.iso用实际的iso包名代替

步骤2 备份yum repo文件,清空/etc/yum.repos.d/目录文件(请确认已经备份所有repo文件后,在rm删除界面输入y表示同意删除)。

cp -r /etc/yum.repos.d /etc/yum.repos.d-bak

rm /etc/yum.repos.d/*

步骤3 修改/etc/yum.repos.d/local.repo文件,配置yum本地源。[Local]name=CentOS-7.6 Localbaseurl=file:///media/enabled=1gpgcheck=0

步骤4 运行下面的命令,使yum源配置生效。

yum clean all

yum makecache

鲲鹏大数据解决方案移植指南(Apache) 9 Phoenix 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 59

Page 66: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

步骤5 yum安装GCC相关软件。

yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64libgcc.aarch64

----结束

9.4 软件移植分析请依据《CheckSo使用指南》扫描Phoenix安装包,分析得出需要移植的第三方依赖包如下表格。

原始jar so文件

commons-crypto-1.0.0.jar libcommons-crypto.so

netty-all-4.0.23.Final.jar libnetty-transport-native-epoll_aarch_64.so

hbase-shaded-netty-2.1.0.jar liborg_apache_hbase_thirdparty_netty_transport_native_epoll_aarch_64.so

jline-2.11.1.jar libjansi.so

netty-all-4.1.17.Final.jar libnetty-transport-native-epoll.so

leveldbjni-all-1.8.jar libleveldbjni.so

snappy-java-1.0.5.jar libsnappyjava.so

lz4-java-1.2.0.jar liblz4-java.so

scala-compiler-2.11.8.jar libjansi.so

9.5 编译依赖库步骤1 请参考表9-1编译第三方依赖包,

表 9-1 依赖包编译参考

依赖包名称 编译方法

jline-2.11.jar 详细编译步骤请依据《jline2.11,2.12.1,2.12,2.14.3移植指南(CentOS7.6)》。

hbase-shaded-netty-2.1.0.jar 详细编译步骤请依据《hbase-shaded-netty-2.1.0.jar 移植指南(CentOS 7.6)》。

lz4-1.2.0.jar 详细编译步骤请依据《lz4-java-x.x.x.jar 移植指南(CentOS 7.6)》。

commons-crypto-1.0.0.jar 详细编译步骤请依据《commons-crypto-1.0.0.jar移植指南(CentOS 7.6)》。

鲲鹏大数据解决方案移植指南(Apache) 9 Phoenix 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 60

Page 67: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

依赖包名称 编译方法

netty-all-4.1.17.Final.jar 详细编译步骤请依据《netty-all-4.1.17.Final.jar移植指南(CentOS 7.6)》。

netty-all-4.0.23.Final.jar 详细编译步骤请依据《netty-all-4.0.23.Final.jar移植指南(CentOS 7.6)》。

scala-compiler-2.11.8.jar 详细编译步骤请依据《scala-compiler-2.11.8.jar移植指南(CentOS 7.6)》。

leveldbjni-all-1.8.jar 详细编译步骤请依据《leveldbjni-all-1.8.jar 移植指南(CentOS 7.6)》。

snappy-java-1.0.5.jar 详细编译步骤请依据《snappy-java-1.0.5.jar 移植指南(CentOS 7.6)》。

步骤2 请将编译完成的jar包替换到自己搭建的maven仓库和本地仓库中。

----结束

9.6 Phoenix 编译步骤1 从官网上下载phoenix-5.0.0-HBase-2.0源码并解压。

wget https://github.com/apache/phoenix/archive/v5.0.0-HBase-2.0.tar.gz

tar -zxf phoenix-5.0.0-HBase-2.0.tar.gz

cd phoenix-5.0.0-HBase-2.0

步骤2 修改Pom.xml,添加华为鲲鹏的maven仓库。

<repositorys><repository><id>kunpengmaven</id><name>kunpeng maven</name><url>https://mirrors.huaweicloud.com/kunpeng/maven</url></repository></repositorys>

步骤3 执行编译。

mvn clean package –DskipTests –Dmaven.javadoc.skip=true

鲲鹏大数据解决方案移植指南(Apache) 9 Phoenix 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 61

Page 68: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

编译成功后将在源码目录下./phoenix-assembly/target/目录生成phoenix-5.0.0-HBase-2.0.tar.gz包。

----结束

9.7 参考更多参考信息,请参见官方链接:http://phoenix.apache.org/。

鲲鹏大数据解决方案移植指南(Apache) 9 Phoenix 移植指南(CentOS 7.6)

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 62

Page 69: 移植指南(Apache · 2020-03-31 · 鲲鹏大数据解决方案 移植指南(Apache) 文档版本 01 发布日期 2020-03-20 华为技术有限公司

A 修订记录

发布日期 修订记录

2020-03-20 第一次正式发布

鲲鹏大数据解决方案移植指南(Apache) A 修订记录

文档版本 01 (2020-03-20) 版权所有 © 华为技术有限公司 63