Doris集群部署,一看就会

Doris简介

        Apache Doris是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即席查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建大屏看板、用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

使用场景

  • 报表分析
  • 实时查询
  • 面向用户或者客户的高并发报表分析
  • 日志检索分析

图片来源于官方

系统架构

        Doris 整体架构非常简单,只有两类进程:

  • Frontend(FE):主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
  • Backend(BE):主要负责数据存储、查询计划的执行。

都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。

查询引擎

        Doris 采用 MPP 的模型,节点间和节点内都并行执行,也支持多个大表的分布式 Shuffle Join,从而能够更好应对复杂查询。

环境准备

        本次使用三台虚拟机进行Doris集群部署,其中,FE节点与其中一个BE共享,机器规划如下,端口可全部使用默认端口

机器ip节点
192.168.245.100FE+BE
192.168.245.101BE
192.168.245.102BE

关闭swap及防火墙

关闭swap分区

        swap 分区是内核发现内存紧张时,会按照自己的策略将部分内存数据移动到配置的 swap 分区,由于内核策略不能充分了解应用的行为,会对数据库性能造成较大影响。

临时关闭,机器重启后会重新开启。

swapoff -a 

永久关闭,使用 Linux root 账户,注释掉 /etc/fstab 中的 swap 分区,然后重启即可彻底关闭 swap 分区。

# /etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>
tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0
/dev/sda1              /             ext4      defaults,noatime      0      1
# /dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2

关闭防火墙

多个进程之间需要通过配置端口通信

systemctl stop firewalld

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

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

修改虚拟内存区域数量

sysctl -w vm.max_map_count=3000000

安装软件

直接从官网下载Doris安装包,apache-doris-2.1.3-bin-x64.tar.gz下载后上传到Linux服务器

解压文件

tar -zxf apache-doris-2.1.3-bin-x64.tar.gz

#进入解压后的目录

cd apache-doris-2.1.3

#目录下有BE、FE两个目录,分别对应DorisFE及BE的软件

如下图

修改FE配置

修改日志路径,内存配置

cd fe/conf

vi fe.conf

#根据机器资源情况及java环境,修改内存配置

# doris日志路径
LOG_DIR = /data/doris/log/fe

# CMS JAVA OPTS 启动参数,默认 Java 最大堆内存为 8GB,在 JAVA_OPTS 参数中指定 -Xmx 选项可以调整 Java 最大堆内存。
JAVA_OPTS="-Dsun.security.krb5.debug=true -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx16384m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:/data/doris/log/fe/fe.gc.log.$CUR_DATE"

## 根据java版本修改,如果是高版本的就用对应版本的配置

# For jdk 9+, this JAVA_OPTS_FOR_JDK_9 will be used as default CMS JVM options
# JAVA_OPTS_FOR_JDK_9="-Dsun.security.krb5.debug=true -..

# For jdk 9+, this JAVA_OPTS_FOR_JDK_9 will be used as default G1 JVM options
#JAVA_OPTS_FOR_JDK_9="-Djavax.security.auth.useSubjectCredsOnly=false -Xss2048m ...

# For jdk 17+, this JAVA_OPTS will be used as default JVM options
#JAVA_OPTS_FOR_JDK_17="-Djavax.security.auth.useSubjectCredsOnly=false -...

启动FE

在FE根目录下执行

bin/start_fe.sh --daemon

查看启动日志,确保服务正常启动

tail -300f {DORIS_LOG}/fe.INFO

修改BE配置

进入be目录,修改配置文件,可以只改数据存储目录,确保对应的磁盘空间足够,其他配置可以使用默认

## 在 storage_root_path 中使用 medium 指定磁盘类型
## /home/disk1/doris,medium:HDD: 表示该目录存储冷数据;
## /home/disk2/doris,medium:SSD: 表示该目录存储热数据;

storage_root_path=/home/disk1/doris,medium:HDD;/home/disk2/doris,medium:SSD

启动BE

在BE根目录下执行

bin/start_be.sh --daemon

查看BE节点启动日志,确保服务正常启动

BE节点配置

将上述确认正常启动的BE目录分发到其他节点,我这里是101、102,使用同样的方式启动BE进程。可以使用 RSYNC进行同步。

检查节点

使用jps命令查看进程,确保FE及BE进程正常

配置集群

向FE添加BE节点

登录Doris的控制台(只能使用root账号登录)

ALTER SYSTEM ADD BACKEND "<be_ip_address>:<be_heartbeat_service_port>"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值