---
title: Kafka使能LZ4压缩算法
description: "Kafka使能鲲鹏加速库LZ4压缩算法。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/Kafka/kunpengkafkahdp_05_0019.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/Kafka/kunpengkafkahdp_05_0019.html
indexId: 3bf047e7ed1107ee1e01b7f91ecb26ac7fc63793a52762f144591b7b5ad667da72
---
# Kafka使能LZ4压缩算法

#### 目的

Kafka使能鲲鹏加速库LZ4压缩算法。


#### 方法

将lz4-java仓中的LZ4开源代码替换成鲲鹏加速库LZ4代码，Kafka组件通过KafkaLZ4BlockInputStream和KafkaLZ4BlockOutputStream类来调用lz4-java-1.7.1.jar，通过使能鲲鹏加速库LZ4压缩算法，使Kafka在使用LZ4压缩格式时，性能得到提升。


#### 软件要求


**表1 软件要求**

| 类别 | 支持版本 |
| --- | --- |
| Java | OpenJDK(https://github.com/AdoptOpenJDK/openjdk8\-binaries/releases/download/jdk8u252\-b09/OpenJDK8U\-jdk\_aarch64\_linux\_hotspot\_8u252b09.tar.gz) |
| 操作系统 | openEuler 22.03 LTS SP3 |
| Kafka | 2.5.0 |
| Ant | 1.9.14(https://archive.apache.org/dist/ant/binaries/apache\-ant\-1.9.14\-bin.zip) |
| lz4\-java | 1.7.1(https://github.com/lz4/lz4\-java/archive/refs/tags/1.7.1.zip) |


#### 软件获取

使能Kafka鲲鹏加速库LZ4特性所需软件包及其获取方式如表2所示。


**表2 Kafka使能鲲鹏加速库LZ4软件获取列表**

| 名称 | 软件包名称 | 发布类型 | 说明 | 获取地址 |
| --- | --- | --- | --- | --- |
| 鲲鹏加速库LZ4 | master.zip | 开源 | 通过鲲鹏加速库使LZ4压缩解压缩算法性能提升。 | 获取链接(https://gitee.com/kunpeng\_compute/lz4/repository/archive/master.zip) |
| KZL | BoostKit\-kzl\_1.0.0.zip | 闭源 | 基于鲲鹏平台对LZ4进行优化的代码库，通过补丁劫持压缩函数处理方式，调用KZL优化代码，从而达到性能提高效果。 | 获取链接(https://www.hikunpeng.com/developer/boostkit/library/detail?subtab=LZ4) |
| lz4\-java开源版本软件包 | 1.7.1.zip | 开源 | lz4\-java的源码，编译的时候将鲲鹏加速库LZ4打包进去。 | 获取链接(https://github.com/lz4/lz4\-java/archive/refs/tags/1.7.1.zip) |


#### 配置编译环境

1. 安装OpenJDK。

  a. 下载安装包。
    1 wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz --no-check-certificate

  b. 解压到指定目录“/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/

  c. 配置环境变量。

    1. 打开“profile”文件。
      1 vi /etc/profile

    2. 按“i”进入编辑模式，在文件中配置以下内容。
      1 2 export JAVA_HOME=/opt/tools/installed/jdk8u252-b09 export PATH=$JAVA_HOME/bin:$PATH

    3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 生效环境变量。
    1 source /etc/profile

2. 安装Ant。

  a. 下载Ant 1.9.14版本安装包。
    1 wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.14-bin.zip --no-check-certificate

  b. 解压到指定目录“/opt/tools/installed”。
    1 2 unzip apache-ant-1.9.14-bin.zip mv apache-ant-1.9.14 /opt/tools/installed/

  c. 配置Ant环境变量。

    1. 打开“profile”文件。
      1 vi /etc/profile

    2. 按“i”进入编辑模式，在文件中配置以下内容。
      1 2 export ANT_HOME=/opt/tools/installed/apache-ant-1.9.14 export PATH=$ANT_HOME/bin:$PATH

    3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 生效环境变量。
    1 source /etc/profile

  e. 查看是否生效。
    1 ant -version


#### 编译鲲鹏加速库LZ4压缩算法

1. 下载鲲鹏加速库LZ4压缩算法并合入patch。

  a. 创建安装目录。
    1 mkdir -p /opt/lz4

  b. 下载鲲鹏加速库LZ4压缩算法并解压压缩包。
    1 2 3 cd /opt/lz4 wget https://gitee.com/kunpeng_compute/lz4/repository/archive/master.zip --no-check-certificate unzip master.zip

  c. 删除原有的BoostKit-kzl_1.0.0.zip包。
    1 2 cd /opt/lz4/lz4-master rm -rf BoostKit-kzl_1.0.0.zip

  d. 从    表2
下载新的BoostKit-kzl_1.0.0.zip包，将其上传到“lz4-master”目录中，并进行解压。
    1 2 cd /opt/lz4/lz4-master unzip BoostKit-kzl_1.0.0.zip

  e. 解压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

2. 下载lz4-java并编译。

  a. 下载并解压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

  b. 使用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

  c. 修改编译文件build.xml，将.a文件和.o文件编译到JAR中。

    1. 进入“/opt/lz4/lz4-java-1.7.1”目录，并打开“build.xml”文件。
      1 2 cd /opt/lz4/lz4-java-1.7.1 vim build.xml

    2. 按“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" />

    3. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
  d. 执行编译。
    1 2 3 cd /opt/lz4/lz4-java-1.7.1 ant ivy-bootstrap ant

  e. 将包重命名为lz4-java-1.7.1.jar。
    1 2 cd dist mv lz4-java-1.6-SNAPSHOT.jar lz4-java-1.7.1.jar


#### 使能鲲鹏加速库LZ4压缩算法

将上文步骤中编译好的lz4-java-1.7.1.jar替换Kafka的“libs”目录下开源版本的软件包，重启Kafka即可。
