---
title: 编译代码
description: "编译机器学习算法加速库适配代码"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/bds/kunpengbdssparkml_20_0018.html
sourcePath: /source/zh/kunpengboostkithistory/2200/bds/kunpengbdssparkml_20_0018.html
indexId: a6c96a56192c070a70ee585d49db5f587f712d95943a814ae9b98948428ad52873
---
# 编译代码

#### 获取机器学习算法加速库适配代码Spark-ml-algo-lib

编译机器学习算法加速库适配代码

机器学习算法加速库适配代码基于开源软件Spark 2.3.2/Spark 2.4.6/Spark 3.1.1开发，用于编译机器学习算法加速库。下载大数据机器学习算法加速库的适配Spark 2.3.2的开源仓代码(https://gitee.com/kunpengcompute/Spark-ml-algo-lib/archive/refs/tags/v2.2.0-spark2.3.2.zip)/适配Spark 2.4.6的开源仓代码(https://gitee.com/kunpengcompute/Spark-ml-algo-lib/archive/refs/tags/v2.2.0-spark2.4.6.zip)/适配Spark 3.1.1的开源仓代码(https://gitee.com/kunpengcompute/Spark-ml-algo-lib/archive/refs/tags/v2.2.0-spark3.1.1.zip)到指定目录下，如“/opt/”，并解压（以下操作都以适配Spark 2.3.2的包为例）。```
cd /opt/
unzip Spark-ml-algo-lib-v2.2.0-spark2.3.2.zip
```


机器学习算法加速库适配代码是由Spark 2.3.2、Breeze 0.13.1、netlib-2.2.1、xgboost 1.1.0的部分原生代码文件打入Patch后进行构建而来，构建方法详见构建机器学习算法加速库适配代码。


#### 编译除XGBoost算法外的开源适配代码

1. 进入“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/”目录，并编译算法需要使用到的JAR包。
  1 2 cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ mvn clean package

  执行此步骤前请先确认服务可连通外网，如果没有外网权限，执行命令会报错。

2. 在“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-core/target/”目录下可以获取boostkit-ml-core_2.11-2.2.0-spark2.3.2.jar。
  1 cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-core/target/

3. 在“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-accelerator/target/”目录下可以获取boostkit-ml-acc_2.11-2.2.0-spark2.3.2.jar。
  1 cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-accelerator/target/

4. 在“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-kernel-client/target/”目录下可以获取boostkit-ml-kernel-client_2.11-2.2.0-spark2.3.2.jar。
  1 cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-kernel-client/target/


#### 编译XGBoost算法的开源适配代码


1. 编译XGBoost算法时，进入“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-xgboost/jvm-packages”目录。

```
cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-xgboost/
jvm-packages
/
```


2. 编译XGBoost算法用到的JAR包。

```
mvn package
```


3. 在“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-xgboost/jvm-packages/boostkit-xgboost4j-spark/target/”目录下可以获取boostkit-xgboost4j-spark2.3.2_2.11-2.2.0.jar。

```
cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-xgboost/
jvm-packages
/
boostkit-xgboost4j-spark/target/
```


4. 在“/opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-xgboost/jvm-packages/boostkit-xgboost4j/target/”目录下可以获取boostkit-xgboost4j_2.11-2.2.0.jar。

```
cd /opt/Spark-ml-algo-lib-v2.2.0-spark2.3.2/ml-xgboost/
jvm-packages
/
boostkit-xgboost4j/target/
```
