doris--Apache Doris 1.1.0编译过程记录

1. docker的安装

docker安装过程参考:https://docs.docker.com/engine/install/centos/

安装前,确保网络畅通,确保登录了root账号,或者具有root权限的账号。

  1. 查看当前centos系统的内核版本

    uname -r
    

    当前centos内核版本必须要高于3.10,满足要求之后再继续后续步骤。

  2. 更新yum包

    sudo yum update -y
    

    确保yun包都更新到最新版。

  3. 卸载旧版本docker

    sudo yum remove docker docker-common docker-selinux docker-engine
    

    如果安装了旧版本的docker,则先卸载旧版本。

  4. 安装工具包和依赖

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    

    安装yum-util工具包和device-mapper依赖包。

  5. 设置yum源

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    如果连接超时,可以使用 alibaba 的镜像源:

    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    如果此处设置成功,则会显示:repo saved to /etc/yum.repos.d/docker-ce.repo

  6. 安装最新版docker

    sudo yum install docker-ce -y
    
  7. 启动docker

    sudo systemctl start docker
    sudo systemctl enable docker
    

    启动docker,并将其加入到开机自启动。

  8. 验证docker是否安装成功

    docker version
    

    出现以下的两部分信息(Client和Server)则为成功:

    [root@hadoop102 ~]# docker version
    Client: Docker Engine - Community
     Version:           23.0.1
     API version:       1.42
     Go version:        go1.19.5
     Git commit:        a5ee5b1
     Built:             Thu Feb  9 19:51:00 2023
     OS/Arch:           linux/amd64
     Context:           default
    
    Server: Docker Engine - Community
     Engine:
      Version:          23.0.1
      API version:      1.42 (minimum version 1.12)
      Go version:       go1.19.5
      Git commit:       bc3805a
      Built:            Thu Feb  9 19:48:42 2023
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.6.18
      GitCommit:        2456e983eb9e37e47538f59ea18f2043c9a73640
     runc:
      Version:          1.1.4
      GitCommit:        v1.1.4-0-g5fd4c4d
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    

2. 编译doris

  1. 下载doris源码

    此处需要wget命令下载源码,如果没有的话需要手动安装一下,安装命令如下:

    yum install wget -y
    

    将目录切换到/opt/software下,然后下载doris源码:

    wget https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.0-rc05/apache-doris-1.1.0-src.tar.gz
    

    此处是选择了doris1.1.0版本,大家可按需选择自己需要的版本,官网的源码目录:https://doris.apache.org/zh-CN/download/

  2. 解压源码

    下载好的doris源码压缩包位于/opt/software,我们将其解压至/opt/module目录下(此处需注意目录):

    tar -zxvf /opt/software/apache-doris-1.1.0-src.tar.gz -C /opt/module/
    
  3. 下载docker镜像

    下载镜像的时候,需要注意查看doris对应的镜像版本。官网查看链接:https://doris.apache.org/zh-CN/docs/install/source-install/compilation

    本案例中doris1.1.0版本对应的镜像就是apache/doris:build-env-for-1.1.0,下载docker镜像命令:

    docker pull apache/doris:build-env-for-1.1.0
    

    下载完成后,可通过如下命令查看镜像下载是否完成:

    docker images
    

    如果下载完成,则出现以下信息:

    [root@hadoop102 ~]# docker images
    REPOSITORY     TAG                   IMAGE ID       CREATED        SIZE
    apache/doris   build-env-for-1.1.0   dde1b354e49b   8 months ago   4.41GB
    apache/doris   build-env-for-1.0.0   bc54bb07cd7b   9 months ago   4.59GB
    
  4. 运行镜像

    运行镜像命令如下所示,docker run其实是启动一个容器的命令,该命令是一次性启动容器,退出时容器会终止。有关docker run的参数参考:https://docs.docker.com/engine/reference/commandline/run/。

    docker run -it \
    -v /opt/module/.m2:/root/.m2 \
    -v /opt/module/apache-doris-1.1.0-src:/root/apache-doris-1.1.0-src apache/doris:build-env-for-1.1.0
    

    第3行的-v参数后面跟着的是指定一个bind mounts,就是以挂载本地 Doris 源码目录的方式运行镜像,这样编译的产出二进制文件会存储在宿主机中,不会因为镜像退出而消失。

    第2行的-v参数是指将镜像中 maven 的 .m2 目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库。

    运行成功后,会发现已经进入到docker容器中,下面第四行显示的已经位于容器中:

    [root@hadoop102 module]# docker run -it \
    > -v /opt/module/.m2:/root/.m2 \
    > -v /opt/module/apache-doris-1.1.0-src:/root/apache-doris-1.1.0-src apache/doris:build-env-for-1.1.0
    [root@3e1d8221dc54 ~]
    
  5. 切换jdk版本

    在容器中通过java -version查看jdk版本,然后选择jdk版本,让其与宿主机的jdk版本保持一致。

    以下是切换到java1.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
    
  6. 编译doris

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

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

    这是因为 build-env-for-0.15.0 版本镜像升级了 thrift(0.9 -> 0.13),需要通过 --clean 命令强制使用新版本的 thrift 生成代码文件,否则会出现不兼容的代码。

    其他情形用如下命令编译:

    sh build.sh
    

    接着便是漫长的等待编译过程…

你可能感兴趣的:(doris,大数据,docker,linux,doris)