官方软硬件需求
概述
Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求:
Linux 操作系统版本需求
Linux 系统 | 版本 |
CentOS | 7.1 及以上 |
Ubuntu | 16.04 及以上 |
软件需求
软件 | 版本 |
Java | 1.8 及以上 |
GCC | 4.8.2 及以上 |
操作系统安装要求
设置系统最大打开文件句柄数
vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536
时钟同步
Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
关闭交换分区(swap)
Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区
Liunx文件系统
这里我们推荐使用 ext4/xfs 文件系统,在安装操作系统的时候,请选择 ext4/xfs 文件系统。
开发测试环境
模块 | CPU | 内存 | 磁盘 | 网络 | 实例数量 |
Frontend | 8核+ | 8GB+ | SSD 或 SATA,10GB+ * | 千兆网卡 | 1 |
Backend | 8核+ | 16GB+ | SSD 或 SATA,50GB+ * | 千兆网卡 | 1-3 * |
生产环境
模块 | CPU | 内存 | 磁盘 | 网络 | 实例数量(最低要求) |
Frontend | 16核+ | 64GB+ | SSD 或 RAID 卡,100GB+ * | 万兆网卡 | 1-5 * |
Backend | 16核+ | 64GB+ | SSD 或 SATA,100G+ * | 万兆网卡 | 10-100 * |
网络需求
Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要的端口
实例名称 | 端口名称 | 默认端口 | 通讯方向 | 说明 |
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,用于接收请求 |
注:
- 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
- 部署前请确保各个端口在应有方向上的访问权限。
下载安装
去官方地址下载 下载 - Apache Doris,be/fe/dependeces
我的服务器
192.168.139.168 192.168.139.169 192.168.139.170
安装gcc
apt install gcc
解压fe和be
xz -dk apache-doris-fe-1.2.1-bin-x86_64.tar.xz
tar -xvf apache-doris-fe-1.2.1-bin-x86_64.tar
然后把解压后的文件放到需要的目录下。
我的目录是/data/doris/be和 /data/doris/fe
配置 FE
-
- 配置文件为 conf/fe.conf。其中注意:meta_dir是元数据存放位置。默认值为 ${DORIS_HOME}/doris-meta,此目录已存在,但注意:生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置。
- fe.conf 中 JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
- 启动FE
bin/start_fe.sh --daemon
#我在root用户执行如上命令,无反应,切换回普通用户重新执行,成功了
su -
FE进程启动进入后台执行。日志默认存放在 log/ 目录下。如启动失败,可以通过查看 log/fe.log 或者 log/fe.out 查看错误信息。
查看是否启动成功
可以看log下的日志输出 或者 curl http://127.0.0.1:8030/api/bootstrap 返回:{"status":"OK","msg":"Success"} 或者在浏览器中打开 http://IP:8030 默认账户root,默认没有密码
BE 部署
- 拷贝 BE 部署文件到所有要部署 BE 的节点
将源码编译生成的 output 下的 be 文件夹拷贝到 BE 的节点的指定部署路径下。
注意:output/be/lib/debug_info/ 目录下为调试信息文件,文件较大,但实际运行不需要这些文件,可以不部署。
- 修改所有 BE 的配置
修改 be/conf/be.conf。主要是配置 storage_root_path:数据存放目录。默认在be/storage下,需要手动创建该目录。多个路径之间使用英文状态的分号 ; 分隔(最后一个目录后不要加 ;)。
可以通过路径区别存储目录的介质,HDD或SSD。可以添加容量限制在每个路径的末尾,通过英文状态逗号,隔开。如果用户不是SSD和HDD磁盘混合使用的情况,不需要按照如下示例一和示例二的配置方法配置,只需指定存储目录即可;也不需要修改FE的默认存储介质配置
示例1如下:
注意:如果是SSD磁盘要在目录后面加上.SSD,HDD磁盘在目录后面加.HDD
storage_root_path=/home/disk1/doris.HDD;/home/disk2/doris.SSD;/home/disk2/doris
说明
-
- /home/disk1/doris.HDD : 表示存储介质是HDD;
- /home/disk2/doris.SSD: 表示存储介质是SSD;
- /home/disk2/doris: 表示存储介质是HDD(默认)
示例2如下:
注意:不论HDD磁盘目录还是SSD磁盘目录,都无需添加后缀,storage_root_path参数里指定medium即可
storage_root_path=/home/disk1/doris,medium:hdd;/home/disk2/doris,medium:ssd
说明
-
- /home/disk1/doris,medium:hdd: 表示存储介质是HDD;
- /home/disk2/doris,medium:ssd: 表示存储介质是SSD;
- 安装 Java UDF 函数
SinceVersion 1.2.0安装Java UDF 函数因为从 1.2 版本开始支持 Java UDF 函数,需要从官网下载 Java UDF 函数的 JAR 包放到 BE 的 lib 目录下,否则可能会启动失败。
*官方提供的apache-doris-dependencies-1.2.1-bin-x86_64有,解压后找到java-udf-jar-with-dependencies.jar,复制到be的lib目录下即可。
- 在 FE 中添加所有 BE 节点
BE 节点需要先在 FE 中添加,才可加入集群。可以使用 mysql-client连接到 FE或者在web上管理
http://IP:8030
通过命令安装mysql-client
apt-get install mysql-client mysql -h fe_host -P query_port -uroot
设置密码
SET PASSWORD FOR 'root' = PASSWORD('000000');
其中 fe_host 为 FE 所在节点 ip;query_port 在 fe/conf/fe.conf 中的;默认使用 root 账户,无密码登录。
登录后,执行以下命令来添加每一个 BE:
ALTER SYSTEM ADD BACKEND "be_host:heartbeat-service_port";
其中 be_host 为 BE 所在节点 ip;heartbeat_service_port 在 be/conf/be.conf 中。
- 启动 BE
su - cd /data/doris/be bin/start_be.sh --daemon
BE 进程将启动并进入后台执行。日志默认存放在 be/log/ 目录下。如启动失败,可以通过查看 be/log/be.log 或者 be/log/be.out 查看错误信息。
- 查看BE状态
使用 mysql-client 连接到 FE,或者在http://IP:8030上执行 SHOW PROC '/backends'; 查看 BE 运行情况。如一切正常,isAlive 列应为 true。
- 查看状态启动状态
通过如下连接查看是否启动成功:
http://be_host:webserver_port/api/health
如果返回:
{"status": "OK","msg": "To Be Added"}
则表示启动成功,其余情况,则可能存在问题。
注:如果在 be.INFO 中查看不到启动失败的信息,也许在 be.out 中可以看到。
部署其它服务器
使用scp命令复制be所有文件:
scp -r be/ user1@192.168.139.168:/home/user1/file
然后把相应的文件复制到168 169相应的data/doris目录下,再对be进行如上的配置,加入到fe里即可完成集群的配置