OLAP之Doris编译
背景
OLAP下,我选doris,来试试如何安装。
编译
根据自己的情况选择对应的环境,我这里按照0.15为例
docker pull apache/incubator-doris:build-env-for-0.15.0
运行镜像
方式一:提前下载好源码,挂载到镜像中
1 | docker run -it -v /your/local/.m2:/root/.m2 -v /your/local/incubator-doris-DORIS-x.x.x-release/:/root/incubator-doris-DORIS-x.x.x-release/ apache/incubator-doris:build-env-for-0.15.0 |
这条命令挂载了源码,和maven的本地库,可以避免一些包每次都要下载,其中:/your/local/.m2
: 本地maven仓库的地址/your/local/incubator-doris-DORIS-x.x.x-release/
:源码的路径/root/incubator-doris-DORIS-x.x.x-release/
:源码挂载后的目录名apache/incubator-doris:build-env-for-0.15.0
:刚才拉取的环境
方式二:在docker中拉取源码
1 | ① docker run -it apache/incubator-doris:build-env-for-0.15.0 |
如果是最新主干版本代码,使用 apache/incubator-doris:build-env-latest
进行编译
更改jdk版本
从 build-env-1.3.1 的docker镜像起,同时包含了 OpenJDK 8 和 OpenJDK 11,并且默认使用 OpenJDK 11 编译。请确保编译使用的 JDK 版本和运行时使用的 JDK 版本一致,否则会导致非预期的运行错误。你可以使用在进入编译镜像的容器后,使用以下命令切换默认 JDK 版本:
切换到 JDK 8:
1 | $ alternatives --set java java-1.8.0-openjdk.x86_64 |
切换到 JDK 11:
1 | $ alternatives --set java java-11-openjdk.x86_64 |
编译
1 | sh build.sh |
注意:
如果你是第一次使用 build-env-for-0.15.0 或之后的版本,第一次编译的时候要使用如下命令:sh build.sh --clean --be --fe --ui
这是因为 build-env-for-0.15.0 版本镜像升级了 thrift(0.9 -> 0.13),需要通过 –clean 命令强制使用>新版本的 thrift 生成代码文件,否则会出现不兼容的代码。
注:编译整个过程大概2小时以上,是极为痛苦的。T T,本人编译超过10次以上,2台电脑开docker编译,编译过程,遇到多次fail退出,大部分问题是docker内存不足导致,所以务必将docker的内存调到至少10GB,否则一旦编译内存不足就会失败。
2017款macbook pro 编译成功
2022款macbookpro M1 pro 编译失败
痛哭流涕,终于编译完成,见到这个编译完成命令。
进入到output目录,可以看到be,fe,udf三个文件夹,接下来就是安装部署了
我们看到整个doris社区很多人想体验Doris进行尝鲜,但是苦于环境以及服务器的限制,那么我们来制作一下Doris的镜像及尝试用docker搭建集群