1 介绍
大数据组件flink-shaded-netty module。
2 环境要求
硬件要求如表2-1所示。
表2-1 硬件要求
软件要求
表2-2 软件要求
3 配置编译环境
3.1 安装基础库
步骤 1 安装gcc等相关软件。
确保有外网环境后,执行
yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64XXXX
步骤 2 解决-fsigned-char问题(修改gcc)
a、寻找gcc所在路径(一般位于“/usr/bin/gcc”)。
command -v gcc
b、更改gcc的名字(例如改成gcc-impl)。
mv /usr/bin/gcc /usr/bin/gcc-impl
c、新建gcc文件。
vi /usr/bin/gcc
d、填入如下内容保存。
#! /bin/sh
/usr/bin/gcc-impl -fsigned-char "$@"
e、给脚本添加执行权限。
chmod +x /usr/bin/gcc
f、确认命令是否可用。
gcc --version
步骤 3 解决-fsigned-char问题(修改g++)
a、寻找gcc所在路径(一般位于“/usr/bin/g++”)。
command -v g++
b、更改g++的名字(例如改成g++-impl)。
mv /usr/bin/gcc /usr/bin/g++-impl
c、新建g++文件。
vi /usr/bin/g++
d、填入如下内容保存。
#! /bin/sh
/usr/bin/g++-impl -fsigned-char "$@"
e、给脚本添加执行权限。
chmod +x /usr/bin/g++
f、确认命令是否可用。
g++ --version
步骤 4 安装依赖
yum安装依赖的相关软件。
yum install -y wget vim openssl-devel zlib-devel automake libtool make libstdc++-static glibc-static git snappy snappy-devel fuse fuse-devel
----结束
3.2 安装OpenJDK
步骤 1 下载并解压安装到指定目录(此处以指定“/opt/tools/installed”目录为例)
wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz
tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz
mkdir -p /opt/tools/installed/
mv jdk8u252-b09 /opt/tools/installed/
步骤 2 配置Java环境变量
vim /etc/profile
在文件末尾添加如下代码。
export JAVA_HOME=/opt/tools/installed/jdk8u252-b09
export PATH=$JAVA_HOME/bin:$PATH
步骤 3 使修改的环境变量生效
source /etc/profile
步骤 4 查看配置是否生效
3.3 安装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环境变量
vim /etc/profile
在“/etc/profile”文件末尾增加下面代码。
export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
步骤 3 使修改的环境变量生效
source /etc/profile
步骤 4 查看配置是否生效。
mvn -v
步骤 5 查看配置是否生效。
修改Maven配置文件中的:本地仓路径、远程仓等。
配置文件路径:“/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml”
远程仓库配置(修改成自己搭建的Maven仓库,如果没有,可以按照下面示例配置),在<mirrors>标签内添加以下内容:
<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>
3.4 安装Protobuf
步骤 1 查看配置是否生效。
yum install -y protobuf protobuf-devel
步骤 2 通过执行以下命令,指定安装的Protoc可执行文件
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/bin/protoc
4 编译
4.1 编译netty-all-4.0.27.Final
步骤 1 按xxx指导编译netty-all-4.0.27.Final
4.2 编译flink-shaded-netty
步骤 1 下载flink-shaded-1.0安装包。
wget https://github.com/apache/flink-shaded/archive/1.0.tar.gz
步骤 2 解压安装包。
tar -zxf 1.0.tar.gz
步骤 3 进入解压后目录
cd flink-shaded-1.0
步骤 4 执行编译
编译打成jar包,flink-shaded-netty-4.0.27.Final-1.0.jar放置于“flink-shaded-netty-4/target”目录。
mvn clean install -pl flink-shaded-netty-4
步骤 5 使用鲲鹏分析扫描工具扫描编译生成的jar包,确保没有包含有x86的so和jar包。
1 介绍
大数据组件flink-shaded-netty module。
2 环境要求
硬件要求如表2-1所示。
表2-1 硬件要求
项目
说明
服务器
Taishan服务器
CPU
鲲鹏920处理器 或 鲲鹏916处理器
磁盘分区
对磁盘分区无要求
网络
可访问外网
软件要求
表2-2 软件要求
项目
说明
CentOS
7.6
OS Kernel
4.14.0
GCC
4.8.5
Openjdk
1.8.0_252
Maven
3.5.4
Protobuf
2.5.0
netty-all
4.0.27.Final
3 配置编译环境
3.1 安装基础库
步骤 1 安装gcc等相关软件。
确保有外网环境后,执行
yum -y install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64XXXX
步骤 2 解决-fsigned-char问题(修改gcc)
a、寻找gcc所在路径(一般位于“/usr/bin/gcc”)。
command -v gcc
b、更改gcc的名字(例如改成gcc-impl)。
mv /usr/bin/gcc /usr/bin/gcc-impl
c、新建gcc文件。
vi /usr/bin/gcc
d、填入如下内容保存。
#! /bin/sh
/usr/bin/gcc-impl -fsigned-char "$@"
e、给脚本添加执行权限。
chmod +x /usr/bin/gcc
f、确认命令是否可用。
gcc --version
步骤 3 解决-fsigned-char问题(修改g++)
a、寻找gcc所在路径(一般位于“/usr/bin/g++”)。
command -v g++
b、更改g++的名字(例如改成g++-impl)。
mv /usr/bin/gcc /usr/bin/g++-impl
c、新建g++文件。
vi /usr/bin/g++
d、填入如下内容保存。
#! /bin/sh
/usr/bin/g++-impl -fsigned-char "$@"
e、给脚本添加执行权限。
chmod +x /usr/bin/g++
f、确认命令是否可用。
g++ --version
步骤 4 安装依赖
yum安装依赖的相关软件。
yum install -y wget vim openssl-devel zlib-devel automake libtool make libstdc++-static glibc-static git snappy snappy-devel fuse fuse-devel
----结束
3.2 安装OpenJDK
步骤 1 下载并解压安装到指定目录(此处以指定“/opt/tools/installed”目录为例)
wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz
tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz
mkdir -p /opt/tools/installed/
mv jdk8u252-b09 /opt/tools/installed/
步骤 2 配置Java环境变量
vim /etc/profile
在文件末尾添加如下代码。
export JAVA_HOME=/opt/tools/installed/jdk8u252-b09
export PATH=$JAVA_HOME/bin:$PATH
步骤 3 使修改的环境变量生效
source /etc/profile
步骤 4 查看配置是否生效
3.3 安装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环境变量
vim /etc/profile
在“/etc/profile”文件末尾增加下面代码。
export MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4
export PATH=$MAVEN_HOME/bin:$PATH
步骤 3 使修改的环境变量生效
source /etc/profile
步骤 4 查看配置是否生效。
mvn -v
步骤 5 查看配置是否生效。
修改Maven配置文件中的:本地仓路径、远程仓等。
配置文件路径:“/opt/tools/installed/apache-maven-3.5.4/conf/settings.xml”
远程仓库配置(修改成自己搭建的Maven仓库,如果没有,可以按照下面示例配置),在<mirrors>标签内添加以下内容:
<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>
3.4 安装Protobuf
步骤 1 查看配置是否生效。
yum install -y protobuf protobuf-devel
步骤 2 通过执行以下命令,指定安装的Protoc可执行文件
mvn install:install-file -DgroupId=com.google.protobuf -DartifactId=protoc -Dversion=2.5.0 -Dclassifier=linux-aarch_64 -Dpackaging=exe -Dfile=/usr/bin/protoc
4 编译
4.1 编译netty-all-4.0.27.Final
步骤 1 按xxx指导编译netty-all-4.0.27.Final
4.2 编译flink-shaded-netty
步骤 1 下载flink-shaded-1.0安装包。
wget https://github.com/apache/flink-shaded/archive/1.0.tar.gz
步骤 2 解压安装包。
tar -zxf 1.0.tar.gz
步骤 3 进入解压后目录
cd flink-shaded-1.0
步骤 4 执行编译
编译打成jar包,flink-shaded-netty-4.0.27.Final-1.0.jar放置于“flink-shaded-netty-4/target”目录。
mvn clean install -pl flink-shaded-netty-4
步骤 5 使用鲲鹏分析扫描工具扫描编译生成的jar包,确保没有包含有x86的so和jar包。