一步一步编译最新版Apache Doris 0.15版本的详细过程
Apache Doris 于 2021 年 11 月 29 日迎来了 0.15.0 Release 版本的正式发布!有 99 位 Contributor 为 Apache Doris 提交了近 700 项优化和修复。在 0.15.0 Release 版本中,增加了诸多新功能,对 Apache Doris 的查询性能、易用性、稳定性方面等进行了全面优化。

本文将详细演示如何一步一步完成编译最新版Apache Doris 0.15版本。
一、下载Docker开发编译镜像
针对不同的Doris版本,需要下载对应的镜像版本。当前,Doris最新release版本是0.15.0。

选择该版本对应的docker开发编译镜像,如图所示。针对不同的 Doris 版本,需要下载对应的镜像版本。

Apache doris 0.15.0 版本选择使用apache/incubator-doris:build-env-1.4.2 编译。
执行如下命令下载docker镜像:
docker pull apache/incubator-doris:build-env-1.4.2

二、下载Apache Doris源码
当前Apache Doris最新release版本为 0.15.0,如图所示:

(1)下载doris源码
创建doris目录(mkdir doris-0.15),然后下载doris源码:
wget https://dlcdn.apache.org/incubator/doris/0.15.0-incubating/apache-doris-0.15.0-incubating-src.tar.gz
执行过程如下所示:
[root@centos-103 ~]# mkdir doris-0.15
[root@centos-103 ~]# cd doris-0.15
[root@centos-103 doris-0.15]#wget https://dlcdn.apache.org/incubator/doris/0.15.0-incubating/apache-doris-0.15.0-incubating-src.tar.gz

(2)解压
执行如下命令进行源码包解压:
tar vxf apache-doris-0.15.0-incubating-src.tar.gz
解压完成之后,如下所示:
[root@centos-103 doris-0.15]# ls
apache-doris-0.15.0-incubating-src apache-doris-0.15.0-incubating-src.tar.gz
三、启动Docker容器
需要做两个目录映射,一个是maven的repository目录,一个是doris源码目录,避免容器挂了之后之前下载或编译的内容丢失。
Docker启动命令如下所示:
docker run -it -v /root/.m2:/root/.m2 -v /root/doris-0.15/apache-doris-0.15.0-incubating-src:/root/doris-0.15/apache-doris-0.15.0-incubating-src apache/incubator-doris:build-env-1.4.2

在 build-env-1.4.2 的docker镜像中,同时包含了 OpenJDK 8 和 OpenJDK 11,并且默认使用 OpenJDK 11 编译。
可以使用 java -version 命令查看,如上图所示。
请确保编译使用的 JDK 版本和运行时使用的 JDK 版本一致,否则会导致非预期的运行错误。你可以使用在进入编译镜像的容器后,使用以下命令切换默认 JDK 版本:
切换到 JDK 8:
$ alternatives --set java java-1.8.0-openjdk.x86_64
$ alternatives --set javac java-1.8.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0
切换到 JDK 11:
$ alternatives --set java java-11-openjdk.x86_64
$ alternatives --set javac java-11-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-11
由于我们的运行时为JDK 8,因此切换到JDK 8环境。

四、编译Doris
现在准备妥当了,可以开始编译Apache Doris源码包了。
在进入docker容器之后,进入到/root/doris-0.15/apache-doris-0.15.0-incubating-src 源码映射目录中,执行编译命令。
sh build.sh

开始漫长的编译过程 ... 编译过程有点慢。

编译之后输出至output目录,有3个子目录:be、fe、udf,只需要拷贝output目录到其他服务器即可。
[root@c7738df1c0f4 apache-doris-0.15.0-incubating-src]# ls output
be fe udf
退出Docker 容器,然后可以将output目录中的所有内容拷贝到另一个目录中,如/root/doris-0.15,命令如下所示:
cp -r output/* /root/doris-0.15

output目录下,拷贝出来就是可以安装了。
