前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Doris之旅基础篇|手动标准部署体验(三)

Doris之旅基础篇|手动标准部署体验(三)

作者头像
一臻数据
发布2025-01-15 12:35:09
发布2025-01-15 12:35:09
13500
代码可运行
举报
文章被收录于专栏:一臻数据一臻数据
运行总次数:0
代码可运行

基于裸机手动搭建一套单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/

代码语言:javascript
代码运行次数:0
复制
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包解压
代码语言:javascript
代码运行次数:0
复制
# 解压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启动
代码语言:javascript
代码运行次数:0
复制
./fe/bin/start_fe.sh --daemon
2.3.2 BE启动
代码语言:javascript
代码运行次数:0
复制
./be/bin/start_be.sh --daemon
2.3.3 BE注册
代码语言:javascript
代码运行次数:0
复制
# 链接任一存活的 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;

三、测试验证

手动标准部署至此已完成,接下来进行一些兼容的测验:

代码语言:javascript
代码运行次数:0
复制
# 创建测试数据库,在 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启动时报:

代码语言:javascript
代码运行次数:0
复制
The JAVA_HOME environment variable is not defined correctly

A1 没有配置正确JAVA_HOME导致,根据部署流程配置JAVA_HOME即可解决。

Q2 FE刚启动时日志一直报:

代码语言:javascript
代码运行次数:0
复制
System has no available disk capacity or no available BE nodes

A2 由于集群中没有注册BE导致的告警,根据部署流程将正常BE注册到集群中即可解决。

Q3 BE启动时报:

代码语言:javascript
代码运行次数:0
复制
Please set vm.max_map_count to be 2000000 under root using 
'sysctl -w vm.max_map_count=2000000'

A3 修改虚拟内存区域至少 2000000,支持更多内存映射区域,提高系统的可扩展性,确保应用在高负载或高并发下能够继续正常工作。

代码语言:javascript
代码运行次数:0
复制
sysctl -w vm.max_map_count=2000000

Q4 BE启动时报:

代码语言:javascript
代码运行次数:0
复制
${LIMIT:+${LIMIT}} "${DORIS_HOME}/lib/doris_be" "$@" 2>&1 < /dev/null

A4 通常是如下原因导致

  1. doris包和机器cpu架构不匹配:be/lib/doris_be -v 和 uname -a 看看型号是否匹配
  2. 系统参数或端口之类的有变动
  3. max_map_count等必调参数被改动

下期,我们将一起探讨其它更有趣有用有价值的内容,敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一臻数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、环境信息
  • 二、部署流程
    • 2.1 安装包准备
    • 2.2 Doris配置
  • 三、测试验证
  • 四、常见FAQ
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档