Skip to content

Doris部署

1. 安装要求

1.1 Linux操作系统版本

Linux系统版本文件系统
CentOS7.1 及以上ext4和xfs文件系统
Ubuntu16.04 及以上ext4和xfs文件系统

1.2 软件需求

软件版本
Java1.8 及以上
GCC4.8.2 及以上

1.3 开发测试环境

模块CPU内存磁盘网络实例数量
Frontend8核+8GB+SSD 或 SATA,10GB+ *千兆网卡1
Backend8核+16GB+SSD 或 SATA,50GB+ *千兆网卡1-3 *

1.4 常见端口

实例名称端口名称默认端口通讯方向说明
BEbe_port9060FE --> BEBE 上 thrift server 的端口,
用于接收来自 FE 的请求
BEwebserver_port8040BE <--> BEBE 上的 http server 的端口
BEheartbeat_service_port9050FE --> BEBE 上心跳服务端口(thrift),
用于接收来自 FE 的心跳
BEbrpc_port8060FE <--> BE, BE <--> BEBE 上的 brpc 端口,
用于 BE 之间通讯
FEhttp_port8030FE <--> FE,用户 <--> FEFE 上的 http server 端口
FErpc_port9020BE --> FE, FE <--> FEFE 上的 thrift server 端口,
每个fe的配置需要保持一致
FEquery_port9030用户 <--> FEFE 上的 mysql server 端口
FEedit_log_port9010FE <--> FEFE 上的 bdbje 之间通信用的端口
Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerBroker 上的 thrift server,
用于接收请求

2. 集群部署规划

hadoop102hadoop103hadoop104
FE(LEADER)FE(FLLOWER)FE(OBSERVER)
BEBEBE

生产环境建议将FE和BE分开

3. 操作系统配置

  1. 设置系统最大打开文件句柄数
sh
sudo vim /etc/security/limits.conf 
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
  1. 设置最大虚拟块大小
sh
sudo sysctl -w vm.max_map_count=2000000
  1. 配置NTP服务 Doris的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
sh
sudo systemctl start ntpd.service
sudo systemctl enable ntpd.service
  1. 关闭swap分区
sh
swapoff -a

4. 下载安装包

访问官网:https://doris.apache.org/zh-CN/download,下载安装包:Alt text 下载后上传到服务器上面:

sh
[jack@hadoop102 software]$ ll
总用量 5292028
-rw-rw-r--.  1 jack jack 2881770667 11月 24 20:24 apache-doris-2.1.7-bin-x64-noavx2.tar.gz

5. 解压安装

  1. 解压压缩包
sh
[jack@hadoop102 software]$ tar -xvf apache-doris-2.1.7-bin-x64-noavx2.tar.gz -C ../module/
  1. 重命名文件
sh
[jack@hadoop102 software]$ mv apache-doris-2.1.7-bin-x64-noavx2/ doris-2.1.7
[jack@hadoop102 module]$ cd doris-2.1.7/
[jack@hadoop102 doris-2.1.7]$ ll
总用量 12
drwxr-xr-x. 11 jack jack 4096 11月  6 15:48 be
drwxr-xr-x.  3 jack jack 4096 11月  6 15:48 extensions
drwxr-xr-x. 12 jack jack 4096 11月  6 15:48 fe

6. 配置文件

6.1 配置FE

  1. 修改fe/conf/fe.conf配置文件
sh
## 元数据保存位置
meta_dir = ${DORIS_HOME}/doris-meta
## 绑定网络地址,使用CIDR表示方法或者IP方法
priority_networks = 192.168.101.102/24
## 启用FQDN模式
enable_fqdn_mode=true
  1. 启动FE
sh
[jack@hadoop102 fe]$ ./bin/start_fe.sh --daemon
  1. 检查是否启动 访问http://hadoop102:8030/login, 用户名输入root,密码为空: Alt text 可以看到BE目前还没有:
    Alt text
  2. 启动其他节点的FE
sh
[jack@hadoop103 fe]$ ./bin/start_fe.sh --daemon --helper hadoop102:9010
  1. 如果需要删除FE节点
sql
ALTER SYSTEM DROP FOLLOWER[OBSERVER] 'hadoop104:9010';

6.2 配置BE

  1. 修改be/conf/be.conf配置文件
sh
## 数据存储目录,多个用分号隔开
storage_root_path = /opt/module/doris-2.1.7/be/storage
## 绑定网络地址,使用CIDR表示方法或者IP方法
priority_networks = 192.168.101.102/24
## 临时配置,Doris占用CPU和内存过高,否则启动不了或者频繁GC
mem_limit=50%
## 如果启动不了BE, 参考下面配置
# max_cumu_compaction_threads=1
# disable_mem_pools=true
# disable_storage_page_cache=true

6.3 添加BE

  1. 使用MySQL客户端连接到FE Alt text
  2. 重置root密码
sql
SET password FOR 'root' =PASSWORD('123456')

root用户和admin用户的区别

root用户和admin用户都属于Doris安装完默认存在的2个账户。其中root用户拥有整个集群的超级权限,可以对集群完成各种管理操作,比如添加节点,去除节点。admin用户没有管理权限,是集群中的Superuser,拥有除集群管理相关以外的所有权限。建议只有在需要对集群进行运维管理超级权限时才使用root权限。

  1. 添加BE
sql
ALTER SYSTEM ADD backend 'hadoop102:9050';
ALTER SYSTEM ADD backend 'hadoop103:9050';
ALTER SYSTEM ADD backend 'hadoop104:9050';
  1. 刷新页面发现已经有了3台BE, 但是状态为false Alt text
  2. 如果需要删除BE
sql
ALTER SYSTEM DROP backend 'hadoop104:9050';

删除的时候会有防误删提示,不建议使用DROP删除,因为在其节点上的数据会不能再恢复。推荐使用DECOMMISSON方式进行删除,Doris会尝试将该BE节点上的数据向其他节点转移,迁移完成后再删除该节点。

sql
ALTER SYSTEM DECOMMISSON backend 'hadoop104:9050';

6.4 启动BE

sh
[jack@hadoop102 be]$ ./bin/start_be.sh --daemon
[jack@hadoop103 be]$ ./bin/start_be.sh --daemon
[jack@hadoop104 be]$ ./bin/start_be.sh --daemon

Alt text 目前可见启动了一台BE,可见Doris支持动态扩容的。 Alt text