编译

    1. 下载 Docker 镜像

      检查镜像下载完成:

    注: 针对不同的 Doris 版本,需要下载对应的镜像版本

    1. 运行镜像

      $ docker run -it apachedoris/doris-dev:build-env

      建议以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而消失。

      同时,建议同时将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库。

      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/ apachedoris/doris-dev:build-env
    2. 下载源码

    3. 编译 Doris

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

      自行编译开发环境镜像

      你也可以自己创建一个 Doris 开发环境镜像,具体可参阅 docker/README.md 文件。

      你可以在自己的 linux 环境中直接尝试编译 Doris。

      1. 系统依赖

        GCC 7.3+, Oracle JDK 1.8+, Python 2.7+, Apache Maven 3.5+, CMake 3.11+ Bison 3.0+

        如果使用Ubuntu 16.04 及以上系统 可以执行以下命令来安装依赖

        sudo apt-get install build-essential openjdk-8-jdk maven cmake byacc flex automake libtool-bin bison binutils-dev libiberty-dev zip unzip libncurses5-dev curl git ninja-build python

        如果是CentOS 可以执行以下命令

        安装完成后,自行设置环境变量 , JAVA_HOME 等。

      2. 编译 Doris

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

      1. Could not transfer artifact net.sourceforge.czt.dev:cup-maven-plugin:pom:1.6-cdh from/to xxx

        如遇到上述错误,请参照 修改 fe/pom.xml 中 cloudera 相关的仓库配置。

      自 0.13 版本开始,默认的编译产出中将取消对 [1] 和 [2] 两个第三方库的依赖。这两个第三方库为 GNU General Public License V3编译 - 图6 (opens new window) 协议。该协议与 协议不兼容,因此默认不出现在 Apache 发布版本中。

      移除依赖库 [1] 会导致无法访问 MySQL 外部表。访问 MySQL 外部表的功能会在后续版本中通过 UnixODBC 实现。

      移除依赖库 [2] 会导致在无法读取部分早期版本(0.8版本之前)写入的部分数据。因为早期版本中的数据是使用 LZO 算法压缩的,在之后的版本中,已经更改为 LZ4 压缩算法。后续我们会提供工具用于检测和转换这部分数据。

      如果有需求,用户可以继续使用这两个依赖库。如需使用,需要在编译时添加如下选项:

      • [1] mysql-5.7.18