点击上方 蓝字 关注一臻数据👆
免费领取 一臻数据知识库 🔗 一起共建共进~
❝基于裸机手动搭建一套单FE/BE的Doris集群。
熟悉Doris的标准部署流程,体验极致简易的Doris部署。

一、环境信息
1.1 硬件信息
CU:8C16G 硬件规格最小 4C8G CPU架构:X86_64
1.2 软件信息
Java:8 3.0版本之前都是用Java8,>=3.0的版本用Java17 Doris:2.1.6 以当前最新的Stable版本为例
二、部署流程

2.1 安装包准备
2.1.1 Doris包
Doris包直接通过官方下载页面,选择对应的CPU架构和版本下载即可:
https://doris.apache.org/zh-CN/download/

wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.1.6-bin-x64.tar.gz

2.1.2 Java包
Doris 的所有进程都依赖 Java。
在 2.1(含)版本之前,请使用 Java 8,推荐版本: openjdk-8u352-b08-linux-x64。
从 3.0(含)版本之后,请使用 Java 17,推荐版本: jdk-17.0.10_linux-x64_bin.tar.gz。
2.2 Doris配置
2.2.1 Doris包解压
# 解压Doris包
tar -zxvf apache-doris-2.1.6-bin-x64.tar.gz
# 查看目录层级
tree -d -L 2 ./apache-doris-2.1.6-bin-x64

2.2.2 FE/BE配置
在正式启动fe/be之前,有几个需要注意的fe/conf/fe.conf和be/conf/be.conf配置项:
priority_networks
Doris 进程监听 IP 的 CIDR 格式(IP地址/前缀长度)表示的网段。如果部署的机器只有一个网段,可以不用配置。如果有两个或多个网段,务必做配置。
这个参数主要用于帮助系统选择正确的网卡 IP 作为自己的监听 IP。比如需要监听的 IP 为 192.168.0.1,则可以设置 priority_networks=192.168.0.0/24,系统会自动扫描机器上的所有 IP,只有匹配上 192.168.0.0/24 这个网段的才会去作为服务监听地址。这个参数也可以配置多个 CIDR 网段,比如 priority_networks = 10.10.0.0/16; 192.168.0.0/24。
JAVA_HOME
Java包对应的路径,配置到Java包根路径即可。
端口
FE和BE常用端口如下,如果出现端口抢占的情况,需要进行修改后再启动

2.3 Doris启动
2.3.1 FE启动
./fe/bin/start_fe.sh --daemon
2.3.2 BE启动
./be/bin/start_be.sh --daemon
2.3.3 BE注册
# 链接任一存活的 FE 节点
mysql -uroot -P<fe_query_port> -h<fe_ip_address>
# 注册 BE 节点
# be_heartbeat_service_port 可以从 be.conf 中查看,默认为 9050
# 在 MySQL Client 中执行 ALTER SYSTEM 语句
ALTER SYSTEM ADD BACKEND "<be_ip_address>:<be_heartbeat_service_port>"
# 查看BE状态
show backends;

三、测试验证
手动标准部署至此已完成,接下来进行一些兼容的测验:
# 创建测试数据库,在 MySQL Client 中执行 create database 语句
createdatabase testdb01;
# 创建测试表,在 MySQL Client 中执行 create table 语句,以单副本为例
CREATETABLE testdb01.table_hash
(
k1 TINYINT,
k2 DECIMAL(10, 2) DEFAULT"10.5",
k3 VARCHAR(10) COMMENT"string column",
k4 INTNOTNULLDEFAULT"1"COMMENT"int column"
)
COMMENT"my first table"
DISTRIBUTEDBYHASH(k1) BUCKETS 32
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
# 插入部分测试数据,在 MySQL Client 中执行 insert into 语句
# 生产环境不建议使用insert into value,如若需要可结合group commit特性使用
INSERTINTO testdb01.table_hash VALUES
(1, 10.1, 'AAA', 10),
(2, 10.2, 'BBB', 20),
(3, 10.3, 'CCC', 30);
# 验证插入数据正确性,在 MySQL Client 中执行 select 语句
SELECT * from testdb01.table_hash;

至次,Doris手动标准部署和验证完成,非常之简易,快来try 一 try吧!
四、常见FAQ
Q1 FE/BE启动时报:
The JAVA_HOME environment variable is not defined correctly


A1 没有配置正确JAVA_HOME导致,根据部署流程配置JAVA_HOME即可解决。
Q2 FE刚启动时日志一直报:
System has no available disk capacity or no available BE nodes

A2 由于集群中没有注册BE导致的告警,根据部署流程将正常BE注册到集群中即可解决。
Q3 BE启动时报:
Please set vm.max_map_count to be 2000000 under root using
'sysctl -w vm.max_map_count=2000000'

A3 修改虚拟内存区域至少 2000000,支持更多内存映射区域,提高系统的可扩展性,确保应用在高负载或高并发下能够继续正常工作。
sysctl -w vm.max_map_count=2000000
Q4 BE启动时报:
${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" 2>&1 < dev/null
A4 通常是如下原因导致
doris包和机器cpu架构不匹配:be/lib/doris_be -v 和 uname -a 看看型号是否匹配 系统参数或端口之类的有变动 max_map_count等必调参数被改动
下期,我们将一起探讨其它更有趣有用有价值的内容,敬请期待!

一臻数据致力于大数据AI时代的前沿内容分享,会持续分享更多有趣有用有态度的知识。同时也欢迎大家投稿,共建共进,帮助圈友们冲破认知壁垒,实现自我提升!
另外,整理了份《一臻数据知识库》,其中包含 Apache Doris和 Data+AI 的学习资料、学习课程、白皮书、研究报告、行业标准 和 实践指南 等内容,会持续更新,欢迎关注公众号,免费领取。
资料获取 🔗 欢迎扫描下方二维码图片 备注【Doris】免费领取❗️

往期推荐

点击下方蓝字关注一臻数据




