Apache Doris集群安装
一、说明
二、主机以角色
主机名 | IP | 角色 | 配置 |
---|---|---|---|
doris01 | 192.168.1.101 | FE | 2C4G60G |
doris02 | 192.168.1.102 | BE | 2C4G200G |
doris03 | 192.168.1.103 | BE | 2C4G200G |
doris04 | 192.168.1.104 | BE | 2C4G200G |
安装包说明
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
之后的耗时过长,未能测出