赞
踩
1简介
Apache Kafka是一个开源流处理软件平台,用Scala和Java编写。该项目旨在提供统一、高吞吐量、低延迟的平台,用于处理实时数据馈送。它的存储层本质上是一个大规模可扩展设计为分布式事务日志的发布/订阅消息队列。
类别:开源流处理平台
语言:Scala/Java
2环境
类别
子项
版本
获取地址(方法)
硬件
CPU
Kunpeng 920
iBMC
网络
Ethernet-10GE
iBMC
存储
SATA 4T
iBMC
内存
xxG xxxMHz
iBMC
OS
NeoKylin
7.5
cat /etc/neokylin-release
Kernel
4.14.0
cat /proc/version
软件
GCC
4.8.5
gcc -v
OpenJDK
1.8.0_191
参考下面安装说明
2.11-1.1.0
参考下面安装说明
3依赖安装
3.1安装OpenJDK
下载并安装到指定目录(如/opt/tools/installed):
【注】:使用系统自带Openjdk软件包可以通过执行“yum -y installjava-1.8.0*”进行安装然后参考如下步骤配置JAVA_HOME环境变量;
配置java环境变量,在/etc/profile文件末尾处增加下面的代码:
JAVA_HOME=/opt/tools/installed/jdk8u191-b12
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
运行下面命令,使修改的环境变量生效:
source /etc/profile
3.2安装GCC等依赖项
挂载OS镜像:
mount -o loop /home/NeoKylin/nsV7Update5-adv-lic-build05-aarch64.iso /mnt/NeoKylin/
修改/etc/yum.repos.d/ns7-adv.repo文件,配置yum本地源:
[ns7-adv-os]
name=NeoKylin Linux Advanced Server 7 - Os
baseurl= file:///mnt/NeoKylin
gpgcheck=0
gpgkey=file:///mnt/NeoKylin/RPM-GPG-KEY-neokylin-release
enabled=1
运行下面的命令,使yum源配置生效:
yum clean all
yum makecache
yum安装GCC等相关依赖:
sudo yum install -y snappy snappy-devel autoconf automake libtool git gcc gcc-c++ make cmake openssl openssl-devel ncurses-devel zlib zlib-devel bzip2 bzip2-devel bzip2-libs readline readline-devel bison zip unzip tar tcl
3.3安装gradle编译软件
1、下载grade开源软件包
wget https://downloads.gradle.org/distributions/gradle-5.4.1-bin.zip
2、解压gradle-5.4.1-bin.zip
unzip gradle-5.4.1-bin.zip
3、进入解压路径
cd gradle-5.4.1/
4、将GRADLE_HOME配置到/etc/profile环境变量中
vi /etc/proflile
5、使GRADLE_HOME环境变量生效
source /etc/proflile
3.4安装编译gradle-scoverage
1、下载gradle-scoverage开源软件包
wget https://github.com/scoverage/gradle-scoverage/archive/3.1.3.tar.gz
2、解压3.1.3.tar.gz
tar zxvf 3.1.3.tar.gz
3、进入解压路径
cd gradle-scoverage-3.1.3/
4、使用gradle编译gradle-scoverage-3.1.3
gradle assemble
3.5安装编译shadow
1、下载shadow开源软件包
wget https://github.com/johnrengelman/shadow/archive/5.0.0.tar.gz
2、解压5.0.0.tar.gz
tar zxvf 5.0.0.tar.gz
3、进入解压路径
cd shadow-5.0.0/
4、使用gradle编译shadow-5.0.0
gradle assemble
3.6安装scala软件
1、下载scala安装软件包
wget https://downloads.lightbend.com/scala/2.11.11/scala-2.11.11.tgz
2、解压scala-2.11.11.tgz
tar zxvf scala-2.11.11.tgz -d /usr/local
3、将SCALA_HOME配置到/etc/profile环境变量中
vi /etc/proflile
增加如下内容
export SCALA_HOME=/usr/local/scla-2.11.11
export PATH=$PATH:$SCALA_HOME/bin
5、使SCALA_HOME环境变量生效
source /etc/proflile
3.7对gcc、g++和c++增加-fsigned-char选项
1、对gcc增加-fsigned-char选项
1)使用which gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)
which gcc
2)、更改gcc的名字(比如改成gcc-arm)
mv /usr/bin/gcc /usr/bin/gcc-arm
3)、进入gcc所在目录执行vi gcc,并填入如下内容保存:
#! /bin/sh
/usr/bin/gcc-arm -fsigned-char "$@"
cd /usr/bin/
vi gcc
4)、执行chmod +x gcc给脚本添加执行权限
chmod +x gcc
2、对g++增加-fsigned-char选项
1)使用which g++命令寻找g++所在路径(一般位于/usr/bin/g++)
which g++
2)、更改g++的名字(比如改成g++-arm)
mv /usr/bin/g++ /usr/bin/g++-arm
3)、进入g++所在目录执行vi g++,并填入如下内容保存:
#! /bin/sh
/usr/bin/g++-arm -fsigned-char "$@"
cd /usr/bin/
vi g++
4)、执行chmod +x g++给脚本添加执行权限
chmod +x g++
3、对c++增加-fsigned-char选项
1)使用which c++命令寻找g++所在路径(一般位于/usr/bin/c++)
which c++
2)、更改c++的名字(比如改成c++-arm)
mv /usr/bin/c++ /usr/bin/c++-arm
3)、进入c++所在目录执行vi c++,并填入如下内容保存:
#! /bin/sh
/usr/bin/c++-arm -fsigned-char "$@"
cd /usr/bin/
vi c++
4)、执行chmod +x c++给脚本添加执行权限
chmod +x c++
4移植分析
使用checkSo工具(获取地址:https://bbs.huaweicloud.com/forum/thread-22679-1-1.html)检查Kafka-2.11-1.1.0对应x86的安装包(kafka_2.11-1.1.0.tgz)或源码包是否有依赖x86的so文件,通过检查Kafka-2.11-1.1.0对应x86安装包发现有依赖的“librocksdbjni32.so,rocksdbjni-5.7.3.jar”、“librocksdbjni64.so,rocksdbjni-5.7.3.jar”和“librocksdbjnile.so,rocksdbjni-5.7.3.jar”:
需要先编译rocksdbjni-5.7.3.jar使其中包含的librocksdbjni32.so、librocksdbjni64.so和librocksdbjnile.so使能arm,编译过程见“”。
5依赖库编译
1、编译rocksdbjni-5.7.3.jar
1)下载源码并解压
wget https://codeload.github.com/facebook/rocksdb/zip/v5.7.3
mv v5.7.3 rocksdbjni-5.7.3.zip
unzip rocksdbjni-5.7.3.zip
2)、进入解压目录
cd rocksdb-5.7.3/
3)、修改Makefile
将DEBUG_LEVEL设为0,并添加-fsigned-char选项
4)、编译rocksdbjava
PORTABLE=1 make rocksdbjava -j8
5)、进入编译结果路径
cd java/target/
6)、重命名rocksdbjni-5.7.3-linux64.jar并将其拷贝到本地gradle仓
cp rocksdbjni-5.7.3-linux64.jar rocksdbjni-5.7.3.jarcp rocksdbjni-5.7.3.jar /gradleRepository/caches/modules-2/files-2.1/org.rocksdb/rocksdbjni/5.7.3/421b44ad957a2b6cce5adedc204db551831b553d/
6编译安装
1、从github网站下载源码并解压
wget https://archive.apache.org/dist/kafka/1.1.0/kafka-1.1.0-src.tgz
tar zxvf kafka-1.1.0-src.tgz
2、进入解压目录
cd kafka-1.1.0-src/
3、修改build.gradle
vi build.gradle
把gradle-scoverage、shadow的版本修改成当前使用的版本,注释红框内注释行,并添加
classpath 'org.scoverage:gradle-scoverage:3.1.3'
classpath 'com.github.jengelman.gradle.plugins:shadow:5.0.0'
4、执行gradle -g /$UserHome/gradleRepository clean
gradle -g /$UserHome/gradleRepository clean
5、执行gradle -g /$UserHome/gradleRepository releaseTarGz -info
gradle -g /$UserHome/gradleRepository releaseTarGz -info
6、查看编译的文件
cd core/build/distributions/
7验证
1、编译验证
使用checkSo工具(获取地址:https://bbs.huaweicloud.com/forum/thread-22679-1-1.html)检查编译后的kafka_2.11-1.1.0.tgz是否不再含有依赖的x86架构的so文件,检查方法参考工具中的 《CheckSo使用说明.docx》,如果还有依赖的x86架构的so文件,则需要继续完成对应jar包的编译,直到无依赖的x86架构的so文件后,再次编译该组件并通过checkSo工具检查确认,编译后的组件包不再有依赖的x86架构的so文件则表明编译成功。
2、功能验证
8参考信息
9FAQ
暂无。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。