Doris源码编译(填坑)
由于doris官方不提供安装包,需要自己编译。官网上提供两种编译方式,使用docker镜像编译和直接下载源码包进行编译。下载源码包编译会产生各种各样的环境配置以及依赖下载问题,成功率极低。因此推荐使用docker进行编译。
1. 安装docker
yum -y update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates | sort -r
yum install -y docker-ce-18.06.3.ce
systemctl start docker
systemctl enable docker
2. 拉取镜像,启动容器
- 拉取镜像
docker pull apachedoris/doris-dev:build-env-1.2
- 启动容器,建议同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库
docker run -it -v /opt/modules/complie-doris/.m2:/root/.m2 -v /opt/modules/complie-doris/incubator-doris-DORIS-0.13.0-release/:/root/incubator-doris-DORIS-0.13.0-release/ apachedoris/doris-dev:build-env-1.2
- 下载doris源码到指定目录
cd incubator-doris-DORIS-0.13.0-release
wget http://archive.apache.org/dist/incubator/doris/0.13.0-incubating/apache-doris-0.13.0-incubating-src.tar.gz
# 解压并进入到解压包的根目录
tar -zxvf apache-doris-0.13.0-incubating-src.tar.gz -C ./
cd apache-doris-0.13.0-incubating-src
3. 编译
- 在fe/pom.xml中有些配置需要修改
<!-- for general repository -->
<profile>
<id>general-env</id>
<activation>
<property>
<name>!env.CUSTOM_MAVEN_REPO</name>
</property>
</activation>
<repositories>
<repository>
<id>central</id>
<name>central maven repo https</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<!-- for java-cup -->
<repository>
<id>cloudera-thirdparty</id>
<url>https://repository.cloudera.com/content/repositories/third-party/</url>
// 将上面两行配置**改为**下面两行**
<id>cloudera-public</id>
<url>https://repository.cloudera.com/artifactory/public/</url>
</repository>
<!-- for bdb je -->
<repository>
<id>oracleReleases</id>
<url>http://download.oracle.com/maven</url>
</repository>
</repositories>
<pluginRepositories>
<!-- for cup-maven-plugin -->
<pluginRepository>
<id>spring-plugins</id>
<url>https://repo.spring.io/plugins-release/</url>
// 将上面两行配置**改为**下面两行**
<id>cloudera-public</id>
<url>https://repository.cloudera.com/artifactory/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
- 配置环境变量,指定maven的JVM内存,否则在编译过程中会产生内存溢出。
vim /etc/profile
添加以下内容
export MAVEN_OPTS="-Xmx1024m -Xms256m"
- 编译
sh build.sh
需要经过漫长等待,编译成功后安装包在output目录下。