❝基于裸机手动搭建一套单FE/BE的Doris集群。 熟悉Doris的标准部署流程,体验极致简易的Doris部署。
1.1 硬件信息
1.2 软件信息
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
Doris 的所有进程都依赖 Java。
在 2.1(含)版本之前,请使用 Java 8,推荐版本: openjdk-8u352-b08-linux-x64。
从 3.0(含)版本之后,请使用 Java 17,推荐版本: jdk-17.0.10_linux-x64_bin.tar.gz。
# 解压Doris包
tar -zxvf apache-doris-2.1.6-bin-x64.tar.gz
# 查看目录层级
tree -d -L 2 ./apache-doris-2.1.6-bin-x64
在正式启动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常用端口如下,如果出现端口抢占的情况,需要进行修改后再启动
./fe/bin/start_fe.sh --daemon
./be/bin/start_be.sh --daemon
# 链接任一存活的 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吧!
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 通常是如下原因导致
下期,我们将一起探讨其它更有趣有用有价值的内容,敬请期待!