doris--Apache Doris 1.1.0编译过程记录
创始人
2025-05-28 16:47:40
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 - CommunityVersion:           23.0.1API version:       1.42Go version:        go1.19.5Git commit:        a5ee5b1Built:             Thu Feb  9 19:51:00 2023OS/Arch:           linux/amd64Context:           defaultServer: Docker Engine - CommunityEngine:Version:          23.0.1API version:      1.42 (minimum version 1.12)Go version:       go1.19.5Git commit:       bc3805aBuilt:            Thu Feb  9 19:48:42 2023OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.6.18GitCommit:        2456e983eb9e37e47538f59ea18f2043c9a73640runc:Version:          1.1.4GitCommit:        v1.1.4-0-g5fd4c4ddocker-init:Version:          0.19.0GitCommit:        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
    

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

相关内容

热门资讯

原创 小... 导读:小龙虾的头部是“虾黄”还是“虾屎”,教你分清楚,别再乱吃了! 每当夏日来临,小龙虾便成为夜宵餐...
深夜治愈系美食:自己动手包一盘... 当城市褪去喧嚣,深夜的寂静中,总有一份对温暖的渴望。而亲手包一盘饺子,看着面团在掌心化作饱满的月牙,...
广州两日 德厨 思想盛宴广州站 2025/03/09-10 广州两日 广州酒家,德厨,思想盛宴继续进行,这一站是广州炳胜的全哥。9日...
原创 这... 标题:这道口感脆生、开胃提神的四川泡菜,是不是总做不对味。 在川蜀大地,泡菜不仅仅是一道家常小菜,...
内蒙五日游攻略来啦!费用+旅游... 嘿,宝子们!今天必须得给你们安利一下我这次超棒的内蒙之旅!要是没有小帅,这趟旅行可就没这么完美啦!小...
法国旅行商来镇江茅山开展道养文... 法国旅行商一行参访茅山玄宫 6月4日至5日,法国Selectour品牌旗下的Xanadu Paris...
潮汕五日游绝佳攻略来了,潮汕五... 潮汕之旅:一场与美景和人文的邂逅 在祖国的东南沿海,有一片宛如明珠般璀璨的土地——潮汕。这里,碧海...
原创 冬... 冬瓜和虾皮的搭配,堪称夏日餐桌上的绝妙组合。这道看似简单的家常菜,却蕴含着令人惊喜的鲜味密码。当冬瓜...
原创 苦... 苦瓜,这个让人又爱又恨的食材,以其独特的苦味和丰富的营养价值闻名。很多人对苦瓜望而却步,但今天我要介...
原创 天... 导语:天热就馋这锅大包子!不放鸡蛋不放肉,蓬松暄软,比吃肉包子还香! 烈日炎炎的夏日,人们的食欲总是...
婚宴馒头提前上桌 三十桌宾客提... 2025年5月7号,金华兰溪万固开元名都大酒店办婚宴,新娘董女士家按当地习俗,上开元红印大馒头意味着...
探索大新骆越自驾游营地:享受自... 探索大新骆越自驾游营地:享受自然风光与独特文化交融的完美旅程 当阳光透过树叶洒在大地上,激发出无限的...
企业代言 |山东中青国际旅行社... 编者按:在春风送暖、政策护航的良好环境下,民营企业迎来了新的发展机遇。大众网·海报新闻推出“春天里”...
不进景区也能沉浸式感受吐峪沟大... 一边摩旅一边分享日常的所见所闻,通过热心网友在评论区的推荐,我才对吐峪沟大峡谷产生兴趣,亲临现场打卡...
原创 上... 上海,这座既有古老弄堂深处吴侬软语,又展现现代都市气息的城市,孕育了许多引领时尚潮流与文化变革的女性...
带父母去新疆7天6晚大概要多少... 带父母去新疆7天6晚大概要多少钱,畅游新疆七天价格是多少 新疆,宛如一幅壮丽且神秘的画卷,在中国的西...
潮汕结伴自由行4天3夜攻略,潮... 潮汕,这个位于广东东部的美丽地区,总是以其独特的魅力吸引着无数游客。这里有着悠久的历史文化,古色古香...