Ubuntu 22.04 安装 Doris 1.2.4.1 集群
背景
官方文档:https://doris.apache.org/zh-CN/docs/dev/install/standard-deployment
Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程
-
Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
-
Backend(BE),主要负责数据存储、查询计划的执行。
这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。

以下表格展示了所有需要的端口

实验环境配置
| IP | 角色 |
|---|---|
| 172.18.255.118 | FE |
| 172.18.255.119 | BE |
| 172.18.255.120 | BE,OB |
| 172.18.255.121 | BE |
部署 FE
# 安装 JDK
mkdir -p /data/software
cd /data/software
# 上传 jdk-8u131-linux-x64.tar.gz 到这里
tar zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
# 上传 apache-doris-1.2.4.1-bin-x86_64.tar.xz 到 /data/software
tar xf apache-doris-1.2.4.1-bin-x86_64.tar.xz
mkdir -p /usr/local/apache-doris-1.2.4.1/
cp -rf /data/software/apache-doris-1.2.4.1-bin-x86_64/fe /usr/local/apache-doris-1.2.4.1/
# 修改配置
vi /usr/local/apache-doris-1.2.4.1/fe/conf/fe.conf
meta_dir = /data/doris_fe/doris-meta
priority_networks = 172.18.255.118/20
# 在最前面加上 JAVA_HOME 环境变量
vi /usr/local/apache-doris-1.2.4.1/fe/bin/start_fe.sh
export JAVA_HOME=/usr/local/jdk1.8.0_131
# 创建 meta 目录
mkdir -p /data/doris_fe/doris-meta
# 创建运行 doris 的用户并授权
useradd -r -m -s /bin/bash doris
chown -R doris.doris /usr/local/apache-doris-1.2.4.1
chown -R doris.doris /data/doris_fe
# 启动方式一(使用脚本启动的进程)
su - doris
cd /usr/local/apache-doris-1.2.4.1/fe
bin/start_fe.sh --daemon
# 启动方式二 (使用 systemd 脚本)
cat >> /usr/lib/systemd/system/doris_fe.service << EOF
[Unit]
Description=Doris Broker server
After=network.target
[Service]
Type=simple
User=doris
Group=doris
WorkingDirectory=/usr/local/apache-doris-1.2.4.1/fe
ExecStart=/bin/bash ./bin/start_fe.sh
ExecStop=/bin/bash /bin/stop_fe.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable doris_fe.service
systemctl start doris_fe.service
systemctl status doris_fe.service
通过 mysql 客户端设置 FE root 密码, 默认为空
FE 开放的端口是 9030,注意防火墙状态
SET PASSWORD FOR 'root' = PASSWORD('HD@8888888');
部署 BE
这里以 172.18.255.119 为例子,其他2台类似操作即可
# 设置内核参数
sysctl -w vm.max_map_count=2000000
vi /etc/sysctl.conf
vm.max_map_count=2000000
# 安装 JDK
mkdir -p /data/software
cd /data/software
# 上传 jdk-8u131-linux-x64.tar.gz 到这里
tar zxvf jdk-8u131-linux-x64.tar.gz -C /usr/local/
# 上传 apache-doris-1.2.4.1-bin-x86_64.tar.xz 到 /data/software
tar xf apache-doris-1.2.4.1-bin-x86_64.tar.xz
mkdir -p /usr/local/apache-doris-1.2.4.1/
cp -rf /data/software/apache-doris-1.2.4.1-bin-x86_64/be /usr/local/apache-doris-1.2.4.1/
# 修改 be.conf 配置
vi /usr/local/apache-doris-1.2.4.1/be/conf/be.conf
priority_networks = 172.18.255.119/20 # 这个 iP 地址要改成对应的
storage_root_path = /data/doris_be
mkdir -p /data/doris_be
# 在最前面加上 JAVA_HOME 环境变量
vi /usr/local/apache-doris-1.2.4.1/be/bin/start_be.sh
export JAVA_HOME=/usr/local/jdk1.8.0_131
# 创建运行 doris 的用户并授权
useradd -r -m -s /bin/bash doris
chown -R doris.doris /usr/local/apache-doris-1.2.4.1
chown -R doris.doris /data/doris_be
通过 sql 客户端登录 FE
# 添加 BE (其他实例的时候要改成对应的IP地址,注意端口要开放)
ALTER SYSTEM ADD BACKEND "172.18.255.119:9050";
show proc '/backends';
启动
# 启动方式一(使用脚本启动的进程)
su - doris
cd /usr/local/apache-doris-1.2.4.1/be/
bin/start_be.sh --daemon
# 启动方式二 (使用 systemd 脚本)
cat >> /usr/lib/systemd/system/doris_be.service << EOF
[Unit]
Description=Doris Broker server
After=network.target
[Service]
Type=simple
User=doris
Group=doris
WorkingDirectory=/usr/local/apache-doris-1.2.4.1/be
ExecStart=/bin/bash ./bin/start_be.sh
ExecStop=/bin/bash /bin/stop_be.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable doris_be.service
systemctl start doris_be.service
systemctl status doris_be.service
添加 OB
在 172.18.255.120 上操作
参考 :https://doris.apache.org/zh-CN/docs/dev/admin-manual/cluster-management/elastic-expansion
cp -rf /data/software/apache-doris-1.2.4.1-bin-x86_64/fe /usr/local/apache-doris-1.2.4.1/
# 修改配置
vi /usr/local/apache-doris-1.2.4.1/fe/conf/fe.conf
meta_dir = /data/doris_fe/doris-meta
priority_networks = 172.18.255.120/20
# 在最前面加上 JAVA_HOME 环境变量
vi /usr/local/apache-doris-1.2.4.1/fe/bin/start_fe.sh
export JAVA_HOME=/usr/local/jdk1.8.0_131
mkdir /data/doris_fe/doris-meta -p
chown -R doris.doris /data/doris_fe/doris-meta
chown -R doris.doris /usr/local/apache-doris-1.2.4.1/fe
# 使用 doris 启动
su - doris
cd /usr/local/apache-doris-1.2.4.1/fe
./bin/start_fe.sh --helper 172.18.255.118:9010 --daemon
通过 sql 客户端登录 FE
# 添加 BE (其他实例的时候要改成对应的IP地址,注意端口要开放)
ALTER SYSTEM ADD OBSERVER "172.18.255.120:9010";
可以通过浏览器访问 http://FE的IP:8030/login

可以通过 http://BE的IP:8040/varz 查看已生效的配置
部署 Broker (可选)
Broker 以插件的形式,独立于 Doris 部署。如果需要从第三方存储系统导入数据,需要部署相应的 Broker,默认提供了读取 HDFS 、对象存储的 fs_broker。fs_broker 是无状态的,建议每一个 FE 和 BE 节点都部署一个 Broker。
cd /usr/local/apache-doris-1.2.4.1/
cp -rf /data/software/apache-doris-1.2.4.1-bin-x86_64/extensions/apache_hdfs_broker broker
cd /usr/local/apache-doris-1.2.4.1/broker/bin/
# 在最前面加上 JAVA_HOME 环境变量
vi start_broker.sh
export JAVA_HOME=/usr/local/jdk1.8.0_131
# 设置权限
cd /usr/local/apache-doris-1.2.4.1/
chown -R doris.doris broker/
# 启动方式一(使用脚本启动的进程)
su - doris
cd /usr/local/apache-doris-1.2.4.1/broker/
bin/start_broker.sh --daemon
# 启动方式二 (使用 systemd 脚本)
cat >> /usr/lib/systemd/system/doris_broker.service << EOF
[Unit]
Description=Doris Broker server
After=network.target
[Service]
Type=simple
User=doris
Group=doris
WorkingDirectory=/usr/local/apache-doris-1.2.4.1/broker
ExecStart=/bin/bash ./bin/start_broker.sh
ExecStop=/bin/bash /bin/stop_broker.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable doris_broker.service
systemctl start doris_broker.service
systemctl status doris_broker.service
通过 sql 客户端登录添加 broker
# IP+broker_ipc_port
ALTER SYSTEM ADD BROKER broker_name "172.18.255.118:8000","172.18.255.119:8000","172.18.255.120:8000","172.18.255.121:8000";
SHOW PROC "/brokers";

浙公网安备 33010602011771号