1.Doris 简介
1.1doris是什么?
Apache Doris 是一个现代化的 MPP(Massively Parallel Processing,即大规模并行处理)
分析型(OLAP)数据库产品。
1.2OLAP和OLTP
OLAP:
用来做统计分析的数据库
存储数据量大 计算数据量大
不需要很快的查询,当然快点肯定更好 并发要求不高,高点肯定也没问题
可以不支持事务 主要是select 查询为主,对于增删改要求不高
OLTP:
业务系统使用数据库的场景
针对数据库有大量随机的增删改查
高并发
支持事务
响应快
1.3架构
doris架构角色:
fe:存储元数据 生成sql的执行计划
be:负责执行fe传过来的task计划,存储数据
客户端:用的是mysql的客户端,因为支持mysql的协议
1.4端口号
实例名称 | 端口名称 | 默认端口 | 通讯方向 | 说明 |
BE | be_port | 9060 | FE-->BE | BE 上 thrift server 的端口,用于接收来自 FE 的请求 |
BE | webserver_port | 8040 | BE<-->FE | BE 上的 http server 端口 |
BE | heartbeat_service_port | 9050 | FE-->BE | BE 上心跳服务端口,用于接收来自 FE 的心跳 |
BE | brpc_prot* | 8060 | FE<-->BE,BE<-->BE | BE 上的 brpc 端口,用于 BE 之间通信 |
FE | http_port | 8030 | FE<-->FE ,用户<--> FE | FE 上的 http_server 端口 |
FE | rpc_port | 9020 | BE-->FE ,FE<-->FE | FE 上 thirft server 端口 |
FE | query_port | 9030 | 用户<--> FE | FE 上的 mysql server 端口 |
FE | edit_log_port | 9010 | FE<-->FE | FE 上 bdbje 之间通信用的端口 |
Broker | broker_ipc_port | 8000 | FE-->BROKER,BE-->BROKER | Broker 上的 thrift server,用于接收请求 |
2.安装
2.1安装前准备
-
Linux 操作系统版本需求
-
软件需求
-
测试环境硬件配置需求
-
生产环境硬件配置需求
-
操作系统环境要求
2.1.1设置系统最大文件打开句柄数(三台机器都需要)
1.打开security文件
vi /etc/security/limits.conf
2.在文件最后添加下面几行信息(注意* 也要复制进去)* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 655363. ulimit -n 65536 临时生效
修改完文件后需要重新启动虚拟机reboot
重启永久生效
2.1.2设置文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量(三台机器都需要)
1.临时生效
sysctl -w vm.max_map_count=2000000
2.永久生效
vi /etc/sysctl.conf
3.在文件最后一行添加
vm.max_map_count=2000000
4.文件保存后输入
sysctl -p
5.检查是否生效
sysctl -a | grep vm.max_map_count
2.1.3时钟同步(三台机器都需要)
Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。
1.首先安装 ntpdate
# ntpdate是一个向互联网上的时间服务器进行时间同步的软件
[root@doit01 doris]# yum install ntpdate -y
2.然后开始三台机器自己同步时间
[root@doit01 ~]# ntpdate ntp.sjtu.edu.cn
3.# 将当前时间写入bios,这样才能永久生效不变,不然reboot后还会恢复到原来的时间
clock -w
4. 也可直接根据当前时间自己设置并同步给三台机器
eg: date -s "2024-01-02 15:42:30"
2.1.4关闭交换分区(可选)
交换分区是linux用来当做虚拟内存用的磁盘分区;
linux可以把一块磁盘分区当做内存来使用(虚拟内存、交换分区);
Linux使用交换分区会给Doris带来很严重的性能问题,建议在安装之前禁用交换分区;
1、查看 Linux 当前 Swap 分区
free -m[root@doitedu01 app]# free -m
total used free shared buff/cache available
Mem: 5840 997 4176 9 666 4604
Swap: 6015 0 60152、关闭 Swap 分区
[root@doitedu01 app]# swapoff -a
3.验证是否关闭成功
[root@doitedu01 app]# free -m
total used free shared buff/cache available
Mem: 5840 933 4235 9 671 4667
Swap: 0 0 0
2.2开始安装
2.2.1下载安装包
去官网下载源码包,官网地址:https://doris.apache.org,Doris更新版本还是很快的
2.2.2安装包上传到linux
1.上传压缩包
cd /opt/apps
rz -- 弹出窗口,选择文件
2.解压:tar -zxvf 文件名 / tar -zxvf 文件名-C -- 指定解压到指定的目录去
2.2.3修改 Fe Be配置文件
去修改conf目录里面的文件
fe:conf/fe.conf
vi /doris1.2.5/fe/conf/fe.conf
修改了两个地方:
1.元数据存储的路径(文件夹需要提前创建)meta_dir = /opt/apps/data/doris/fe/doris_meta
2.修改绑定 ip 地址(ifconfig 查询IP地址)
priority_networks = 192.168.101.0/24
be:conf/be.conf
vi/doris1.2.5/be/conf/be.conf
修改了两个地方:
1.数据的存储目录必须配置两个。两个文件需要创建,后缀一个是HDD 一个是SSD/opt/data/doris/be/storage.HDD
/opt/data/doris/be/storage.SSD
2.ip地址
priority_networks = 192.168.101.0/24
HDD:机械硬盘
SSD:固态硬盘
2.2.4配置环境变量
1./etc/profile
2.doris_fe
export DORIS_FE_HOME=/opt/app/doris1.1.4/fe
export PATH=$PATH:$DORIS_FE_HOME/bin3.doris_be
export DORIS_BE_HOME=/opt/app/doris1.1.4/be
export PATH=$PATH:$DORIS_BE_HOME/bin
2.2.5启动服务
daemon -- 放在后台运行
start_be.sh --daemon
start_fe.sh --daemon
2.2.6启动客户端
mysql -uroot(用户名) -p(密码) -P9030(端口号) -hdoit01(主机名)
3.doris集群的扩容
3.1查看节点
在MySQL窗口中输入
1.show proc '/backends' \G; --以文本的形式展示所有的be节点
2.show proc '/frontends' \G; --以文本的形式展示所有的fe节点be和fe本身都是两个单独的后台服务进程
需要将be向fe进行注册
alter system add backend 'linux01:9050';
如下文信息,目前就一台FE
*************************** 1. row ***************************
Name: 192.168.17.3_9010_1661510658077
IP: 192.168.17.3
HostName: doitedu01
EditLogPort: 9010
HttpPort: 8030
QueryPort: 9030
RpcPort: 9020
Role: FOLLOWER
IsMaster: true
ClusterId: 1133836578
Join: true
Alive: true
ReplayedJournalId: 2472
LastHeartbeat: 2022-08-26 13:07:47
IsHelper: true
ErrMsg:
Version: 1.1.1-rc03-2dbd70bf9
CurrentConnected: Yes
1 row in set (0.03 sec)
3.2需要将02和03两台机器装上fe和be
--修改配置文件
1.feip:192.168.101.0/24
元数据存储的路径要改吗?==》均要创建空的文件夹2.be
ip :192.168.101.0/24
数据存储的路径要不要改 ==》 均要创建空的文件夹
3.3启动02 和 03 上的fe和be,再向01上进行注册
alter system add backend 'doit02:9050';
alter system add backend 'doit03:9050';
alter system add follower 'doit03:9010';
alter system add follower 'doit02:9010';
3.4启动0203上的fe和be
第一次启动fe的时候,需要加上一个参数
start_fe.sh --daemon --helper linux01:9010
start_be.sh --daemon
be不需要,只有fe需要
*****************************************************完成****************************************************