Apache Doris集群安装

mtain 2023年01月12日 995次浏览

Apache Doris集群安装

一、说明

官网:首页 - Apache Doris

二、主机以角色

主机名IP角色配置
doris01192.168.1.101FE2C4G60G
doris02192.168.1.102BE2C4G200G
doris03192.168.1.103BE2C4G200G
doris04192.168.1.104BE2C4G200G

安装包说明

FE节点: apache-doris-fe-1.2.1-bin-x86_64.tar.xz,mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
BE节点: apache-doris-be-1.2.1-bin-x86_64-noavx2.tar.xz,apache-doris-dependencies-1.2.1-bin-x86_64.tar.xz

三、主机初始化

1. 设置系统最大打开文件句柄数

vi /etc/security/limits.conf 
* soft nofile 65536
* hard nofile 65536

2. 关闭swap交换分区

1. 关闭swap分区
swapoff -a

2. 取消挂载配置
vi /etc/fstab
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

3. 调整swappiness,永久生效
vi /etc/sysctl.conf
vm.swappiness=0

# 使配置生效
sysctl -p


验证,查看swap是否为0
free -m

3. 关闭防火墙和SELINUX(视情况而定)

systemctl stop firewalld.service && systemctl disable firewalld.service

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config


4. 安装jdk8

上传、解压、配置环境变量

四、部署一个FE节点

1. 配置

配置文件conf/fe.conf,使用默认,可根据实际情况修改

2. 启动FE

# 前台启动
/opt/apache-doris-fe-1.2.1-bin-x86_64/bin/start_fe.sh

# 后台启动
/opt/apache-doris-fe-1.2.1-bin-x86_64/bin/start_fe.sh --daemon

3. 安装mysql-client

tar zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
vi /etc/profile
export PATH=$PATH:/opt/mysql-5.7.22-linux-glibc2.12-x86_64/bin


source /etc/profile

说明

FE 分为 Leader,Follower 和 Observer 三种角色。

默认一个集群,只能有一个 Leader,可以有多个 Follower 和 Observer。

第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。

第一个启动的 FE 自动成为 Leader。在此基础上,可以添加若干 Follower 和 Observer。

添加 Follower 或 Observer。使用 mysql-client 连接到已启动的 FE,并执行:

ALTER SYSTEM ADD FOLLOWER "host:port";

ALTER SYSTEM ADD OBSERVER "host:port";

五、部署三个BE节点

1. 安装 Java UDF 函数

下载apache-doris-dependencies-1.2.1-bin-x86_64.tar.xz
解压后,放入apache-doris-be-1.2.1-bin-x86_64-noavx2/lib

2. 配置

配置文件conf/be.conf,可以自定义数据存储目录storage_root_path = $/storage

3.启动BE

# 先前台启动,看是否有报错
/opt/apache-doris-be-1.2.1-bin-x86_64-noavx2/bin/start_be.sh

# 后台启动
/opt/apache-doris-be-1.2.1-bin-x86_64-noavx2/bin/start_be.sh --daemon

六、在 FE 中添加所有 BE 节点

在FE中执行添加命令

mysql -h 127.0.0.1 -P 9030 -uroot

ALTER SYSTEM ADD BACKEND "192.168.1.102:9050";
ALTER SYSTEM ADD BACKEND "192.168.1.103:9050";
ALTER SYSTEM ADD BACKEND "192.168.1.104:9050";


MySQL客户端命令

# 查看节点状态
show proc '/backends';

# 设置密码
SET PASSWORD FOR 'root' = PASSWORD('PASSWORD');

# 查看FE节点
show frontends\G;

# 查看BE节点
show BACKENDS\G;

Restful API

# Web控制台
http://192.168.1.101:8030/home

# FE健康(访问FE节点)
http://192.168.1.101:8030/api/bootstrap

# BE健康(访问BE节点)
http://192.168.1.102:8040/api/health

七、访问使用

1. 创建数据库

create database example_db;

CREATE TABLE IF NOT EXISTS example_db.example_tbl
(
    `user_id` LARGEINT NOT NULL COMMENT "用户id",
    `date` DATE NOT NULL COMMENT "数据灌入日期时间",
    `city` VARCHAR(20) COMMENT "用户所在城市",
    `age` SMALLINT COMMENT "用户年龄",
    `sex` TINYINT COMMENT "用户性别",
    `last_visit_date` DATETIME REPLACE DEFAULT "1970-01-01 00:00:00" COMMENT "用户最后一次访问时间",
    `cost` BIGINT SUM DEFAULT "0" COMMENT "用户总消费",
    `max_dwell_time` INT MAX DEFAULT "0" COMMENT "用户最大停留时间",
    `min_dwell_time` INT MIN DEFAULT "99999" COMMENT "用户最小停留时间"
)
AGGREGATE KEY(`user_id`, `date`, `city`, `age`, `sex`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);

2. 连接

使用mysql驱动方式连接192.168.1.101:9030

八、性能测试

官网文档:TPC-H Benchmark - Apache Doris

步骤

git clone https://github.com/apache/doris.git
 
cd doris/tools/tpch-tools/
yum install -y unzip
yum install -y gcc-c++
# 构建工具
./bin/build-tpch-dbgen.sh
# 生成数据,约1.8G
./bin/gen-tpch-data.sh -s 1

# 创建数据表,可在conf/doris-cluster.conf数据库密码
./bin/create-tpch-tables.sh

# 导入数据
./bin/load-tpch-data.sh

# 运行测试
./bin/run-tpch-queries.sh

表数据量

SELECT table_name,table_rows FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'tpch' order by table_rows desc

+------------+------------+
| table_name | table_rows |
+------------+------------+
| lineitem   |    6001215 |
| orders     |    1500000 |
| partsupp   |     800000 |
| part       |     200000 |
| customer   |     150000 |
| supplier   |      10000 |
| nation     |         25 |
| region     |          5 |
| revenue0   |          0 |
+------------+------------+

Doris测试结果

q1: 752 ms
q2: 279 ms
q3: 368 ms
q4: 155 ms
q5: 615 ms
q6: 111 ms
q7: 317 ms
q8: 366 ms
q9: 575 ms
q10: 306 ms
q11: 241 ms
q12: 134 ms
q13: 872 ms
q14: 158 ms
q15: 263 ms
q16: 277 ms
q17: 157 ms
q18: 370 ms
q19: 124 ms
q20: 175 ms
q21: 698 ms
q22: 459 ms
Total cost: 7772 ms

MySQL单节点测试结果

q1: 23066 ms
q2: 391 ms
q3: 8338 ms
q4: 2226 ms
q5: 4519 ms
q6: 4216 ms
q7: 9437 ms
q8: 10891 ms
q9: 180105 ms
q10: 5165 ms
q11: 3023 ms
q12: 5312 ms
之后的耗时过长,未能测出