帮助中心

这里有最新的使用文档和教程

< 返回

Doris的单机部署与安装

2024-10-30 19:01 作者:31IDC 阅读量:124 所属分类:Linux系统

Doris的单机部署与安装

一、Doris概述

           Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。为了能够充分运用 MPP 架构的并发优势,以及 Doris 的高可用特性,我们建议 Doris 的部署遵循以下需求:

Linux 操作系统版本需求:

 

Linux 系统

版本

CentOS

7.1 及以上

Ubuntu

16.04 及以上

软件需求:

 

 

软件

版本

Java

1.8

GCC

4.8.2 及以上

时钟同步

 

Doris 的元数据要求时间精度要小于5000ms,所以所有集群所有机器要进行时钟同步,避免因为时钟问题引发的元数据不一致导致服务出现异常。

 

关闭交换分区(swap)

 

Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区

 

Linux文件系统

 

ext4和xfs文件系统均支持。


Doris整体架构如下图所示,Doris架构非常简单,只有两类进程
Frontend(FE):主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
Backend(BE):主要负责数据存储、查询计划的执行。

 

 

注1:
  1. FE 的磁盘空间主要用于存储元数据,包括日志和 image。通常从几百 MB 到几个 GB 不等。
  2. BE 的磁盘空间主要用于存放用户数据,总磁盘空间按用户总数据量 * 3(3副本)计算,然后再预留额外 40% 的空间用作后台 compaction 以及一些中间数据的存放。
  3. 一台机器上虽然可以部署多个 BE,但只建议部署一个实例,同时只能部署一个 FE。如果需要 3 副本数据,那么至少需要 3 台机器各部署一个 BE 实例(而不是1台机器部署3个BE实例)。多个FE所在服务器的时钟必须保持一致(允许最多5秒的时钟偏差)
  4. 测试环境也可以仅适用一个 BE 进行测试。
  5. 实际生产环境,BE 实例数量直接决定了整体查询延迟。
  6. 所有部署节点关闭 Swap。

 

注2:
  1. FE 节点的数量FE 角色分为 Follower 和 Observer,(Leader 为 Follower 组中选举出来的一种角色,以下统称 Follower)。
  2. FE 节点数据至少为1(1 个 Follower)。当部署 1 个 Follower 和 1 个 Observer 时,可以实现读高可用。当部署 3 个 Follower 时,可以实现读写高可用(HA)。
  3. Follower 的数量必须为奇数,Observer 数量随意。
  4. 根据以往经验,当集群可用性要求很高时(比如提供在线业务),可以部署 3 个 Follower 和 1-3 个 Observer。如果是离线业务,建议部署 1 个 Follower 和 1-3 个 Observer。

 

  • 通常我们建议 10 ~ 100 台左右的机器,来充分发挥 Doris 的性能(其中 3 台部署 FE(HA),剩余的部署 BE)
  • 当然,Doris的性能与节点数量及配置正相关。在最少4台机器(一台 FE,三台 BE,其中一台 BE 混部一个 Observer FE 提供元数据备份),以及较低配置的情况下,依然可以平稳的运行 Doris。
  • 如果 FE 和 BE 混部,需注意资源竞争问题,并保证元数据目录和数据目录分属不同磁盘。

 

二、安装部署

1、环境需要准备mysql、JDK以及Doris安装包。

     JDK官网下载地址Java Downloads | Oracle
     [root@node1 tmp]# wget https://download.oracle.com/otn/java/jdk/11.0.22+9/8662aac2120442c2a89b1ee9c67d7069/jdk-11.0.22_linux-x64_bin.tar.gz?AuthParam=1708332186_1be3fdf931328e94bc691cbf6fe71eb1


    [root@node1 tmp]# tar xf jdk-11.0.22_linux-x64_bin.tar.gz?AuthParam=1708332186_1be3fdf931328e94bc691cbf6fe71eb1 -C /usr/java/
    export JAVA_HOME=/usr/java/jdk-11.0.22/
    export PATH=$PATH:$JAVA_HOME/bin

    [root@node1 tmp]# source /etc/profile ---使配置生效
    [root@node1 tmp]# java --version ---查看Java版本,验证配置是否生效

2、下载安装包
    官网下载地址Download - Apache Doris
    [root@node1 tmp]# wget https://apache-doris-releases.oss-accelerate.aliyuncs.com/apache-doris-2.0.0-bin-x64.tar.gz

 

3、修改limits文件

    [root@node1 ~]# vi /etc/security/limits.conf

  • soft nofile 65536
  • hard nofile 65536
  • soft nproc 65536
  • hard nproc 65536

    [root@node1 ~]# vi /etc/sysctl.conf
    添加
    fs.file-max = 6553560
    vm.max_map_count = 2000000
    [root@node1 ~]# sysctl -p ---执行生效
    [root@node1 ~]# swapoff -a --关闭交换分区


4、解压安装包
    [root@node1 tmp]# mkdir -p /data/doris
    [root@node1 tmp]# tar xf apache-doris-2.0.0-bin-x64.tar.gz -C /data/doris/


5、配置启动FE
    [root@node1 tmp]# vi /data/doris/apache-doris-2.0.0-bin-x64/fe/conf/fe.conf
    priority_networks = 192.168.12.0/24
    meta_dir = /data/doris/doris-meta
    priority_networks 是 FE 和 BE 都有的一个配置,配置项需写在 fe.conf 和 be.conf 中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。
    注意:
    这里你可以不配置,默认是在你的Doris FE 安装目录下的 doris-meta,单独配置元数据目录,需要你提前创建好你指定的目录。
    生产环境强烈建议单独指定目录不要放在Doris安装目录下,最好是单独的磁盘(如果有SSD最好),测试开发环境可以使用默认配置。
    [root@node1 ~]# mkdir /data/doris/doris-meta ---创建元数据目录
    [root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/fe/bin/start_fe.sh --daemon ---后台启动FE
    前台启动(建议首次启动使用前台,便于查看运行信息,检测是否正常启动)


    [root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/fe/bin/start_fe.sh
    [root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/fe/bin/stop_fe.sh                ---停止FE节点


    检查 Doris 是否启动成功
    [root@node1 ~]# curl http://127.0.0.1:8030/api/bootstrap
    如果返回结果中带有 
    "msg":"success" 字样,则说明启动成功。


6、配置启动BE
    [root@node1 tmp]# vi /data/doris/apache-doris-2.0.0-bin-x64/be/conf/be.conf
    export JAVA_HOM=/usr/local/jdk/ ---配置 JAVA_HOME 环境变量
    priority_networks = 192.168.12.0/24
    storage_root_path = /data/doris/doris-storage/
     由于从 1.2 版本开始支持 Java UDF 函数,BE 依赖于 Java 环境。所以要预先配置 `JAVA_HOME` 环境变量,也可以在 `start_be.sh` 启动脚本第一行添加 `export JAVA_HOME=your_java_home_path` 来添加环境变量。


    [root@node1 tmp]# mkdir /data/doris/doris-storage/ ---创建BE 数据存储目录
    注意:

  •  默认目录在 BE安装目录的 storage 目录下。
  • BE 配置的存储目录必须先创建好

 

[root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/be/bin/start_be.sh --daemon ----后台启动BE

前台启动(建议首次启动使用前台,便于查看运行信息,检测是否正常启动)

[root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/be/bin/start_be.sh
[root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/be/bin/stop_be.sh --停止BE节点
问题1:在启动BE时报下面错误
[root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/be/bin/start_be.sh --daemon
Please set the maximum number of open file descriptors larger than 60000, eg: 'ulimit -n 60000'.
解决方法:
[root@node1 tmp]# ulimit -n 60000
问题2:在启动BE时报下面错误
[root@node1 tmp]# sh /data/doris/apache-doris-2.0.0-bin-x64/be/bin/start_be.sh --daemon
Please disable swap memory before installation, eg: 'swapoff -a'.
解决方法:
[root@node1 tmp]# swapoff -a

 

7、检查FE和BE是否启动成功
    [root@node1 tmp]# jps

 

8、web测试
    http:// fe_ip:8030 (账号 root 密码默认为空)
     http://192.168.12.100:8030/login

注意:

  1. 这里我们使用 Doris 内置的默认用户 root 进行登录,密码是空
  1. 这是一个 Doris 的管理界面,只能拥有管理权限的用户才能登录,普通用户不能登录。
 
9、连接测试,添加BE
    [root@node1 tmp]# mysql -uroot -P9030 -h 192.168.12.100
    mysql> show frontends\G;
    如果 IsMaster、Join 和 Alive 三列均为true,则表示节点正常
    注意:
  • 这里使用的 root 用户是 doris 内置的默认用户,也是超级管理员用户,具体的用户权限查看 权限管理
  • -P :这里是我们连接 Doris 的查询端口,默认端口是 9030,对应的是fe.conf里的 query_port
  • -h : 这里是我们连接的 FE IP地址,如果你的客户端和 FE 安装在同一个节点可以使用192.168.12.100。

 

 

10、添加BE到集群里面
    mysql> ALTER SYSTEM ADD BACKEND "192.168.12.100:9050";
    mysql> show backends\G;
    或
    mysql> show proc '/backends'\G;

31IDC - 12 年深耕海外 IDC 高端资源