
1.前言
https://ask.selectdb.com/questions/D1A3/zi-zhi-doris2-0-4-jing-xiang-docker-bu-shu-yi-fe-he-yi-be-ji-qun-be-qi-dong-bu-hui-zi-dong-zhu-ce-dao-fe
2.doris是什么?
2.1简介
2.2介绍
2.3使用场景

报表分析
实时看板 (Dashboards)
面向企业内部分析师和管理者的报表
面向用户或者客户的高并发报表分析(Customer Facing Analytics)。比如面向网站主的站点分析、面向广告主的广告报表,并发通常要求成千上万的 QPS ,查询延时要求毫秒级响应。著名的电商公司京东在广告报表中使用 Apache Doris ,每天写入 100 亿行数据,查询并发 QPS 上万,99 分位的查询延时 150ms。
即席查询(Ad-hoc Query):面向分析师的自助分析,查询模式不固定,要求较高的吞吐。小米公司基于 Doris 构建了增长分析平台(Growing Analytics,GA),利用用户行为数据对业务进行增长分析,平均查询延时 10s,95 分位的查询延时 30s 以内,每天的 SQL 查询量为数万条。
统一数仓构建 :一个平台满足统一的数据仓库建设需求,简化繁琐的大数据软件栈。海底捞基于 Doris 构建的统一数仓,替换了原来由 Spark、Hive、Kudu、Hbase、Phoenix 组成的旧架构,架构大大简化。
数据湖联邦查询:通过外表的方式联邦分析位于 Hive、Iceberg、Hudi 中的数据,在避免数据拷贝的前提下,查询性能大幅提升。
2.4架构
Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程
Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
Backend(BE),主要负责数据存储、查询计划的执行。
这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。

Sorted Compound Key Index,可以最多指定三个列组成复合排序键,通过该索引,能够有效进行数据裁剪,从而能够更好支持高并发的报表场景 Min/Max :有效过滤数值类型的等值和范围查询 Bloom Filter :对高基数列的等值过滤裁剪非常有效 Invert Index :能够对任意字段实现快速检索
Aggregate Key 模型:相同 Key 的 Value 列合并,通过提前聚合大幅提升性能 Unique Key 模型:Key 唯一,相同 Key 的数据覆盖,实现行级别数据更新 Duplicate Key 模型:明细数据模型,满足事实表的明细存储


3.官网
https://doris.apache.org/zh-CN/docs/dev/get-starting/quick-start
4.构建部署
4.1 构建环境
4.2 doris2.0.4的fe和be镜像构建
https://doris.apache.org/download/
4.2.1 fe2.0.4镜像构建脚本
# 选择基础镜像FROM openjdk:8u342-jdk# 设置环境变量ENV JAVA_HOME="/usr/local/openjdk-8/"PATH="/opt/apache-doris/fe/bin:$PATH"# 下载软件至镜像内,可根据需要替换COPY ./resource/fe /opt/feRUN apt-get update &&install -y default-mysql-client &&clean &&mkdir /opt/apache-doris &&cd /opt &&mv ./fe/ /opt/apache-doris/RUN chmod 755 /opt/apache-doris/fe/bin/init_fe.shENTRYPOINT ["/bin/bash","/opt/apache-doris/fe/bin/init_fe.sh"]

且在fe的bin目录中放入了:

4.2.2 be2.0.4镜像构建
# 选择基础镜像FROM openjdk:8u342-jdk# 设置环境变量ENV JAVA_HOME="/usr/local/openjdk-8/"PATH="/opt/apache-doris/be/bin:$PATH"# 下载软件至镜像内,可根据需要替换COPY ./resource/be /opt/beRUN apt-get update &&install -y default-mysql-client &&clean &&mkdir /opt/apache-doris &&cd /opt &&mv ./be/ /opt/apache-doris/RUN chmod 755 /opt/apache-doris/be/bin/init_be.shENTRYPOINT ["/bin/bash","/opt/apache-doris/be/bin/init_be.sh"]
同fe一样在reource里放入:

be的bin下放入:

fe和be中的init脚本是从2.0.4的源码包中:
https://github.com/apache/doris/releases

4.2.3 启动脚本如下
docker network create --subnet=172.10.70.0/24 doris-networkdocker network rm doris-network 这个命令不执行,用于删除自定义的docker网卡,执行其它几个命令即可docker run --privileged -itd --name=fe --env FE_SERVERS="fe1:172.10.70.2:9010" --env FE_ID=1 -p 8030:8030 -p 9030:9030 -v D:\doris\fe\doris-meta:/opt/apache-doris/fe/doris-meta -v D:\doris\fe\log:/opt/apache-doris/fe/log -v D:\doris\fe\conf\fe.conf:/opt/apache-doris/fe/conf/fe.conf --network=doris-network --ip=172.10.70.2 apache-doris:2.0.4-fedocker run --privileged -itd --name=be --env FE_SERVERS="fe1:172.10.70.2:9010" --env BE_ADDR="172.10.70.3:9050" -p 8040:8040 -v D:\doris\be\storage:/opt/apache-doris/be/storage -v D:\doris\be\log:/opt/apache-doris/be/log -v D:\doris\be\conf\be.conf:/opt/apache-doris/be/conf/be.conf --network=doris-network --ip=172.10.70.3 apache-doris:2.0.4-be
4.2.4 fe挂载文件如下


4.2.5 be挂载文件如下


fe.conf和be.conf都是从容器中没有挂载启动起来,然后下载下来放到上面的挂载路径中的
4.2.6 fe启动日志

4.2.7 be启动日志

5.问题及解决
5.1解决办法
5.1.1 进入be容器启动be
5.1.2进入fe容器手动注册be
# 进入一台有mysql的服务器,端口9093,账号root,默认密码是空mysql -h 172.10.70.2 -P9030 -uroot# 注册beALTER SYSTEM ADD BACKEND "172.10.70.3:9050";# 查看be Alive属性如果是true就ok了show PROC '/backends';+-----------+-------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+| BackendId | Host | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | TabletNum | DataUsedCapacity | TrashUsedCapcacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | RemoteUsedCapacity | Tag | ErrMsg | Version | Status | HeartbeatFailureCounter | NodeRole |+-----------+-------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+| 10114 | 172.10.70.3 | 9050 | 9060 | 8040 | 8060 | 2024-02-28 01:10:51 | 2024-02-28 01:13:39 | true | false | 14 | 0.000 | 0.000 | 8.397 GB | 57.028 GB | 85.28 % | 85.28 % | 0.000 | {"location" : "default"} | | doris-2.0.4-rc06-003a815b63 | {"lastSuccessReportTabletsTime":"2024-02-28 01:13:03","lastStreamLoadTime":-1,"isQueryDisabled":false,"isLoadDisabled":false} | 0 | mix |+-----------+-------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+-----------+------------------+--------------------+---------------+---------------+---------+----------------+--------------------+--------------------------+--------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------------+-------------------------+----------+
6.doris后台

7.使用navicat客户端连接如下


8.本地构建的镜像推送到阿里云镜像仓库如下
registry.cn-hangzhou.aliyuncs.com/bigfei/zlf:apache-doris-2.0.4-fe
registry.cn-hangzhou.aliyuncs.com/bigfei/zlf:apache-doris-2.0.4-be
6.doris官方管理平台
https://docs.selectdb.com/docs/enterprise/cluster-manager-guide/deployment-guide/deployment-guide-23.x
7.总结
https://docs.starrocks.io/zh/docs/introduction/StarRocks_intro/