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. 操作系统配置
- 设置系统最大打开文件句柄数
sh
sudo vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
- 设置最大虚拟块大小
sh
sudo sysctl -w vm.max_map_count=2000000
- 配置NTP服务 Doris的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
sh
sudo systemctl start ntpd.service
sudo systemctl enable ntpd.service
- 关闭swap分区
sh
swapoff -a
4. 下载安装包
访问官网:https://doris.apache.org/zh-CN/download,下载安装包: 下载后上传到服务器上面:
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. 解压安装
- 解压压缩包
sh
[jack@hadoop102 software]$ tar -xvf apache-doris-2.1.7-bin-x64-noavx2.tar.gz -C ../module/
- 重命名文件
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
- 修改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
- 启动FE
sh
[jack@hadoop102 fe]$ ./bin/start_fe.sh --daemon
- 检查是否启动 访问http://hadoop102:8030/login, 用户名输入root,密码为空:
可以看到BE目前还没有:
- 启动其他节点的FE
sh
[jack@hadoop103 fe]$ ./bin/start_fe.sh --daemon --helper hadoop102:9010
- 如果需要删除FE节点
sql
ALTER SYSTEM DROP FOLLOWER[OBSERVER] 'hadoop104:9010';
6.2 配置BE
- 修改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
- 使用MySQL客户端连接到FE
- 重置root密码
sql
SET password FOR 'root' =PASSWORD('123456')
root用户和admin用户的区别
root用户和admin用户都属于Doris安装完默认存在的2个账户。其中root用户拥有整个集群的超级权限,可以对集群完成各种管理操作,比如添加节点,去除节点。admin用户没有管理权限,是集群中的Superuser,拥有除集群管理相关以外的所有权限。建议只有在需要对集群进行运维管理超级权限时才使用root权限。
- 添加BE
sql
ALTER SYSTEM ADD backend 'hadoop102:9050';
ALTER SYSTEM ADD backend 'hadoop103:9050';
ALTER SYSTEM ADD backend 'hadoop104:9050';
- 刷新页面发现已经有了3台BE, 但是状态为false
- 如果需要删除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
目前可见启动了一台BE,可见Doris支持动态扩容的。