本文最后更新于 2024-02-29,文章内容可能已经过时。

部署前准备:

1.修改Cent1OS最大句柄数:

如果不修改这个句柄数大于等于60000,回头启动doris的be节点的时候就会报如下的错

如果报错:Please set the maximum number of open file descriptors to be 65536 using 'ulimit -n 65536'.

代表句柄数没有生效,需要临时设置或者重启电脑

编辑文件limits.conf:

vim /etc/security/limits.conf 

在文件最后添加下面几行信息(注意* 也要复制进去)
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

2.修改VMA(虚拟内存域)的数量:

编辑文件sysctl.conf:

vim /etc/sysctl.conf
在文件最后一行添加
vm.max_map_count=2000000

输入以下命令使其永久生效:

让他永久生效
sysctl -p
检查是否生效
sysctl -a|grep vm.max_map_count

3.时钟同步

Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。

安装时间同步软件ntpdate:

 yum install ntpdate -y

开始同步时间:

ntpdate ntp.sjtu.edu.cn

美国标准技术院时间服务器:time.nist.gov(192.43.244.18)
上海交通大学网络中心NTP服务器地址:ntp.sjtu.edu.cn(202.120.2.101)
中国国家授时中心服务器地址:cn.pool.ntp.org(210.72.145.44)

# 将当前时间写入bios,这样才能永久生效不变,不然reboot后还会恢复到原来的时间
clock -w 

注意事项:


1. FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个GB 不等。 
2. BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量* 3(3 副本)计算,然后再预留额外 40%的空间用作后台 compaction 以及一些中间数据的存放。 
3. 一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数 据,那么至少需要 3 台机器各部署一个 BE 实例(而不是 1 台机器部署 3 个 BE 实例)。多 个 FE 所在服务器的时钟必须保持一致(允许最多 5 秒的时钟偏差) 
4. 测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。 
5. 所有部署节点关闭 Swap。 
6. FE 节点数据至少为 1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。 
7. Follower 的数量必须为奇数,Observer 数量随意。 
8. 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。 
9. Broker 是用于访问外部数据源(如 HDFS)的进程。通常,在每台机器上部署一个 broker 实例即可。