apache kylin 本地编译步骤及主要填坑方法

首先是环境准备,

请参考

源码编译Kylin(详细版)https://blog.csdn.net/weixin_42536586/article/details/108446512

补充几点:

1、最好在linux下编译,因为自带的sh脚本在windows下无法执行

2、使用jdk1.8,oracle官网最新是16,不要用。而且不要只安装jre,需要使用jdk

3、配置好JAVA_HOME指向jdk安装的目录

4、MAVEN的阿里源好多包不全,如果速度没问题,可以使用默认源。也就是把上文中的阿里源用<!--    -->标签注释掉

源文件准备:

大家做开发,习惯于从git上git clone源代码。

Kylin编译部署及汉化

这篇文档也是教大家git clone https://github.com/apache/kylin.git

但是,这样获得的源码是最新源代码。而我们实际应该使用的是各个release版本的源代码。

这些release版本的源代码,需要从http://archive.apache.org/dist/kylin找到对应版本的源代码下载。比如,我要编译针对hadoop的3.1.2版本,则下载

wget http://archive.apache.org/dist/kylin/apache-kylin-3.1.2/apache-kylin-3.1.2-source-release.zip

源码下载后,针对源码编译Kylin(详细版)

针对POM.XML修改以后的补充如下:

有可能从core-common起编译就失败。基本原因是以下两个:

1.对应子项目的POM.XML中缺乏必要的依赖项。

解决办法:在maven或阿里云的源中,查找依赖项的pom并补充进云

2.源代码有误,比如core-common中有一段代码,用的是configuration2包中类的方法,但源代码用的是configuration包中的类。

解决办法:适当修改源代码。

目前积累的修改有:

1.core-common

/src/test/java/org/apache/kylin/common/metrics/metrics2/StandaloneExample.javaStandalone.java

import org.apache.commons.configuration.SubsetConfiguration;

改为

import org.apache.commons.configuration2.SubsetConfiguration;

 

pom.xml中增加以下依赖项

<dependency>

    <groupId>commons-collections</groupId>

    <artifactId>commons-collections</artifactId>

    <version>3.2.2</version>

</dependency>

 

<dependency>

    <groupId>com.melloware</groupId>

    <artifactId>commons-configuration2</artifactId>

    <version>2.8.0</version>

</dependency>

 

 

<dependency>

     <groupId>commons-codec</groupId>

     <artifactId>commons-codec</artifactId>

     <version>1.10</version>

</dependency>

2.stream-core

pom.xml

增加以下依赖

 

<!-- https://mvnrepository.com/artifact/org.apache.directory.api/api-util -->

<dependency>

    <groupId>org.apache.directory.api</groupId>

    <artifactId>api-util</artifactId>

    <version>2.0.2</version>

</dependency>

3.hive-sources

pom.xml

增加以下依赖

<dependency>

    <groupId>commons-configuration</groupId>

    <artifactId>commons-configuration</artifactId>

    <version>1.6</version>

</dependency>

上一篇:JSONObject


下一篇:[Java] JAVA IO操作