Doris--基础--2.1--部署--源码编译(使用Docker开发镜像)

Doris–基础–2.1–部署–源码编译(使用Docker开发镜像)


前提

使用hd用户登陆
完成基础环境搭建
	https://blog.csdn.net/zhou920786312/article/details/118212302

1、下载 Docker 镜像

docker pull apache/doris:build-env-ldb-toolchain-latest


1.1、Docker开发镜像 和 Doris版本 关系

  1. 从 Apache Doris 0.15 版本起,后续镜像版本号将与 Doris 版本号统一。
    1. 比如:可以使用 apache/doris:build-env-for-0.15.0 来编译 0.15.0 版本。
  2. apache/doris:build-env-ldb-toolchain-latest 用于编译最新主干版本代码,会随主干版本不断更新。
    1. 可以查看 docker/README.md 中的更新时间。

在这里插入图片描述

1.2、Docker开发镜像 的 JDK

从 build-env-1.3.1 的docker镜像起,同时包含了 OpenJDK 8 和 OpenJDK 11,并且默认使用 OpenJDK 11 编译。
请确保编译使用的 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

2、运行镜像

2.1、创建容器

  1. 将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库
  2. 以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而消失。
docker run -it \
-v /usr/local/.m2:/root/.m2 \
-v /usr/local/doris-src/:/root/doris-src/ \
apache/doris:build-env-ldb-toolchain-latest

2.2、切换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

3、源码

3.1、下载源码

  1. 我这里选择的版本是1.1.2
https://doris.apache.org/zh-CN/download/

在这里插入图片描述
在这里插入图片描述

3.2、把源码拷贝到容器里面

cd /usr/local/doris-src/
ls

在这里插入图片描述

3.3、解压

cd /usr/local/doris-src/
tar -zxvf apache-doris-1.1.2-src.tar.gz
rm -rf apache-doris-1.1.2-src.tar.gz

在这里插入图片描述

4、编译 Doris

在容器里面操作

4.1、查看编译机器是否支持avx2指令集

cat /proc/cpuinfo | grep avx2

在这里插入图片描述

# 如果 不支持,使用以下命令进行编译
USE_AVX2=0  sh build.sh
 
# 如果 支持,使用以下命令进行编译
sh build.sh

4.2、编译

因为我的机器是支持的,所以我的编译命令如下

cd /root/doris-src/apache-doris-1.1.2-src
sh build.sh

在这里插入图片描述

4.3、输出

编译完成后,产出文件在 output/ 目录中。

5、常见问题

5.1、注意

如果你是第一次使用 build-env-for-0.15.0 或之后的版本,第一次编译的时候要使用如下命令

sh build.sh --clean --be --fe

编译完成后,产出文件在 output/ 目录中。

5.2、fatal error: Killed signal terminated program …

  1. 使用 Docker 镜像编译时如遇到上述报错,可能是分配给镜像的内存不足
    1. Docker 默认分配的内存大小为 2GB,编译过程中内存占用的峰值大于 2GB
  2. 尝试适当调大镜像的分配内存,推荐 4GB ~ 8GB。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值