使用最新的 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 密码是改的这个,如果没有修改密码,就还是空的
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
BE
Broker