Doris集群部署

本文详细介绍了Doris数据库的架构,包括FE前端、BE后端、MySQLClient接口和Broker服务。并提供了单机版和高可用环境的安装步骤,涉及系统要求、硬件配置和注意事项,帮助读者理解并部署Doris系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、Doris架构

1.FE(Frontend) 

2.BE(Backend)

 3.MySQL Client

 4.Broker

二、Doris安装

1.单机版安装

        1.1安装前准备

        1.1.1 linux操作版本需求

        1.1.2 软件需求

      1.1.3 测试环境硬件配置需求

    1.1.4生产环境配置需求

       1.2 操作系统环境要求

 1.3 注意事项

1.4 安装FE

        1.4.1解压doris

        1.4.2 创建数据文件

        1.4.3 配置FE

      1.4.4 配置BE

 2.doris高可用环境配置

2.1添加BE到FE

2.2添加broker

2.3添加FE

2.4 doris群起脚本


一、Doris架构

Doris的架构很简洁,只设FE (Frontend)前端进程、BE(Backend)后端进程两种角色、两个后台的服务进程,不依赖于外部组件,方便部署和运维,FE、BE都可在线性扩展。 

1.FE(Frontend) 

存储、维护集群元数据;负责接收、解析查询请求,规划查询计划,调度查询执行,返回查询结果。主要有三个角色:

  • Leader 和 Follower:主要是用来达到元数据的高可用,保证单节点宕机的情况下,元数据能够实时地在线恢复,而不影响整个服务。

  • Observer:用来扩展查询节点,同时起到元数据备份的作用。如果在发现集群压力非常大的情况下,需要去扩展整个查询的能力,那么可以加 observer 的节点。observer 不参与任何的写入,只参与读取。

2.BE(Backend)

负责物理数据的存储和计算;依据 FE 生成的物理计划,分布式地执行查询。数据的可靠性由 BE 保证,BE 会对整个数据存储多副本或者是三副本。副本数可根据需求动态调整。

 3.MySQL Client

Doris 借助 MySQL 协议,用户使用任意 MySQL 的 ODBC/JDBC 以及 MySQL 的客户端,都可以直接访问 Doris。

 4.Broker

一个独立的无状态进程。封装了文件系统接口,提供 Doris 读取远端存储系统中文件的能力,包括 HDFS,S3,BOS 等。

二、Doris安装

1.单机版安装
        1.1安装前准备
        1.1.1 linux操作版本需求
Linux系统

版本

Centos

7.1及以上

Ubuntu

16.04及以上

        1.1.2 软件需求
软件版本
java1.8及以上
GCC4.8.2及以上
      1.1.3 测试环境硬件配置需求
模块CPU内存磁盘网络实例数

Frontend

8核+

8GB

SSD或

SATA.

10GB+*

千兆网卡

1

Backend

8核+

16GB

SSD或

SATA.

50GB+*

千兆网卡

1-3*
    1.1.4生产环境配置需求
模块CPU内存磁盘网络实例数量(最低要求)
Frontend16核+64GB+

SSD或

SATA.

100GB+*

万兆网卡1-5*
Backend16核+64GB+

SSD或

SATA.

100GB+*

万兆网卡10-100*
       1.2 操作系统环境要求

        设置系统最大文件打开句柄数 ==>启动一个程序的时候,打开文件的数量就是句柄数

句柄数会影响be的启动

①启动be报:Please set the maximum number of open file descriptors to be 65536 using 'ulimit -n 65536'

打开文件:vim /etc/security/limits.con

* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536

②启动be报:Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=200000

打开文件: vim /etc/sysctl.conf

vm.max_map_count = 2000000

 1.3 注意事项

1.FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个GB 不等。

2.BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量* 3(3 副本)计算,然后再预留额外 40%的空间用作后台 compaction 以及一些中间数据的存放。

3.一台机器上可以部署多个 BE 实例,但是只能部署一个 FE。如果需要 3 副本数 据,那么至少需要 3 台机器各部署一个 BE 实例(而不是 1 台机器部署 3 个 BE 实例)。多 个 FE 所在服务器的时钟必须保持一致(允许最多 5 秒的时钟偏差)

4.测试环境也可以仅适用一个 BE 进行测试。实际生产环境,BE 实例数量直接决定了整体查询延迟。

5.所有部署节点关闭 Swap。

6.FE 节点数据至少为 1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。

7.Follower 的数量必须为奇数,Observer 数量随意。

8.根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。

9.Broker 是用于访问外部数据源(如 HDFS)的进程。通常,在每台机器上部署一个 broker 实例即可。

1.4 安装FE
        1.4.1解压doris

      (doris下载网址:https://doris.apache.org/download/)

         tar -zxvf apache-doris-2.0.0-bin-x64.tar.gz  -C /opt/module/

        1.4.2 创建数据文件

        mkdir /opt/module/doris/doris-meta(创建元数据文件夹)

        mkdir /opt/module/doris/doris-date (创建数据文件夹)

        1.4.3 配置FE

        vim /opt/module/doris/fe/conf/fe.conf

                        启动FE查看  进程是否成功

        

      1.4.4 配置BE

        vim /opt/module/doris/be/conf/be.conf

        

                                                                启动be

         

查看(doris)http 可视化页面http://192.168.10.102:18032/home

 doris客户端:mysql -h hadoop102 -P9030 -uroot(首次进入)设置密码set password for 'root' =password('mysql');

 2.doris高可用环境配置

 首先对我们的doris进行分发

配置高可用

2.1添加BE到FE

alter system add backend "hadoop102:9050";

alter system add backend "hadoop103:9050";

alter system add backend "hadoop104:9050";

查看BE状态:

show  proc  '/backends';

show  proc  '/backends'\G;

2.2添加broker

alter system add  broker broker_name "hadoop102:8000";

alter system add  broker broker_name "hadoop103:8000";

alter system add  broker broker_name "hadoop104:8000";

2.3添加FE

ALTER SYSTEM ADD FOLLOWER "hadoop103:9010";(添加FOLLOWER )

ALTER SYSTEM ADD OBSERVER "hadoop104:9010";(添加OBSERVER )

                                        配置完成后关闭重新启动

2.4 doris群起脚本
#!/bin/bash

# use-method: doris.sh start|stop|restart

fe_hosts=(hadoop102 hadoop103 hadoop104)
be_hosts=(hadoop102 hadoop103 hadoop104)
broker_hosts=(hadoop102 hadoop103 hadoop104)

case $1 in

"start"){

    for i in ${fe_hosts[*]}
    do
        echo "=================== start $i's fe service ================"
        ssh $i "source /etc/profile.d/my_env.sh ;cd /opt/module/doris;./fe/bin/start_fe.sh --daemon"
    done


    for i in ${be_hosts[*]}
    do
        echo "=================== start $i's be  service ================"
        ssh $i "source /etc/profile.d/my_env.sh ;cd /opt/module/doris;./be/bin/start_be.sh --daemon"   
    done
	
	
	    for i in ${broker_hosts[*]}
    do
        echo "=================== start $i's  broker service ================" 
       ssh $i "source /etc/profile.d/my_env.sh ;cd /opt/module/doris;./extensions/apache_hdfs_broker/bin/start_broker.sh --daemon"
    done

};;

"stop"){

    for i in ${broker_hosts[*]}
    do
        echo "=================== stop $i's broker service ================"
        ssh $i "/opt/module/doris/extensions/apache_hdfs_broker/bin/stop_broker.sh"
    done
	
	
	for i in ${be_hosts[*]}
    do
        echo "=================== stop $i's be service ================"
        ssh $i "/opt/module/doris/be/bin/stop_be.sh"
    done

    for i in ${fe_hosts[*]}
    do
        echo "=================== stop $i's fe service ================"
         ssh $i "/opt/module/doris/fe/bin/stop_fe.sh"
    done

};;

"status"){
    for i in ${fe_hosts[*]}
    do
        echo "=================== status $i's fe service ================"
         ssh $i "jps | grep dorisFE"
    done

    for i in ${be_hosts[*]}
    do
        echo "=================== status $i's be  service ================"
        ssh $i "ps -ef | grep doris_be | grep -v 'grep'"
    done

    for i in ${broker_hosts[*]}
    do
        echo "=================== status $i's broker service ================"
        ssh $i "jps | grep BrokerBootstrap | grep -v ‘JAVA_TOOL_OPTIONS’"
    done
};;

"restart")

 doris-cluster.sh stop

 sleep 2

 doris-cluster.sh start

;;

*)

 echo "Parameter ERROR!!! doris.sh start|stop|restart"

 ;;

esac

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值