下一代实时数据库:Apache Doris 【二】编译与安装

2023-08-08 14:06:41

第 2 章 编译与安装

安装 Doris,需要先通过源码编译,主要有两种方式:使用 Docker 开发镜像编译(推荐)、直接编译。
直接编译的方式,可以参考官网:https://doris.apache.org/zh-CN/installing/compilation.html

2.1 安装 Docker 环境

  1. Docker 要求 CentOS 系统的内核版本高于 3.10 ,首先查看系统内核版本是否满足

  2. 使用 root 权限登录系统,确保 yum 包更新到最新

  3. 假如安装过旧版本, 先卸载旧版本
    sudo yum remove docker docker-common docker-selinux docker-engine

  4. 安装 yum-util 工具包和 devicemapper 驱动依赖
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  5. 设置 yum 源(加速 yum 下载速度)

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

  1. 查看所有仓库中所有 docker 版本, 并选择特定版本安装,一般可直接安装最新版

  2. 安装 docker
    (1) 安装最新稳定版本的方式:
    sudo yum install docker-ce -y #安装的是最新稳定版本,因为 repo 中默认只

(2) 安装指定版本的方式:

  1. 启动并加入开机启动

  2. 查看 Version,验证是否安装成功

若出现 Client 和 Server 两部分内容, 则证明安装成功。

2.2 使用 Docker 开发镜像编译

  1. 下载源码并解压
    通过 wget 下载(或者手动上传下载好的压缩包) 。
wget

https://dist.apache.org/repos/dist/dev/incubator/doris/0.15/0.15. 0-rc04/apache-doris-0.15.0-incubating-src.tar.gz

解压到/opt/software/

tar -zxvf apache-doris-0.15.0-incubating-src.tar.gz -C /opt/software

2)下载 Docker 镜像

docker pull apache/incubator-doris:build-env-for-0.15.0

可以通过以下命令查看镜像是否下载完成。

docker images

3)挂载本地目录运行镜像
以挂载本地 Doris 源码目录的方式运行镜像, 这样编译的产出二进制文件会存储在宿主 机中, 不会因为镜像退出而消失。同时将镜像中 maven 的 .m2 目录挂载到宿主机目录, 以
防止每次启动镜像编译时,重复下载 maven 的依赖库。

docker run -it \
-v /opt/software/.m2:/root/.m2 \
-v /opt/software/apache-doris-0.15.0-incubating-src/:/root/apache- doris-0.15.0-incubating-src/ \
apache/incubator-doris:build-env-for-0.15.0
  1. 切换到 JDK 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
    
  1. 准备 Maven 依赖
    编译过程会下载很多依赖,可以将我们准备好的 doris-repo.tar.gz 解压到 Docker 挂载的对应目录, 来避免下载依赖的过程, 加速编译。

tar -zxvf doris-repo.tar.gz -C /opt/software

也可以通过指定阿里云镜像仓库来加速下载:
vim /opt/software/apache-doris-0.15.0-incubating-src/fe/pom.xml 在标签下添加:

<repository>                                                       	
<id>aliyun</id>                                                	<url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
</repository>                                                      

vim /opt/software/apache-doris-0.15.0-incubating-src/be/pom.xml 在标签下添加:

<repository>                                                       	
<id>aliyun</id>                                                	<url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
</repository> 

6)编译 Doris

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 生成代码文件,否则会出现不兼容的代码。

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
📢专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12401955.html

更多推荐

Docker实践:使用Docker搭建个人开发环境(极简版)

文章目录说明教程1.编写Dockerfile2.编写docker-compose.yml3.使用容器创建容器启动容器进入容器命令行VSCode4.关闭容器5.备份容器导出导入6.重置容器相关资料文章合集详细了解本文在个人电脑上安装Docker容器使用NVIDIA显卡托管镜像运行GUI程序说明本文是在服务器已经配置好Do

python入门篇03 基础案例 python版与java版 语法不同之处

目录1.前言:->上篇传送门:python入门篇02python的语法基础2.案例:pzy超市的收银系统(控制台输入版)->2.0需求摘要:->2.1python代码答案:<直接可以运行>->2.2java代码答案:<必须有main方法>2.3两种代码运行的结果:(一样的结果)--->2.3.2python运行结果(图

【实用 Python 库】Python glob库:轻松应对文件和目录管理

导言在Python编程中,我们经常需要处理文件和目录。为了更便捷地处理这些任务,Python提供了glob库,它允许我们根据特定模式匹配文件和目录。本篇博客将详细介绍glob库的用法,并通过实例演示它的各种功能。什么是glob库?glob库是Python标准库中的一个模块,它提供了一个简单而强大的方法来匹配文件和目录的

springboot整合SSE

SSE简介SSE(ServerSentEvent),是一种可以主动从服务端推送消息的技术。SSE的本质其实就是一个HTTP的长连接,只不过它给客户端发送的不是一次性的数据包,而是一个stream流,格式为text/event-stream。所以客户端不会关闭连接,会一直等着服务器发过来的新的数据流。SSE服务端代码sp

Vulnhub系列靶机---Deathnote: 1死亡笔记

文章目录信息收集主机发现端口扫描目录扫描dirsearchgobusterdirb扫描漏洞利用wpscan扫描Hydra爆破总结靶机文档:Deathnote:1下载地址:Download(Mirror)难易程度:soEasy信息收集主机发现端口扫描访问靶机的80端口,报错,如下图显示:地址栏输入地址后,自动跳转到一个域

让Mac菜单栏变得更加美观整洁——Bartender 5

Bartender5是一款Mac电脑上的菜单栏图标管理软件,能够帮助您把菜单栏上的图标整理得更加美观、整洁和易于使用。如果您的菜单栏上充斥着许多图标,导致视觉上很不舒适和疲劳,那么Bartender5就是解决这一问题的最佳选择!Bartender5的操作相当简单,它可以隐藏菜单栏上不常用的图标,只在需要时出现。也可以把

Python是人工智能的最佳选择吗?看看它的优势和局限

人工智能(ArtificialIntelligence,AI)是当今科技领域最热门的话题之一,它涉及到计算机科学、数学、统计学、心理学等多个学科的交叉和融合。人工智能的目标是让机器能够模拟和超越人类的智能,实现自主学习、推理、决策等能力。要实现人工智能,就需要用到编程语言。编程语言是人类和机器之间沟通的桥梁,它可以让我

Python asynchat模块-异步套接字处理-服务器程序示例

介绍此模块在asyncore架构上建立,简化了异步客户端和服务器,并且使得处理元素为任意字符串结束或者为变长度的协议更加容易。asynchat定义了一个可以由使用者来子类化的抽象类async_chat,提供了collect_incoming_data()和found_terminator()等方法的实现。它使用与asy

【腾讯云 Cloud Studio 实战训练营】使用云IDEA,快速构建React完成点餐H5页面

文章目录前言简介优势项目介绍实战教学注册流程创建工作空间环境配置安装antd-mobile安装less和less-loader暴露webpack配置文件修改config/webpack.config.js文件安装normalize上传项目素材替换App.js主文件创建index.less文件启动项目清理实验先停止项目再

在 Windows 上直接安装 React

🎬岸边的风:个人主页🔥个人专栏:《VUE》《javaScript》⛺️生活的理想,就是为了理想的生活!目录必备条件创建React应用本指南将介绍如何使用create-react-app工具链直接在Windows上安装React。如果你不熟悉React并且正好有兴趣学习,我们建议遵循以下说明。如果你要创建一个单页应用

【九章斩题录】Leetcode:判定字符是否唯一(C/C++)

精品题解🔥《九章斩题录》👈猛戳订阅面试题01.01.判定字符是否唯一✅模板:C语言classSolution{public:boolisUnique(stringastr){}};💭思考:《程序员面试金典》里的题,这题和剑指Offer的"数组中重复的数字"几乎一模一样啊,只是重复的数字变成了重复的字符,判断"重复

热文推荐