Apache Doris 单节点(可多节点)Docker集群制作教程

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: Apache Doris是当下非常火热和流行的MPP架构OLAP数据库,很多同学想自学/测试Doris的使用和能力,但是又苦于没有环境或者畏惧冗长的编译+搭建过程,整个过程极大的劝退了很多有些尝试意愿、但又由于各种客观因素无法承担过高学习成本导致尝试失败的同学,故此Apache Doris社区三位社区同学苏奕嘉、种益、杨春东制作了三个不同设计的版本安装方式并提供下载,以此降低大家的学习门槛和提升学习/测试效率。

前言


Apache Doris是当下非常火热和流行的MPP架构OLAP数据库,很多同学想自学/测试Doris的使用和能力,但是又苦于没有环境或者畏惧冗长的编译+搭建过程,整个过程极大的劝退了很多有些尝试意愿、但又由于各种客观因素无法承担过高学习成本导致尝试失败的同学,故此Apache Doris社区三位社区同学苏奕嘉、种益、杨春东制作了三个不同设计的版本安装方式并提供下载,以此降低大家的学习门槛和提升学习/测试效率。


重要说明:该教程提供的编译方式及运行环境都以单节点部署集群为目标,故性能会【大打折扣】,如想体验完整Apache Doris数据库的能力,请以完整集群部署,单节点集群【仅适用于学习、功能测试】所用!


版本说明


1. 极速体验版


1.1. 优点


  1. 超快速的部署体验(网速OK的话十五分钟内部署完毕)
  2. 单节点部署
  3. 支持多环境运行:虚拟机/云服务器/支持Docker的物理机(Mac/Win/Linux)


1.2. 缺点


  1. 数据存储是在Docker容器中,如容器如损坏,会导致数据丢失
  2. 若非干净纯净的系统环境,可能需要手动执行部分BE注册FE的命令


1.3. 适用人群


学生、培训机构、体验/测试人员


1.4. 安装建议


系统为纯净新系统最佳,无需任何修改即可开箱即用


2. 完全部署版


2.1. 优点


  1. 完整的环境部署(MySQL-Client等组件)
  2. 自由的部署安排(有众多可选安装参数)
  3. 无惧Docker容器损坏(最小降低损失,可极速恢复)
  4. 单节点部署
  5. 支持多环境运行:虚拟机/云服务器,暂未适配物理机(后续升级版本会支持)


2.2. 缺点


  1. 安装过程时间较长(视网速和机器性能而定)
  2. 安装步骤多,代表可能故障率较高


2.3. 适用人群


学生、培训机构、体验/测试人员中的持续性教学受众(数据不易丢失)


2.4. 安装建议


该版本建议完完全全的纯净新系统,以此降低安装故障率


3. 存算分离版


该版本还在制作过程中,教程及相关文档后续推出,可视为完全部署版的Plus版本。


目的


该教程最后成果模块提供了各个版本下载地址,只需在服务器拉取不同版本shell脚本运行即可,在/opt/docker/doris/sbin目录下会有start_doris_docker.shstop_doris_docker.sh脚本支持一键启停,同时会在一键部署的过程中将两个脚本添加至环境变量,最大程度简化单节点测试部署和启停操作。


步骤过程可以忽略,除非有定制化的一键部署Docker集群的镜像集群制作需求,大可不必照着教程再来一遍,官方已提供了下载地址,无需重复劳动。


环境


环境一


  • 服务器:腾讯云 2C 4G 6M 一台
  • OS:CentOS 7.6
  • Docker-V:20.10.12
  • Doris-V:1.0 beta
  • MySQL-Client-V:5.7
  • FE-Num:1
  • BE-Num:3


环境二


  • 服务器:Win虚拟机 8C 44G 一台
  • OS:CentOS 7.6
  • Docker-V:20.10.12
  • Doris-V:1.0  beta
  • MySQL-Client-V:5.7
  • FE-Num:1
  • BE-Num:5


步骤


1. 安装Docker环境


  1. Docker 要求 CentOS 系统的内核版本高于3.10 ,首先查看系统内核版本是否满足
uname -r
  1. 使用 root 权限登录系统,确保 yum 包更新到最新
sudo yum update -y
  1. 假如安装过旧版本,先卸载旧版本
sudo yum remove docker  docker-common docker-selinux docker-engine
  1. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置yum源(加速yum下载速度)
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 查看所有仓库中所有docker版本,并选择特定版本安装,一般可直接安装最新版
yum list docker-ce --showduplicates | sort -r
  1. 安装docker
  • 安装最新稳定版本
sudo yum install docker-ce -y  #安装的是最新稳定版本,因为repo中默认只开启stable仓库
  • 安装指定版本
sudo yum install <FQPN> -y
# 例如:
sudo yum install docker-ce-20.10.11.ce -y
  1. 启动并加入开机启动
sudo systemctl start docker #启动docker
sudo systemctl enable docker #加入开机自启动
  1. 查看Version,验证是否安装成功
docker version
  1. 若出现Client和Server两部分内容,则证明安装成功


2. 容器创建及测试


在创建之前,请准备好已完成编译的FE/BE文件,此教程不再赘述编译过程。

  1. 拉取Doris编译镜像做测试
# 拉取
docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
  1. 创建Doris-Docker的文件(包括元数据文件夹)
mkdir -p /opt/docker/doris
  1. 将编译好的FE和BE拷贝至Docker文件群内
cp -r 编译好的Doris根目录/fe/ /opt/docker/doris/
cp -r 编译好的Doris根目录/be/ /opt/docker/doris/be-01
cp -r 编译好的Doris根目录/be/ /opt/docker/doris/be-02
cp -r 编译好的Doris根目录/be/ /opt/docker/doris/be-03
  1. 启动FE-Docker
docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe -v /opt/docker/doris/fe:/opt/doris/fe -v /opt/docker/doris/doris-meta:/opt/doris/doris-meta apache/incubator-doris:build-env-ldb-toolchain-latest
  1. 进入FE-Docker以及安装组件
# 进入fe-docker
docker exec -ti doris-fe /bin/bash
# 安装net-tools用于查看IP
yum install net-tools -y
  1. 修改FE配置
# 查看fe-docker的IPv4地址
ifconfig
# 修改配置文件
vim /opt/doris/fe/conf/fe.conf
# 取消priority_networks的注解,并根据Docker的网段进行配置
priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
  1. 切换Docker-JDK版本
# 切换Java版本为JDK1.8,该镜像默认为JDK11
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
# 校验是否切换版本成功
java -version
  1. 配置FE-Docker的环境变量
# 配置环境变量
vim /etc/profile.d/doris.sh
export DORIS_HOME=/opt/doris/fe/
export PATH=$PATH:$DORIS_HOME/bin
# 保存并source
source /etc/profile.d/doris.sh
  1. 启动Doris-FE
start_fe.sh --daemon
  1. 检查FE是否启动成功
  1. 检查是否启动成功,JPS命令下有没有PaloFe进程
  2. FE 进程启动后,会首先加载元数据,根据 FE 角色的不同,在日志中会看到 transfer from UNKNOWN to MASTER/FOLLOWER/OBSERVER。最终会看到 thrift server started 日志,并且可以通过 mysql 客户端连接到 FE,则表示 FE 启动成功。
  3. 也可以通过如下连接查看是否启动成功:
    http://fe_host:fe_http_port/api/bootstrap
    如果返回:
    {"status":"OK","msg":"Success"}
    则表示启动成功,其余情况,则可能存在问题。
  4. 外网环境访问http://fe_host:fe_http_port 查看是否可以访问WebUI界面,登录账号默认为root,密码为空

注:如果在 fe.log 中查看不到启动失败的信息,也许在 fe.out 中可以看到。

  1. 宿主机安装MySQL客户端
wget -c http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
  1. 连接FE并修改密码
mysql -h FE-Docer的IP -P 9030 -uroot
SET PASSWORD FOR 'root' = PASSWORD('your_password');
# 也可以创建新用户
CREATE USER 'test' IDENTIFIED BY 'test_passwd';
  1. 后续链接时需要使用如下格式
mysql -h FE_HOST -P9030 -uusername -ppassword
  1. 添加BE节点注册信息
ALTER SYSTEM ADD BACKEND "host:port";
# 其中 host 为 BE 所在节点 ip;port 为 be/conf/be.conf 中的 heartbeat_service_port,默认9050。
  1. 启动BE-Docker
docker run -it -p 9061:9060 -d --name=doris-be-01 -v /opt/docker/doris/be-01:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
docker run -it -p 9062:9060 -d --name=doris-be-02 -v /opt/docker/doris/be-02:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
docker run -it -p 9063:9060 -d --name=doris-be-03 -v /opt/docker/doris/be-03:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
  1. 进入BE-Docker以及安装组件
# 进入fe-docker,以01为例
docker exec -ti doris-be-01 /bin/bash
# 安装net-tools用于查看IP
yum install net-tools -y
  1. 修改BE配置
# 查看fe-docker的IPv4地址
ifconfig
# 修改配置文件
vim /opt/doris/be/conf/be.conf
# 取消priority_networks的注解,并根据Docker的网段进行配置
priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
  1. 配置BE-Docker的环境变量
# 配置环境变量
vim /etc/profile.d/doris.sh
export DORIS_HOME=/opt/doris/be/
export PATH=$PATH:$DORIS_HOME/bin
# 保存并source
source /etc/profile.d/doris.sh
  1. 启动Doris-BE
start_be.sh --daemon
  1. 检查BE是否启动成功
  1. BE 进程启动后,如果之前有数据,则可能有数分钟不等的数据索引加载时间。
  2. 如果是 BE 的第一次启动,或者该 BE 尚未加入任何集群,则 BE 日志会定期滚动 waiting to receive first heartbeat from frontend 字样。表示 BE 还未通过 FE 的心跳收到 Master 的地址,正在被动等待。这种错误日志,在 FE 中 ADD BACKEND 并发送心跳后,就会消失。如果在接到心跳后,又重复出现 master client, get client from cache failed.host: , port: 0, code: 7 字样,说明 FE 成功连接了 BE,但 BE 无法主动连接 FE。可能需要检查 BE 到 FE 的 rpc_port 的连通性。
  3. 如果 BE 已经被加入集群,日志中应该每隔 5 秒滚动来自 FE 的心跳日志:get heartbeat, host: xx.xx.xx.xx, port: 9020, cluster id: xxxxxx,表示心跳正常。
  4. 其次,日志中应该每隔 10 秒滚动 finish report task success. return code: 0 的字样,表示 BE 向 FE 的通信正常。
  5. 同时,如果有数据查询,应该能看到不停滚动的日志,并且有 execute time is xxx 日志,表示 BE 启动成功,并且查询正常。
  6. 也可以通过如下连接查看是否启动成功:
    http://be_host:be_http_port/api/health
    如果返回:
    {"status": "OK","msg": "To Be Added"}
    则表示启动成功,其余情况,则可能存在问题。
    注:如果在 be.INFO 中查看不到启动失败的信息,也许在 be.out 中可以看到。
  1. 测试连通性
# 登录FE-MySQL
mysql -h FE_HOST -P9030 -uusername -ppassword
# 执行命令查看BE运行情况。如一切正常,isAlive 列应为 true。
SHOW PROC '/backends';
  1. 若连通性测试成功,则循环完成其他BE节点的部署即可

3. 安装ETCD环境(若多节点Dokcer需配置|单节点可忽略)


  1. 配置Hosts文件映射


vim /etc/hosts
你本机内网IP地址 master
  1. 安装ETCD
# 安装ETCD
yum install -y etcd
# 重启ETCD
systemctl restart etcd
  1. 设置开机启动
systemctl enable etcd
  1. 修改ETCD配置
# 先查找本机的IP地址
 ifconfig
 # 备份原始配置文件
 cp /etc/etcd/etcd.conf /etc/etcd/etcd.conf.bak
 # 编辑ETCD的conf文件
 vim /etc/etcd/etcd.conf
 # 修改监听客户端地址为
ETCD_LISTEN_CLIENT_URLS="http://master:2379,http://127.0.0.1:2379,http://master:4001,http://127.0.0.1:4001"
 # 修改通知客户端地址为
ETCD_ADVERTISE_CLIENT_URLS="http://master:2379,http://master:4001"
 # 保存退出
  1. 设置ETCD网段
# Flannel使用Etcd进行配置,来保证多个Flannel实例之间的配置一致性,所以需要在etcd上进行如下配置('/atomic.io/network/config'这个key与上文/etc/sysconfig/flannel中的配置项FLANNEL_ETCD_PREFIX是相对应的,错误的话启动就会出错)
etcdctl mk /atomic.io/network/config '{"Network":"172.20.0.0/16","SubnetMin":"172.20.1.0","SubnetMax":"172.20.254.0"}'
  1. 重启ETCD
systemctl restart etcd
  1. 测试
# 查看ETCD进程是否存在
ps -ef|grep etcd
# 查看端口使用情况,因为ETCD默认TCP:2379端口通讯
lsof -i:2379
# 使用get命令查看是否设置成功
etcdctl get /atomic.io/network/config 
# 若出现以下信息,则代表设置成功
{"Network":"172.20.0.0/16","SubnetMin":"172.20.1.0","SubnetMax":"172.20.254.0"}
# 查看cluster-health
etcdctl -C http://master:4001 cluster-health
etcdctl -C http://master:2379 cluster-health
# 若出现如下信息,则代表成功
member 8e9e05c52164694d is healthy: got healthy result from http://你IP地址:2379(和4001)

4. 安装Flannel环境(若多节点Dokcer需配置|单节点可忽略)


  1. Yum安装Flannel
yum install -y flannel
  1. 配置Flannel
# 备份原始配置文件
cp /etc/sysconfig/flanneld /etc/sysconfig/flanneld.bak
# 编辑配置文件
vim /etc/sysconfig/flanneld
# 修改以下配置项
FLANNEL_ETCD_ENDPOINTS="http://master:2379"
  1. 设置开机自启
systemctl enable flanneld.service
  1. 启动Flannel
systemctl start flanneld.service
  1. 重启Docker
systemctl restart docker
  1. 测试
# 查看Flannel进程
ps -ef | grep flannel

5. 测试及远程连接


可使用Navicat等远端工具连接FE,地址为部署了FE服务的单机外网IP,端口为9030,如图所示


<img src="https://fop-1256218176.cos.ap-shanghai.myqcloud.com/md/2022-03-03-123903.png" alt="image-20220303203902837" style="zoom:33%;" />

6. SHELL脚本设计及开发


6.1. 完整部署版整体设计示意图

image.png

image-20220304121008665

6.2. 思路梳理


6.2.1 极速体验版(极速体验免除安装)


  1. 默认1FE 3BE安装
  2. Docker安装(可参照步骤1
  3. 拉取Docker镜像群
docker pull freeoneplus/doris-fe:1.0
docker pull freeoneplus/doris-be:1.0
  1. 创建FE-Docker容器


docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe freeoneplus/doris-fe:1.0
  1. 进入FE-Docker并获取IPv4地址


docker exec -it doris-fe /bin/bash
ifconfig
exit
docker exec -d doris-fe /bin/bash /opt/doris/fe/start_fe.sh --daemon
  1. 循环创建BE-Docker容器并启动BE
docker run -it -p 9061:9060 -d --name=doris-be-01 freeoneplus/doris-be:1.0
docker exec -d doris-be-01 /bin/bash /opt/doris/be/start_be.sh --daemon
docker run -it -p 9062:9060 -d --name=doris-be-02 freeoneplus/doris-be:1.0
docker exec -d doris-be-02 /bin/bash /opt/doris/be/start_be.sh --daemon
docker run -it -p 9063:9060 -d --name=doris-be-03 freeoneplus/doris-be:1.0
docker exec -d doris-be-03 /bin/bash /opt/doris/be/start_be.sh --daemon
  1. 提示用户进行BE注册
亲爱的用户,欢迎使用 Apache Doris-极简版-Docker集群!
接下来的文字请认真阅读:
1. 此版本集群为极简版单节点docker集群,所有数据均挂载在Docker集群内,请谨慎修改或删除容器!
2. 此版本预制注册三个BE节点至FE,但可能由于不同环境影响,预先注册的IP地址可能会出现错误,所以请仔细观察FE的预制IP地址:${FE-IP地址},若以上地址为172.17.0.2,则无需做任何修改即可直接使用,如果是其他数值,则需要进行链接FE进行BE注册
3. 您可以使用任意MySQL-Client或者MySQL工具连接FE-MySQL-Server
若宿主机(您的虚拟机/云服务器)有MySQL-Client,则需要执行以下命令链接FE-MySQL-Server
mysql -h ${FE-IP地址} -P 9030 -uroot -p123456
若您使用外网机器链接FE-MySQL-Server,则需要填入以下参数,您需要提前打开9030外网端口
url:您的服务器外网IP(虚拟机则视网络桥接方式)
port:9030
username:root
password:
然后执行以下命令清除已注册至FE的BE节点信息
`以下需要逻辑处理`
预设的三个BE地址为[172.17.0.3,172.17.0.4,172.17.0.5]
该地址应为FE-IP地址最后一位自增3,所以如果预设错误,需要给出删除语句和增添语句
比如FE-IP为 172.17.0.4,则需要给出删除[172.17.0.3,172.17.0.4]两个BE节点的语句
ALTER SYSTEM DECOMMISSION BACKEND "${FE-IP地址}:9050";
然后再给出新增的两个节点的IP[172.17.0.6,172.17.0.7]注册语句
ALTER SYSTEM ADD BACKEND "${FE-IP地址}:9050";
`以上需要逻辑处理`
感谢您的安装和使用Apache Doris!
感谢您为开源世界作出的一份贡献!
如有问题请打开地址:doris.freeoneplus.com
扫描二维码添加Apache Doris社区微信群获取答疑~
6.2.2 完整部署版(数据落盘无惧丢失)


  1. 校验脚本执行口令,防止误操作


  • 输出一段文字说明
  • 等待接收Doris这五个字母,成功则继续,未成功则终止


  1. 依次询问参数配置设置,接收参数,可参考的有:


  1. 是否默认配置安装(Y/N)
  2. BE数量(默认为3)
  3. root密码(默认为空)
  4. 操作员账户名称(默认无)
  5. 操作员账户密码(默认无)
  6. FE-Http-Port端口(默认8030)
  7. FE-MySQL-Cli-Port端口(默认9030)
  1. 创建宿主机资源目录并进入
mkdir -p /opt/docker/doris/
cd /opt/docker/doris/
  1. 拉取编译好的文件包至上述目录(当前版本为Apache Doris-1.0.0 bate测试版)
wget https://jiafeng2022.oss-cn-beijing.aliyuncs.com/doris-1.0.0-jdk8-20220301.tar.gz
  1. 解压文件包
tar -zxvf /opt/docker/doris/apache-doris-install.tar.gz
  1. 根据传参的BE数量循环复制BE目录,以默认数量为样例,命令执行为
cp -r /opt/docker/doris/be /opt/docker/doris/be-01
cp -r /opt/docker/doris/be /opt/docker/doris/be-02
cp -r /opt/docker/doris/be /opt/docker/doris/be-03
  1. 监测Docker是否安装
docker version
  1. 如果已安装则跳过,未安装则安装Docker
# 监测内核版本,若小于3.10则终止安装并通知失败,告知失败原因
uname -r
# 如果大于3.10则开始安装,依次执行以下命令
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce -y
sudo systemctl start docker 
sudo systemctl enable docker 
# 执行结束,监测执行是否都已成功
docker version
  1. 监测MySQL-Client是否已安装
mysql --version
  1. 如果已安装则跳过,未安装则安装MySQL-Client
mkdir -p /opt/software
cd /opt/software
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
  1. 拉取Doris编译镜像为基础环境镜像
docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
  1. 制作FE容器
  • 构建FE容器
docker run -it -p 8030:8030 -p 9030:9030 -d --name=doris-fe -v /opt/docker/doris/fe:/opt/doris/fe -v /opt/docker/doris/doris-meta:/opt/doris/doris-meta apache/incubator-doris:build-env-ldb-toolchain-latest
  • 进入容器
docker exec -ti doris-fe /bin/bash
  • 修改FE配置文件
vim /opt/doris/fe/conf/fe.conf
# 如FE两个对外端口都是默认值,则无需修改,若有改变,则改变该值
http_port = 8030
query_port = 9030
# 修改网段
priority_networks = 172.17.0.0/16
  • 切换JDK版本
# 切换Java版本为JDK1.8,该镜像默认为JDK11
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
  • 配置Doris环境变量
# 配置环境变量
vim /etc/profile.d/doris.sh
export DORIS_HOME=/opt/doris/fe/
export PATH=$PATH:$DORIS_HOME/bin
# 保存并source
source /etc/profile.d/doris.sh
  • 安装Net-Tools工具以便于查看IP地址
yum install net-tools -y
  • 使用命令查看该Docker的IPv4地址,并记录下来
ifconfig
  • 启动FE
start_fe.sh
# 最好执行命令以后再等待10秒左右
  • 退出该容器,返回宿主机
exit
  1. 用MySQL-Client连接Doris
mysql -h ${记录下的FE-Docker的IPv4地址} -P ${默认9030,如有改变则使用改变后的query-port} -uroot
  1. 注册BE至FE
ALTER SYSTEM ADD BACKEND "${FE-Docker的IPv4地址的第四位自增1}:9050";
# 这里需要说明的是,这命令执行时应该是根据BE的数量来循环的,比如BE为默认值3,记录下FE-Docker的地址为172.17.0.3,那么就应该循环添加 172.17.0.4:9050、172.17.0.5:9050、172.17.0.6:9050三条注册信息,以此类推
  1. 若有用户修改密码和注册了操作员账户,则执行以下命令
# 修改密码
SET PASSWORD FOR 'root' = PASSWORD('${填写的root密码}');
# 也可以创建新用户
CREATE USER '${填写的操作员账户}' IDENTIFIED BY '${填写的操作员密码}';
  1. 退出MySQL-Client
exit


  1. 制作BE容器,该处应该进入以BE数量为最大数值从1开始的循环中(以BE-01为例)假设BE的节点数量从1自增的变量为n,在以下示例中取值方式为${n}
  • 构建BE容器
# 标准格式为如下所示,其中三处被替换为${n}
docker run -it -p 906${n}:9060 -d --name=doris-be-0${n} -v /opt/docker/doris/be-0${n}:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
# 示例
docker run -it -p 9061:9060 -d --name=doris-be-01 -v /opt/docker/doris/be-01:/opt/doris/be apache/incubator-doris:build-env-ldb-toolchain-latest
  • 进入容器
# 这里需要注意,也是要根据循环进行取值
docker exec -ti doris-be-0${n} /bin/bash
  • 修改BE配置文件
vim /opt/doris/be/conf/be.conf
# 取消priority_networks的注解,并根据Docker的网段进行配置
priority_networks = 172.17.0.0/16 #这里要根据你Docker的IP确定
  • 配置BE环境变量
# 配置环境变量
vim /etc/profile.d/doris.sh
export DORIS_HOME=/opt/doris/be/
export PATH=$PATH:$DORIS_HOME/bin
# 保存并source
source /etc/profile.d/doris.sh
  • 启动BE
start_be.sh
  • 退出容器,开始下一次循环
exit
  1. 循环结束,清除临时解压缩及部分下载文件
rm -rf /opt/software/*.rpm
rm -rf /opt/docker/doris/apache-doris-install.tar.gz
  1. 制作启动、停止脚本(前提Docker容器是启动的,若未启动则报错)启动脚本需以start_doris_docker.sh命名,停止脚本以stop_doris_docker.sh命名两个脚本均写在/opt/docker/doris/sbin/目录下
  • 创建目录
mkdir -p /opt/docker/doris/sbin/
  • 启动脚本内容
  • 启动FE
docker exec -d doris-fe /bin/bash /opt/doris/fe/start_fe.sh --daemon
  • 循环启动BE
docker exec -d doris-be-0${n} /bin/bash /opt/doris/be/start_be.sh --daemon
  • 停止脚本内容
  • 循环停止BE
docker exec -d doris-be-0${n} /bin/bash /opt/doris/be/stop_be.sh --daemon
  • 停止FE
docker exec -d doris-fe /bin/bash /opt/doris/fe/stop_fe.sh --daemon
  • 配置环境变量
vim /etc/profile.d/doris-docker.sh
export DORIS_DOCKER_HOME=/opt/docker/doris/sbin
export PATH=$PATH:$DORIS_DOCKER_HOME
  • 刷新环境变量
source /etc/profile.d/doris-docker.sh

成果


极速体验版部署流程(此脚本部署将部署最新版本Apache Doris)

wget http://download.freeoneplus.com/doris_docker_fast_install.sh
sh ./doris_docker_fast_install.sh

完全部署版部署流程(此脚本部署将部署最新版本Apache Doris)

wget http://download.freeoneplus.com/doris_docker_whole_install.sh
sh ./doris_docker_whole_install.sh

假设需要指定版本的部署,请使用以下部署流程

# 极速体验版部署流程
wget http://download.freeoneplus.com/doris_docker_fast_install_${指定版本号}.sh
sh ./doris_docker_fast_install_${指定版本号}.sh
# 案例:极速体验版 Apache Doris 0.15版本
wget http://download.freeoneplus.com/doris_docker_fast_install_0.15.sh
sh ./doris_docker_fast_install_0.15.sh
# 完全部署版部署流程
wget http://download.freeoneplus.com/doris_docker_whole_install_${指定版本号}.sh
sh ./doris_docker_whole_install_${指定版本号}.sh
# 案例:完全部署版 Apache Doris 0.15版本
wget http://download.freeoneplus.com/doris_docker_whole_install_0.15.sh
sh ./doris_docker_whole_install_0.15.sh

当前支持版本对照表

Apache Doris version 是否支持
1.0.0-beta 支持
0.15 3月12日起支持
0.14及以下 不支持

测试


使用官网的SSB测试集进行测试

单节点规模:

CPU:8C

内存:44G

硬盘:400G

FE:1

BE:5

脚本名称 查询时间(ms)
q1.1 926ms
q1.2 461ms
q1.3 410ms
q2.1 13383ms
q2.2 12001ms
q2.3 11354ms



目录
相关文章
|
1月前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
1月前
|
关系型数据库 MySQL Java
Docker Compose详细教程(从入门到放弃)
Docker Compose详细教程(从入门到放弃)
187 0
|
1月前
|
Oracle 关系型数据库 数据库
|
7天前
|
Ubuntu Docker 索引
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
30 0
|
7天前
|
存储 Java 网络安全
ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
【4月更文挑战第10天】ZooKeeper【搭建 03】apache-zookeeper-3.6.0 伪集群版(一台服务器实现三个节点的ZooKeeper集群)
13 1
|
1月前
|
jenkins Java 持续交付
Docker搭建持续集成平台Jenkins最简教程
Jenkins 是一个广泛使用的开源持续集成工具,它能够自动化构建、测试和部署软件项目。在本文中,我们将使用 Docker 搭建一个基于 Jenkins 的持续集成平台。
116 2
|
1月前
|
存储 SQL 数据管理
阿里云数据库 SelectDB 内核 Apache Doris 如何基于自增列满足高效字典编码等典型场景需求|Deep Dive 系列
自增列的实现,使得 Apache Doris 可以在处理大规模时展示出更高的稳定性和可靠性。通过自增列,用户能够高效进行字典编码,显著提升了字符串精确去重以及查询的性能。使用自增列作为主键来存储明细数据,可以完美的解决明细数据更新的问题。同时,基于自增列,用户可以实现高效的分页机制,轻松应对深分页场景,有效过滤掉大量非必需数据,从而减轻数据库的负载压力,为用户带来了更加流畅和高效的数据处理体验。
|
1月前
|
Shell Linux Apache
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
【Shell 命令集合 网络通讯 】Linux 管理Apache HTTP服务器 apachectl命令 使用教程
162 1
|
1月前
|
SQL 数据可视化 Apache
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
阿里云数据库 SelectDB 内核 Doris 的 SQL 方言转换工具, Doris SQL Convertor 致力于提供高效、稳定的 SQL 迁移解决方案,满足用户多样化的业务需求。兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移。
阿里云数据库内核 Apache Doris 兼容 Presto、Trino、ClickHouse、Hive 等近十种 SQL 方言,助力业务平滑迁移
|
1月前
|
JavaScript Java jenkins
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
如何利用CentOS7+docker+jenkins+gitee部署springboot+vue前后端项目(保姆教程)
86 0