Kafka使能鲲鹏加速库LZ4压缩算法
目的
Kafka使能鲲鹏加速库LZ4压缩算法。
方法
将lz4-java仓中的原生LZ4代码替换成鲲鹏加速库LZ4代码,Kafka组件通过KafkaLZ4BlockInputStream和KafkaLZ4BlockOutputStream类来调用lz4-java-1.7.1.jar,通过使能鲲鹏加速库LZ4压缩算法,使Kafka在使用LZ4压缩格式时,性能得到提升。
软件要求
软件获取
使能Kafka鲲鹏加速库LZ4特性所需软件包及其获取方式如表2所示。
配置编译环境
- 安装OpenJDK。
- 下载安装包。
1
wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz --no-check-certificate
- 解压到指定目录“/opt/tools/installed”。
1 2 3
tar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz mkdir -p /opt/tools/installed/ mv jdk8u252-b09 /opt/tools/installed/
- 配置环境变量。
- 打开“profile”文件。
1
vi /etc/profile
- 按“i”进入编辑模式,在文件中配置以下内容。
1 2
export JAVA_HOME=/opt/tools/installed/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“profile”文件。
- 生效环境变量。
1
source /etc/profile
- 下载安装包。
- 安装Ant。
- 下载Ant 1.9.14版本安装包。
1
wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.14-bin.zip --no-check-certificate
- 解压到指定目录“/opt/tools/installed”。
1 2
unzip apache-ant-1.9.14-bin.zip mv apache-ant-1.9.14 /opt/tools/installed/
- 配置Ant环境变量。
- 打开“profile”文件。
1
vi /etc/profile
- 按“i”进入编辑模式,在文件中配置以下内容。
1 2
export ANT_HOME=/opt/tools/installed/apache-ant-1.9.14 export PATH=$ANT_HOME/bin:$PATH
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“profile”文件。
- 生效环境变量。
1
source /etc/profile
- 查看是否生效。
1
ant -version
- 下载Ant 1.9.14版本安装包。
编译鲲鹏加速库LZ4压缩算法
- 下载鲲鹏加速库LZ4压缩算法并合入patch。
- 创建安装目录。
1
mkdir -p /opt/lz4
- 下载鲲鹏加速库LZ4压缩算法并解压压缩包。
1 2 3
cd /opt/lz4 wget https://gitee.com/kunpeng_compute/lz4/repository/archive/master.zip --no-check-certificate unzip master.zip
- 删除原有的BoostKit-kzl_1.0.0.zip包。
1 2
cd /opt/lz4/lz4-master rm -rf BoostKit-kzl_1.0.0.zip
- 从表2下载新的BoostKit-kzl_1.0.0.zip包,将其上传到“lz4-master”目录中,并进行解压。
1 2
cd /opt/lz4/lz4-master unzip BoostKit-kzl_1.0.0.zip
- 解压lz4-1.9.3.zip包,合入KZL的Patch。
1 2 3 4 5 6
cd /opt/lz4/lz4-master unzip lz4-1.9.3.zip patch -p0 < ./lz4_kzl.patch cp ./kzl.a ./lz4_accelerater.h ./lz4-1.9.3/lib cd lz4-1.9.3/lib ar -x kzl.a
- 创建安装目录。
- 下载lz4-java并编译。
- 下载并解压lz4-java。
1 2 3
cd /opt/lz4/ wget https://github.com/lz4/lz4-java/archive/refs/tags/1.7.1.zip --no-check-certificate unzip 1.7.1.zip
- 使用KZL的LZ4目录替换原生的LZ4。
1 2 3 4
cd /opt/lz4/lz4-java-1.7.1/src rm -rf lz4 cd /opt/lz4/lz4-master cp -r lz4-1.9.3 /opt/lz4/lz4-java-1.7.1/src/lz4
- 修改编译文件build.xml,将.a文件和.o文件编译到JAR中。
- 进入“/opt/lz4/lz4-java-1.7.1”目录,并打开“build.xml”文件。
1 2
cd /opt/lz4/lz4-java-1.7.1 vim build.xml
- 按“i”进入编辑模式,将文件214行<fileset dir="${src}/lz4/lib" includes="lz4.c, lz4hc.c, xxhash.c" />修改为如下内容。
1
<fileset dir="${src}/lz4/lib" includes="*.c,*.h, *.a,*.o" />
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 进入“/opt/lz4/lz4-java-1.7.1”目录,并打开“build.xml”文件。
- 执行编译。
1 2 3
cd /opt/lz4/lz4-java-1.7.1 ant ivy-bootstrap ant
- 将包重命名为lz4-java-1.7.1.jar。
1 2
cd dist mv lz4-java-1.6-SNAPSHOT.jar lz4-java-1.7.1.jar
- 下载并解压lz4-java。
使能鲲鹏加速库LZ4压缩算法
将上步骤编译好的lz4-java-1.7.1.jar替换Kafka的“libs”目录下原生的包,重启Kafka即可。
父主题: Kafka性能优化