Doris部署

1. 安装要求

1.1 Linux操作系统版本

Linux系统 版本 文件系统
CentOS 7.1 及以上 ext4和xfs文件系统
Ubuntu 16.04 及以上 ext4和xfs文件系统

1.2 软件需求

软件 版本
Java 1.8 及以上
GCC 4.8.2 及以上

1.3 开发测试环境

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

1.4 常见端口

实例名称 端口名称 默认端口 通讯方向 说明
BE be_port 9060 FE --> BE BE 上 thrift server 的端口,
用于接收来自 FE 的请求
BE webserver_port 8040 BE <--> BE BE 上的 http server 的端口
BE heartbeat_service_port 9050 FE --> BE BE 上心跳服务端口(thrift),
用于接收来自 FE 的心跳
BE brpc_port 8060 FE <--> BE, BE <--> BE BE 上的 brpc 端口,
用于 BE 之间通讯
FE http_port 8030 FE <--> FE,用户 <--> FE FE 上的 http server 端口
FE rpc_port 9020 BE --> FE, FE <--> FE FE 上的 thrift server 端口,
每个fe的配置需要保持一致
FE query_port 9030 用户 <--> FE FE 上的 mysql server 端口
FE edit_log_port 9010 FE <--> FE FE 上的 bdbje 之间通信用的端口
Broker broker_ipc_port 8000 FE --> Broker, BE --> Broker Broker 上的 thrift server,
用于接收请求

2. 集群部署规划

hadoop102 hadoop103 hadoop104
FE(LEADER) FE(FLLOWER) FE(OBSERVER)
BE BE BE

生产环境建议将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

评论