apache doris源码编译(全) fe be broker
服务器准备好maven和docker
本机安装好maven,找到maven仓库位置 我这里是 /root/.m2 本机安装好docker.
下载源码
官网源码下载 http://doris.incubator.apache.org/zh-CN/downloads/downloads.html#doris-%E4%B8%BB%E4%BB%A3%E7%A0%81
本机下载源码,解压。 apache-doris-0.15.0-incubating-src.tar.gz 我这里解压内容到此目录下,/opt/servers/incubator-doris-DORIS-0.15.0-release
接下来,需要一个环境(dockers环境),dockers环境用来编译上面的源码。注意:这不是doris的安装环境,只是编译源码的环境。
docker编译环境准备
拉取docker镜像
docker pull apache/incubator-doris:build-env-for-0.15.0
运行镜像 (挂载宿主机的mavern仓库位置;挂载宿主机的源码解压内容位置)
挂载maven路径和源码路径
docker run -it -v /root/.m2:/root/.m2 -v /opt/servers/incubator-doris-DORIS-0.15.0-release:/root/incubator-doris-DORIS-0.15.0-release apache/incubator-doris:build-env-for-0.15.0 ;
注:这里挂载了maven仓库位置和源码位置。宿主机共享了这两个位置给docker容器。 上面指令运行后,自动进入了docker容器内。 在容器内。
容器内执行编译(切换jdk、指令集)
在docker内进入到 build.sh文件所在目录。开始编译。 切换到自己将要运行的jdk版本。 容器内默认是jdk11。 我这里是1.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
查看编译机器是否支持avx2指令集
cat /proc/cpuinfo | grep avx2
#第一次编译,需要加参数 --clean --be --fe --ui 二选一 如果不支持avx2指令集。执行下面编译指令
USE_AVX2=0 sh build.sh --clean --be --fe --ui
如果支持avx2指令集。执行下面编译指令
sh build.sh --clean --be --fe --ui
如下编译成功
编译完成后,be fe安装包 在 output/ 目录中。 上面是fe 和be的编译。已经可以安装使用了。
额外的
broker插件编译
有时候我们需要用上broker功能,加载hdfs上的数据。broker类似插件的形式。它也是需要单独编译的。
进入 fs_brokers/apache_hdfs_broker目录下。 执行编译
sh build.sh
同样,在同路径下output 会生成需要的。