Doris集群部署

时间:2023-01-14 20:00:54

使用最新的 1.1.4 版本 Doris 进行部署

  云服务器环境: 三台服务器 hybrid01、hybrid02、hybrid03,Centos7.9,2C4G,40G 硬盘

  资源规划

hybrid01:FE(Leader)、BE、Broker

hybrid02:FE(Follower)、BE、Broker

hybrid03:FE(Follower/Observer)、BE、Broker

一、源码编译

使用安装包安装可以跳过,源码编译使用官方推荐的 Docker 方式进行编译

官方文档:​https://doris.apache.org/zh-CN/docs/install/source-install/compilation

#下载 Docker 镜像

docker pull apache/doris:build-env-ldb-toolchain-latest

#挂载宿主机运行(目录改成自己实际存放的位置)

docker run -it -v /acware/main/docker/doris/.m2:/root/.m2 -v /acware/main/docker/doris/doris-DORIS-1.1.4-release/:/root/doris-DORIS-1.1.4-release/ apache/doris:build-env-ldb-toolchain-latest

#运行完上面这条命令之后会直接进入容器内,以下命令是在容器内执行的,

#如果没有进入容器内,可以使用 docker ps -a 查看容器 ID,docker attach ID 进入容器

#下载源码包

wget --no-check-certificate ​https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.4-rc01/apache-doris-1.1.4-src.tar.gz

#解压源码包

tar -zxvf apache-doris-1.1.4-src.tar.gz

#编译之前需要确定使用的 jdk 版本,默认是 jdk 11,以后用到的是 8 版本,所以要改版本

alternatives --set java java-1.8.0-openjdk.x86_64

alternatives --set javac java-1.8.0-openjdk.x86_64

export JAVA_HOME=/usr/lib/jvm/java-1.8.0

#编译源码包,整个过程看网络情况而定,本次用了 31 分钟

sh apache-doris-1.1.4-src/build.sh

二、安装部署

如果不使用源码编译,可以直接下载安装包

FE:wget --no-check-certificate ​https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.4-rc01/apache-doris-fe-1.1.4-bin.tar.gz

BE:wget --no-check-certificate ​https://mirrors.tuna.tsinghua.edu.cn/apache/doris/1.1/1.1.4-rc01/apache-doris-be-1.1.4-bin-x86_64.tar.gz

如果使用的是 Docker 编译源码,需要将 output 拉到宿主机

直接 mv 到挂载的目录里面

在宿主机使用 docker cp 命令拉取

创建数据目录

mkdir -p /acware/metadata/doris/fe

mkdir -p /acware/metadata/doris/be

三台机器都要创建

设置系统最大打开文件句柄数,如果不设置 BE 可能会启动失败

vi /etc/security/limits.conf

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 65536
  • hard nproc 65536


1.FE 配置

fe.conf

根据实际情况配置 JAVA_OPTS

云服务器只有 4G 内存,这里改了堆大小

meta_dir = /acware/metadata/doris/fe

priority_networks = 192.168.1.101/24

这里每台机器都不一样,需要修改

节点分发 FE

scp -r fe hybrid:$PWD

新节点创建 data 目录,修改 priority_networks

启动 FE

bin/start_fe.sh --daemon

其他 Follower/Observer 节点,需要先添加 MySQL Client 后再执行

Follower:ALTER SYSTEM ADD FOLLOWER “hybrid02:9010”;

Observer:ALTER SYSTEM ADD OBSERVER “hybrid03:9010”;

启动命令 sh bin/start_fe.sh --helper hybrid01:9010 --daemon

2. MySQL Client

删除 mariadb

rpm -qa | grep mariadb

sudo rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

安装配置 MySQL Client

Docker 直接安装 MySQL,具体步骤另行搜索

进入容器

首次进入没有密码 mysql -uroot -h 192.168.1.101 -P9030

设置密码 SET PASSWORD FOR ‘root’ = PASSWORD(‘xxx’);

下次进入 mysql -uroot -h 192.168.1.101 -P9030 -p 输入密码

这里注意,后面使用 http:fe_host:8030 的时候 root 密码是改的这个,如果没有修改密码,就还是空的

Doris集群部署

3. 配置 BE

be.conf

storage_root_path = /acware/metadata/doris/be

priority_networks = 192.168.1.101/24

节点分发 BE

scp -r be hybrid:$PWD

新节点创建 data 目录,修改 priority_networks

FE 添加 BE

进入 MySQL Client

添加 alter system add backend “hybrid01:9050”;

所有 BE 都添加进去

启动 BE

bin/start_be.sh --daemon

4. 配置 Broker

进入 Docker 的源码目录 fs_brokers/apache_hdfs_broker/ (默认是 HDFS broker)

如果新进入的话需要注意 Java 版本配置

编译

sh build.sh

从 Docker 中拷贝出来 或 移到挂载目录

docker cp 522e19b589a5:/root/apache-doris-1.1.4-src/fs_brokers/apache_hdfs_broker/output /acware/main/program/ac_basis/doris-1.1.4/

分发节点

scp -r broker/ hybrid03:$PWD

启动

bin/start_broker.sh --daemon

添加

ALTER SYSTEM ADD BROKER broker_101_102_103 “hybrid01:8000”,“hybrid02:8000”,“hybrid03:8000”;

查看

show proc “/brokers”;

5. 扩容

FE 扩容和缩容

添加

ALTER SYSTEM ADD FOLLOWER/OBSERVER “ip:port”;

删除

ALTER SYSTEM DROP FOLLOWER/OBSERVER “fe_host:edit_log_port”;

注意

FE 的数量必须是奇数,建议最多部署 3个 组成高可用模式即可,通常一个 FE 节点可以应对 10-20 台 BE 节点,

处于高可用模式下,可以添加 Observer 来扩展 FE 的读服务能力

服务器时钟不对齐会出现问题

Error during the handshake between two nodes. Some validity or compatibility check failed, preventing further communication between the nodes. Environment is invalid and must be closed.

启动命令

指定 Leader

sh bin/start_fe.sh --helper hybrid01:9010 --daemon

BE 扩容和缩容

增加

ALTER SYSTEM ADD BACKEND “hybrid02:9050”;

删除

ALTER SYSTEM DROP BACKEND “hybrid02:9050”;

ALTER SYSTEM DECOMMISSION BACKEND “hybrid02:9050”;

BROKER 扩容和缩容

ALTER SYSTEM ADD BROKER broker_xx_xx “hybrid01:8000”;

ALTER SYSTEM DROP BROKER broker_xx_xx “hybrid01:8000”;

ALTER SYSTEM DROP ALL BROKER broker_xx_xx;

6. 状态

查看服务情况,命令在 MySQL Client 执行

FE:show proc ‘/frontends’;

BE:show proc ‘/backends’;

Broker: show proc “/brokers”;

​​​​http://fe_host:8030​​​​

admin/root 密码空或修改的 mysql 密码

FE

Doris集群部署

BE

Doris集群部署

Broker

Doris集群部署