Apache Doris 2.x 版本【保姆级】安装+使用教程

Doris简介

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

Doris技术概述

Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程

  • Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。

  • Backend(BE),主要负责数据存储、查询计划的执行。

这两类进程都是可以横向扩展的,单集群可以支持到数百台机器,数十 PB 的存储容量。并且这两类进程通过一致性协议来保证服务的高可用和数据的高可靠。这种高度集成的架构设计极大的降低了一款分布式系统的运维成本。

使用接口方面,Doris 采用 MySQL 协议,高度兼容 MySQL 语法,支持标准 SQL,用户可以通过各类客户端工具来访问 Doris,并支持与 BI 工具的无缝对接。Doris 当前支持多种主流的 BI 产品,包括不限于 SmartBI、DataEase、FineBI、Tableau、Power BI、SuperSet 等,只要支持 MySQL 协议的 BI 工具,Doris 就可以作为数据源提供查询支持。

存储引擎方面,Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,同时减少大量非相关数据的扫描,从而更加有效利用 IO 和 CPU 资源。

Doris2.1.2版本于2024年4月份正式发布,此教程也根据Doris官方2.*的完整安装文档来撰写。

一:整体部署架构

节点规格角色安装目录
192.168.1.88 核 | 32 GBFE、BE /data/doris212
192.168.1.78 核 | 32 GBFE、BE/data/doris212
192.168.1.68 核 | 32 GBBE/data/doris212

服务器配置:

官方建议:通常建议 10 ~ 100 台左右的机器,来充分发挥 Doris 的性能(其中 3 台部署 FE(HA),剩余的部署 BE)在最少4台机器(一台 FE,三台 BE,其中一台 BE 混部一个 Observer FE 提供元数据备份),以及较低配置的情况下,依然可以平稳的运行 Doris。

 二:前期准备

tips1: 前期准备的示例当中, 有部分步骤需要重启服务器,可以等第二章节结束后一并重启,不需要每一步单独重启

tips2: 前期准备的示例当中, 此文章都是以FE这台节点进行的操作演示, 实际上需要看自己有多少台服务器就要执行多少台。比如我的机器有三台,我只演示了其中1.8这台,但是三台都需要执行前期准备工作。

2.1 服务器之间免密钥

这篇文章 3.11章节 详细介绍了SSH免密钥过程 【点击连接跳转】

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

通过修改文件句柄数来控制系统打开文件的数量。通常情况下默认为1024个文件, 通过 ulimit -n 查看目前最大文件句柄数

[root@testzt ~]#  ulimit -n
1024

2.2.1 临时修改

[root@testzt ~]# ulimit -n 65535

2.2.2 永久修改

查看 /etc/security/limits.conf 文件最后三行内容

[root@testzt ~]# tail -n 3 /etc/security/limits.conf

使用printf命令向文件中追加 root soft nofile 6553 和 root hard nofile 65535
[root@testzt ~]# printf "root soft nofile 65535\nroot hard nofile 65535\n" >> /etc/security/limits.conf

再次查看 /etc/security/limits.conf 文件最后三行内容,看是否追加成功
[root@testzt ~]# tail -n 3 /etc/security/limits.conf

查看 /etc/sysctl.conf 文件最后三行内容
[root@testzt ~]# tail -n 3 /etc/sysctl.conf

使用printf命令向文件中追加 fs.file-max=655350 和 vm.max_map_count=2000000
[root@testzt ~]# printf "fs.file-max=655350\nvm.max_map_count=2000000\n" >> /etc/sysctl.conf

再次查看 /etc/sysctl.conf 文件最后三行内容,看是否追加成功
[root@testzt ~]# tail -n 3 /etc/sysctl.conf

立即生效(可能还是需要重启)
[root@testzt ~]# sysctl -p

查看open files项 是否已被修改
[root@testzt ~]# ulimit -a

​​​​​​​

2.3 时钟同步

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

 这篇文章 3.9 章节 详细介绍了服务器时间不一致的矫正方法 【点击连接跳转】

2.4 Centos7 关闭防火墙

查看防火墙命令
systemctl status firewalld

开启防火墙命令
systemctl start firewalld

关闭防火墙命令
systemctl stop firewalld

禁用防火墙命令

systemctl disable firewalld
查看系统防火墙规则命令

iptables -L

清空系统防火墙规则命令

iptables -F

2.5 Contos7 Selinux 关闭

SeLinux有三种状模式,一个是宽容模式Enforcing,一种是Permissive,还有一种是关闭模式Disabled,其中前两种虽然一个会强制执行一个不会强制执行,但是都会限制部分系统资源访问权限。所以SeLinux最好设置为关闭状态 --Disabled

查看SeLinux状态

getenforce

临时关闭SeLinux

setenforce 0

永久关闭SeLinux

1、vim /etc/selinux/config,SELINUX=disabled,然后保存退出。

2、vim /etc/sysconfig/selinux,SELINUX=disabled,然后保存退出。

重启生效。

2.6 Contos7 Swappiness 关闭

swap指的是一个交换分区或文件,主要是在内存使用存在压力时,触发内存回收,这时可能会将部分内存的数据交换到swap空间。Linux交换分区会给Doris带来很严重的性能问题,需要在安装之前禁用交换分区,不关闭则会导致内存使用率过高,从而引发FE  Memory limit exceeded 后挂掉。

查看Swappiness版本号
swapon --version
修改/etc/fstab 文件,将有 swap 这一行注释

/dev/mapper/uniontechos-swap none                    swap    defaults        0 0
修改/etc/sysctl.conf 文件,新增 vm.swappiness = 0

vm.swappiness = 0
sysctl -p 使配置生效
sysctl -p 

重启生效

2.7 Centos7 修改 hugepage

设置开机启动文件执行权限

[root@testzt ~]# chmod +x /etc/rc.d/rc.local
[root@testzt ~]# 

向文件中追加指令,always表示在系统启动时候,自动分配内存,never表示有软件自己分配内存。
[root@testzt ~]# printf "echo never > /sys/kernel/mm/transparent_hugepage/enabled\necho never > /sys/kernel/mm/transparent_hugepage/defrag\n" >> /etc/rc.d/rc.local

将下述内容添加至文件结尾部分

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

2.8 Contos7 JDK 安装

这篇文章 3.10 章节 详细介绍了linux安装JDK的保姆教程 【点击连接跳转】

2.8 Apache Doris 2.0.1 选择安装包

官方下载地址:Download - Apache Doris

选择下载的时候有X64(avx2) 和 X64(no avx2) 两个选项, 在doris0.14.13.1 及之后的版本需要运行环境的 CPU 支持 avx2 指令,可以通过 cat /proc/cpuinfo 查看是否支持。如果不支持,请使用带 no-avx2 后缀的版本。avx2 指令会显著提升 bloomfilter 等数据结构的计算效率,从而影响索引过滤、runtime filter 等功能的效率。使用以下命令查看:

[root@testzt ~]# cat /proc/cpuinfo |grep flag

可以看到该服务器cpu是不支持avx2指令的,那就可以下载不支持avx2指令的已编译版本。如果cpu支持avx2指令,需要下载支持avx2指令的已编译版本。

三:Doirs安装

3.1 网络端口要求

Doris 各个实例直接通过网络进行通讯。以下表格展示了所有需要开放的端口,所以请确保端口不被其他服务占用。

  1. 当部署多个 FE 实例时,要保证 FE 的 http_port 配置相同。
  2. 部署前请确保各个端口在应有方向上的访问权限。
实例名称端口名称默认端口通讯方向说明
BEbe_port9060FE --> BEBE 上 thrift server 的端口,用于接收来自 FE 的请求
BEwebserver_port8040BE <--> BEBE 上的 http server 的端口
BEheartbeat_service_port9050FE --> BEBE 上心跳服务端口(thrift),用于接收来自 FE 的心跳
BEbrpc_port8060FE <--> BE, BE <--> BEBE 上的 brpc 端口,用于 BE 之间通讯
FEhttp_port8030FE <--> FE,用户 <--> FEFE 上的 http server 端口
FErpc_port9020BE --> FE, FE <--> FEFE 上的 thrift server 端口,每个fe的配置需要保持一致
FEquery_port9030用户 <--> FEFE 上的 mysql server 端口
FEarrow_flight_sql_port9040用户 <--> FEFE 上的 Arrow Flight SQL server 端口
FEedit_log_port9010FE <--> FEFE 上的 bdbje 之间通信用的端口
Brokerbroker_ipc_port8000FE --> Broker, BE --> BrokerBroker 上的 thrift server,用于接收请求

3.2 提前创建元数据文件夹和日志文件夹

因为Doris升级采用滚动升级方式, 将元数据放在单独的目录当中会避免后续升级时带来不必要的麻烦,比如doris212目录中有FE元数据目录doris_meta,后续doris123需要引用元数据目录,如果地址填为doris212/fe/doris_meta, 则doris212目录再也无法删除,所以这些特殊目录最好先创建好。

tips:doris集群服务器都需要执行

[root@testzt data]# cd /
[root@testzt /]# 
[root@testzt /]# mkdir -p /data/doris/doris_meta
[root@testzt /]# 
[root@testzt /]# mkdir -p /data/doris/fe_log
[root@testzt /]# 
[root@testzt /]# mkdir -p /data/doris/storage
[root@testzt /]# 
[root@testzt /]# mkdir -p /data/doris/be_log
[root@testzt /]# 
[root@testzt /]# mkdir -p /data/doris/jdbc_drivers
[root@testzt /]# 
[root@testzt /]# chmod -R 777 /data/doris
[root@testzt /]# 
[root@testzt /]# cd /data/doris
[root@testzt doris]# 
[root@testzt doris]# ls -lrt
总用量 20
drwxrwxrwx. 2 root root 4096 4月  24 21:30 doris_meta
drwxrwxrwx. 2 root root 4096 4月  24 21:30 fe_log
drwxrwxrwx. 2 root root 4096 4月  24 21:30 storage
drwxrwxrwx. 2 root root 4096 4月  24 21:30 be_log
drwxrwxrwx. 2 root root 4096 4月  24 21:30 jdbc_drivers
[root@testzt doris]# 
[root@testzt doris]# pwd
/data/doris
[root@testzt doris]#

3.3 将压缩包解压到指定文件夹并重命名

  • 将安装包 apache-doris-2.1.2-bin-x64-noavx2.tar.gz 解压到/data下为apache-doris-2.1.2-bin-x64-noavx2.tar.gz 目录

[root@testzt data]# tar -zxvf apache-doris-2.1.2-bin-x64-noavx2.tar.gz -C /data/

  •      将安装包重命名为 doris212

[root@testzt data]# mv apache-doris-2.1.2-bin-x64-noavx2 doris212

  •  进入doris212文件夹, 文件结构如下: 
  • 其中extensions文件夹内容是apache_hdfs_broker和audit_loader拓展的功能。

[root@testzt data]# cd doris212/
[root@testzt doris212]# ls -lrt
总用量 12
drwxr-xr-x. 12 root root 4096 4月   9 20:06   fe
drwxr-xr-x.  3 root root 4096  4月   9 20:06   extensions
drwxr-xr-x. 11 root root 4096 4月   9 20:06   be
[root@testzt doris212]# 
[root@testzt doris212]#

3.4 修改 fe.conf 配置文件

3.4.1:日志路径修改

这里的日志路径统一修改为3.2提前创建的文件夹中

LOG_DIR      = /data/doris/fe_log
sys_log_dir    = /data/doris/fe_log
audit_log_dir  = /data/doris/fe_log

3.4.2:JDBC路径修改

JDBC drivers目录可以和BE共用,修改为3.2提前创建的文件夹中

jdbc_drivers_dir = /data/doris/jdbc_drivers

3.4.3:JAVA堆内存修改

JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。 

-Xmx8192m

3.4.4:FE元数据路径修改

meta_dir 这里是FE 的元数据目录, 将默认的${DORIS_HOME}路径变更为刚才创建的自定义目录 /data/doris/ 当中, 官方强烈建议存放DORIS_METE的目录磁盘为SSD(高写入性能)和RAID(安全)。

meta_dir = /data/doris/doris_meta

3.4.5:priority_networks  如何确认自己的网卡

priority_networks 因为有多网卡的存在,或因为安装过 docker 等环境导致的虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过 priority_networks 配置项来强制指定正确的 IP。

priority_networks 是 FE 和 BE 都有的一个配置,配置项需写在 fe.conf 和 be.conf 中。该配置项用于在 FE 或 BE 启动时,告诉进程应该绑定哪个IP。示例如下:

priority_networks = 192.168.1.8/24

这是一种 CIDR (opens new window)的表示方法。FE 或 BE 会根据这个配置项来寻找匹配的IP,作为自己的 localIP。

priority_networks 配置中如何找到正确的IP地址,有一个简单的办法就是执行 hostname -i 看一下是否有多个网卡,如下所示:

[root@testzt ~]# hostname -i
fe80::f816:3eff:fe2f:e1b%enp4s3 192.168.1.8 172.17.0.1

可以看到我有两个网段信息,一个是192.168.1.8,一个是172.17.0.1。如果不确定哪一个是正确的IP地址,可以再次执行 ip a 查看网络CIDR表示法,如下所示:

 可以看到, 172.17.0.1 为 docker 环境导致的虚拟网卡,所以192.168.1.8为正确的IP地址。

3.4.6 fe.conf 配置文件如下:

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.#####################################################################
## The uppercase properties are read and exported by bin/start_fe.sh.
## To see all Frontend configurations,
## see fe/src/org/apache/doris/common/Config.java
#####################################################################CUR_DATE=`date +%Y%m%d-%H%M%S`# the output dir of stderr and stdout 
# DORIS 日志 输出目录
LOG_DIR = /data/doris/fe_log# CMS JAVA OPTS
# JAVA_OPTS="-Dsun.security.krb5.debug=true -Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -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:$DORIS_HOME/log/fe.gc.log.$CUR_DATE"# JAVA_OPTS 默认 java 最大堆内存为 4GB,建议生产环境调整至 8G 以上。
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -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:$DORIS_HOME/log/fe.gc.log.$CUR_DATE"# For jdk 9+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_9="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx8192m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$CUR_DATE:time"# INFO, WARN, ERROR, FATAL
sys_log_level = INFO# NORMAL, BRIEF, ASYNC
sys_log_mode = NORMAL# store metadata, must be created before start FE.
# Default value is ${DORIS_HOME}/doris-meta
# 这里是FE 的元数据目录, 将默认的${DORIS_HOME}路径变更为刚才创建的自定义目录 /data/doris/ 当中, 官方强烈建议存放DORIS_METE的目录磁盘为SSD和RAID。
meta_dir = /data/doris/doris_meta#jdbc_drivers 默认目录也需要修改
jdbc_drivers_dir = /data/doris/jdbc_drivershttp_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
arrow_flight_sql_port = -1# Choose one if there are more than one ip except loopback address. 
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
# Default value is empty.
#因为有多网卡的存在,或因为安装过 docker 等环境导致的虚拟网卡的存在,同一个主机可能存在多个不同的 ip。当前 Doris 并不能自动识别可用 IP。所以当遇到部署主机上有多个 IP 时,必须通过 priority_networks 配置项来强制指定正确的 IP
priority_networks = 192.168.1.8/24# Advanced configurations 
# log_roll_size_mb = 1024
sys_log_dir = /data/doris/fe_log
# sys_log_roll_num = 10
# sys_log_verbose_modules = org.apache.doris
audit_log_dir = /data/doris/fe_log
# audit_log_modules = slow_query, query
# audit_log_roll_num = 10
# meta_delay_toleration_second = 10
# qe_max_connection = 1024
# qe_query_timeout_second = 300
# qe_slow_log_ms = 5000

 其中非默认配置可以跳转到第六章节, 在其中会详细讲解配置项

3.5 修改be.conf 配置文件

3.5.1 日志修改路径

这里的日志路径统一修改为3.2提前创建的文件夹

PPROF_TMPDIR      = /data/doris/be_log/
sys_log_dir =  /data/doris/be_log

3.5.2 JAVA_HOME 修改路径

JAVA_HOME 路径为2.8 JDK安装的目录

JAVA_HOME =  /usr/local/java/jdk1.8.0_181/

3.5.3 priority_networks 填写

和 3.4.5 一致

priority_networks =  192.160.21.191/24

 3.5.4 BE 存储数据目录修改

storage_root_path 路径为 3.2 创建的storage路径
storage_root_path = /data/doris/storage

 3.5.5 jdbc 路径修改

JDBC drivers目录可以和BE共用,修改为3.2提前创建的文件夹中

jdbc_drivers_dir = /data/doris/jdbc_drivers

3.5.6 be.conf 配置文件如下

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.CUR_DATE=`date +%Y%m%d-%H%M%S`PPROF_TMPDIR="/data/doris/be_log/"JAVA_OPTS="-Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xloggc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives"# For jdk 9+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_9="-Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xlog:gc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives"# For jdk 17+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_17="-Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xlog:gc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives --add-opens=java.base/java.net=ALL-UNNAMED"# since 1.2, the JAVA_HOME need to be set to run BE process.
# 从Doris1.2版本后 BE运行需要JAVA的支持 所以这里配置刚才配置好的JDK目录
JAVA_HOME=/usr/java/jdk1.8.0_181# https://github.com/apache/doris/blob/master/docs/zh-CN/community/developer-guide/debug-tool.md#jemalloc-heap-profile
# https://jemalloc.net/jemalloc.3.html
JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:15000,dirty_decay_ms:15000,oversize_threshold:0,prof:false,lg_prof_interval:32,lg_prof_sample:19,prof_gdump:false,prof_accum:false,prof_leak:false,prof_final:false"
JEMALLOC_PROF_PRFIX=""# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO# ports for admin, web, heartbeat service 
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
arrow_flight_sql_port = -1# HTTPS configures
enable_https = false
# path of certificate in PEM format.
ssl_certificate_path = "$DORIS_HOME/conf/cert.pem"
# path of private key in PEM format.
ssl_private_key_path = "$DORIS_HOME/conf/key.pem"# Choose one if there are more than one ip except loopback address. 
# Note that there should at most one ip match this list.
# If no ip match this rule, will choose one randomly.
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
# Default value is empty.
priority_networks = 192.168.1.8/24;# data root path, separate by ';'
# You can specify the storage type for each root path, HDD (cold data) or SSD (hot data)
# eg:
# storage_root_path = /home/disk1/doris;/home/disk2/doris;/home/disk2/doris
# storage_root_path = /home/disk1/doris,medium:SSD;/home/disk2/doris,medium:SSD;/home/disk2/doris,medium:HDD
# /home/disk2/doris,medium:HDD(default)
# 
# you also can specify the properties by setting '<property>:<value>', separate by ','
# property 'medium' has a higher priority than the extension of path
#
# Default value is ${DORIS_HOME}/storage, you should create it by hand.
storage_root_path = /data/doris/storage# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
jdbc_drivers_dir =  /data/doris/jdbc_drivers# Advanced configurations
sys_log_dir =  /data/doris/be_log
# sys_log_roll_mode = SIZE-MB-1024
# sys_log_roll_num = 10
# sys_log_verbose_modules = *
# log_buffer_level = -1
# palo_cgroups # aws sdk log level
#    Off = 0,
#    Fatal = 1,
#    Error = 2,
#    Warn = 3,
#    Info = 4,
#    Debug = 5,
#    Trace = 6
# Default to turn off aws sdk log, because aws sdk errors that need to be cared will be output through Doris logs
aws_log_level=0
## If you are not running in aws cloud, you can disable EC2 metadata
AWS_EC2_METADATA_DISABLED=true

四:Doris 操作

4.1 启动FE 

前台启动

[root@testzt fe_log]# /data/doris212/fe/bin/start_fe.sh 

后台启动

[root@testzt fe_log]# /data/doris212/fe/bin/start_fe.sh  --daemon

后台停止

[root@testzt fe_log]# /data/doris212/fe/bin/start_fe.sh  --daemon

 启动之后可以使用jps查看JAVA进程,是否有 DorisFE, 如果有证明启动成功

或者可以根据ip:8030端口来访问WEB控制台界面,账号:root/admin 密码默认留空。

4.2 启动BE

前台启动

[root@host-192-160-21-191 /]# /data/doris201/be/bin/start_be.sh 

后台启动

[root@host-192-160-21-191 /]# /data/doris201/be/bin/start_be.sh --daemon

后台停止

[root@host-192-160-21-191 /]# /data/doris201/be/bin/stop_be.sh --daemon

4.3 同步操作

将Doris FE 和 BE 的配置文件 同步到其他节点并 修改里面的IP为当前节点IP

4.3.1:将doris212发送至其他两个节点

[root@testzt data]# scp -r doris212 root@192.168.1.7:/data/

[root@testzt data]# scp -r doris212 root@192.168.1.6:/data/

4.3.2: 修改三台主机的be配置文件

注: 配置文件中的日志目录以及数据存放目录一定要和第一台配置一样,3.2步骤的操作一定要每台服务器都执行

4.3.3: 修改1.7服务器的fe配置文件

4.3.4:启动1.7的FE 和 1.7、1.6的BE 角色。

4.3.3.1:启动1.7的FE

[root@localhost data]# /data/doris212/fe/bin/start_fe.sh --daemon

4.3.3.1:启动1.7、16的BE

1.7执行:

[root@localhost data]# /data/doris212/be/bin/start_be.sh --daemon

1.6执行:

[root@192 data]#  /data/doris212/be/bin/start_be.sh --daemon

4.4 安装MYSQL客户端

下载Mysql客户端rpm包到FE角色主机的:/data/doris目录中,下方链接自取

Mysql Client RPM包

4.5 添加FE、BE 角色

添加FE角色:

登录到通过MYSQL Drive登录到Doris的控制台:

[root@testzt doris]# mysql -h 192.168.1.8 -P 9030 -uroot

添加FE的FOLLOWER节点

mysql> ALTER SYSTEM ADD FOLLOWER "192.168.1.7:9010";

查看FE的状态 , 看Alive为true 是正常状态。

mysql> SHOW PROC '/frontends';

添加BE角色:

可以看到FE页面管理器的日志中一直在报错: System has no available disk capacity or no available BE nodes。是因为无法找到BE节点导致。

在Doris的控制台继续执行 添加1.8 1.7 1.6 所有BE的节点信息:

mysql> ALTER SYSTEM ADD backend "192.168.1.8:9050";

mysql> ALTER SYSTEM ADD backend "192.168.1.7:9050";

mysql> ALTER SYSTEM ADD backend "192.168.1.6:9050";

查看BE的状态, 看Alive为true 是正常状态。

mysql> SHOW PROC '/backends';

4.6修改密码

因为Doris启动后默认是没有密码的,这个时候需要进去修改密码。

修改密码之前的登陆方式:

[root@testzt doris]# mysql -h 192.168.1.8 -P 9030 -uroot

修改密码:

mysql> SET PASSWORD FOR 'root' = PASSWORD('自己设置的密码');

修改密码之后的登陆方式:

[root@testzt doris]#  mysql -h 192.168.1.8 -P 9030 -uroot -p

五: 报错记录

1: 启动BE报错: wrong cidr format. cidr_str=

问题原因及解决: 

在be.conf中priority_networks项末尾没有去掉分号; 导致。将分号去掉重启BE


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

问题原因及解决:

没有设置个进程可以拥有的最大内存映射区域数, 永久设置看该文章第2.2章节,临时设置执行: sysctl -w vm.max map count=2000000


3:启动BE报错:Please set the maximum number of open file descriptors larger than 60000, eg: 'ulimit -n 60000'.

问题原因及解决:

没有设置永久系统最大打开文件句柄数, 永久设置看该文章第2.2章节,临时设置执行:ulimit -n 60000

六:常规配置文件和命令:

6.1 FE.CONF 配置文件项

# 向量化
enable_vectorized_engine = true
#轻量表结构变更​​​​​​​
light_schema_change = true

#unique表是否使用merge on write实现。
enable_unique_key_merge_on_write = true
# 开启 PartitionCache 缓存
cache_enable_partition_mode = true
cache_enable_sql_mode = true

#每个BE能做多能同时处理多少个任务
max_routine_load_task_num_per_be = 10

#是否允许动态安装插件
plugin_enable = true

6.2 BE.CONF 配置文件项

#槽位数,默认值为5,每个BE能同时并行处理多少个roune load任务
routine_load_thread_pool_size = 10
#查询线程数,默认最小启动64个线程,后续查询请求动态创建线程,最大创建256个线程
fragment_pool_thread_num_max = 2048
#单节点上能够处理的查询请求上限
fragment_pool_queue_size = 4096
#该配置主要用来修改brpc中bthreads的数量. 该配置的默认值被设置为-1, 这意味着bthreads的数量将被设置为机器的cpu核数。
brpc_num_threads = 256
#可以开启Segment Compaction合并功能
set enable_segcompaction = true;
#用于配置合并的间隔。默认每生成10个segment文件将会进行一次 该参数一般设置为10-30,过大的值会增加segment compaction 的内存占用量。​​​​​​​
set segcompaction_batch_size =10;
是否开启列式compaction
enable_vertical_compaction=true

记录​​​​​​​Stream Load 的记录

enable_stream_load_record = true

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/317218.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入解析yolov5,为什么算法都是基于yolov5做改进的?(一)

YOLOv5简介 YOLOv5是一种单阶段目标检测算法&#xff0c;它在YOLOv4的基础上引入了多项改进&#xff0c;显著提升了检测的速度和精度。YOLOv5的设计哲学是简洁高效&#xff0c;它有四个版本&#xff1a;YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x&#xff0c;分别对应不同的模型大小…

【MySQL】MVCC的实现原理

【MySQL】MVCC的实现原理 MVCC简介事务的隔离级别读未提交&#xff08;Read Uncommitted&#xff09;概念分析 读已提交&#xff08;Read Committed&#xff09;概念分析结论 可重复读&#xff08;Repeatable Read&#xff09;概念分析结论 串行化&#xff08;Serializable &am…

WebSocket 深入浅出

WebSocket 深入浅出 1. WebSocket 是什么2. WebSocket 建立连接通信的过程3. WebSocket 和http的联系与区别4. WebSocket 的使用场景及限制 1. WebSocket 是什么 定义&#xff1a;WebSocket 是一种网络通信协议&#xff0c;它允许在单个TCP连接上进行全双工通信。是HTML5规范提…

Scala 多版本下载指南

Scala&#xff0c;这一功能丰富的编程语言&#xff0c;结合了面向对象和函数式编程的精华&#xff0c;为开发者提供了强大的工具来构建高效、可扩展的应用程序。随着Scala社区的不断壮大和技术的演进&#xff0c;多个版本的Scala被广泛应用于不同的项目与场景中。本文旨在为您提…

可重构柔性装配产线:AI边缘控制技术的崭新探索

在信息化和智能化浪潮的推动下&#xff0c;制造业正面临着前所未有的转型升级挑战。其中&#xff0c;可重构柔性装配产线以其独特的AI边缘控制技术&#xff0c;为制造业的智能化转型提供了新的解决方案。 可重构柔性装配产线是基于AI工业控制与决策平台打造的智能化生产系统。…

2024五一数学建模竞赛(五一赛)选题建议+初步分析

提示&#xff1a;DS C君认为的难度&#xff1a;B>A>C&#xff0c;开放度&#xff1a;AB<C。 以下为A-C题选题建议及初步分析&#xff1a; A题&#xff1a;钢板最优切割路径问题 l 难度评估&#xff1a;中等难度。涉及数学建模和优化算法&#xff0c;需要设计最优的…

STM32 工程移植 LVGL:一步一步完成

STM32 工程移植 LVGL&#xff1a;一步一步完成 LVGL&#xff0c;作为一款强大且灵活的开源图形库&#xff0c;专为嵌入式系统GUI设计而生&#xff0c;极大地简化了开发者在创建美观用户界面时的工作。作为一名初学者&#xff0c;小编正逐步深入探索LVGL的奥秘&#xff0c;并决…

3.C++动态内存管理(超全)

目录 1 .C/C 内存分布 2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 3. C内存管理方式 3.1 new/delete操作内置类型 3.2 new和delete操作自定义类型 3.3 operator new函数 3.4 定位new表达式(placement-new) &#xff08;了解&#xff09; 4. 常…

java-springmvc 01 补充 javaweb 三大组件Servlet,Filter、Listener(源码都是tomcat8.5项目中的)

01.JavaWeb三大组件指的是&#xff1a;Servlet、Filter、Listener,三者提供不同的功能 这三个在springmvc 运用很多 Servlet 01.Servlet接口&#xff1a; public interface Servlet {/*** 初始化方法* 实例化servlet之后&#xff0c;该方法仅调用一次 * init方法必须执行完…

SpringCloud(微服务介绍,远程调用RestTemplate,注册中心Nacos,负载均衡Ribbon,环境隔离,进程和线程的区别)【详解】

目录 一、微服务介绍 1. 系统架构的演变 1 单体架构 2 分布式服务 3 微服务 2. SpringCloud介绍 SpringCloud简介 SpringCloud版本 3. 小结 二、远程调用RestTemplate【理解】 1. 服务拆分 1 服务拆分原则 2 服务拆分示例 1) 创建父工程 2) 准备用户服务 1. 用户…

Kubernetes TDengine 系列|安装 TDengine 的 Grafana 插件|Grafana监控TDengine数据

为了让Grafana 能够监控到TDengine 数据&#xff0c;快速集成搭建数据监测报警系统&#xff0c;所以直接安装TDengine 插件。 目录 一、安装 TDengine 的 Grafana 插件1、下载TDengine grafana插件2、解压到指定目录3、配置未签名插件 二、配置数据源&#xff0c;简单查询TDen…

python的输入输出(爽文,备忘,查询,友好)

Python中的输入输出主要涉及到输入函数和输出函数。 输出函数&#xff1a;print() print() 函数用于将信息输出到屏幕上。它可以输出字符串、变量的值&#xff0c;以及其他各种数据类型。 name "Alice" age 30 print("姓名:", name, "年龄:&quo…

气象数据nc数据矢量化处理解析及可视化

气象数据可视化是将气象学领域中复杂的数据集转化为图形或图像的过程&#xff0c;以直观展示天气现象、气候模式、趋势和预报结果。气象数据的可视化技术广泛应用于科学研究、气象预报、航空、航海、农业生产、灾害预警系统、城市规划、公众服务等领域。以下是一些关键的气象数…

mac虚拟机软件哪个好 mac虚拟机怎么安装Windows 苹果Mac电脑上受欢迎的主流虚拟机PK Parallels Desktop和VM

什么是苹果虚拟机&#xff1f; 苹果虚拟机是一种软件工具&#xff0c;它允许在非苹果硬件上运行苹果操作系统&#xff08;如ios&#xff09;。通过使用虚拟机&#xff0c;您可以在Windows PC或Linux上体验和使用苹果的操作系统&#xff0c;而无需购买苹果硬件。 如何使用苹果虚…

【智能算法】海象优化算法(WO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2024年&#xff0c;M Han等人受到海象群体自然行为启发&#xff0c;提出了海象优化算法&#xff08;Walrus Optimizer, WO&#xff09;。 2.算法原理 2.1算法思想 WO灵感来自海象通过接收关键信号…

设计模式-01 设计模式单例模式

设计模式-01 设计模式单例模式 目录 设计模式-01 设计模式单例模式 1定义 2.内涵 3.使用示例 4.具体代码使用实践 5.注意事项 6.最佳实践 7.总结 1 定义 单例模式是一种设计模式&#xff0c;它确保一个类只能被实例化一次。它通过在类内部创建类的唯一实例并提供一个全…

飞书API(6):使用 pandas 处理数据并写入 MySQL 数据库

一、引入 上一篇了解了飞书 28 种数据类型通过接口读取到的数据结构&#xff0c;本文开始探讨如何将这些数据写入 MySQL 数据库。这个工作流的起点是从 API 获取到的一个完整的数据&#xff0c;终点是写入 MySQL 数据表&#xff0c;表结构和维格表结构类似。在过程中可以有不同…

完美解决AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

遇到这种错误通常是因为matplotlib的后端配置问题。在某些环境中&#xff0c;尤其是在某些特定的IDE或Jupyter Notebook环境中&#xff0c;可能会因为后端配置不正确而导致错误。错误信息提示 module backend_interagg has no attribute FigureCanvas 意味着当前matplotlib的后…

首页最新 多IP浏览器防关联:如何配置多个独立且稳定的IP地址?

在互联网时代&#xff0c;IP地址的重要性不言而喻。然而&#xff0c;IP关联问题却成为一项令人担忧的隐私和安全挑战。针对这个问题&#xff0c;多IP浏览器是一种解决方案&#xff0c;可以帮助用户单独配置多个独立且稳定的IP地址&#xff0c;有效地防止IP关联。 一、IP关联是…

【Python小练】求斐波那契数列第n个数

题目 输出斐波那契数列第n个数。 分析 首先我们要知道&#xff0c;斐波那契数列&#xff0c;这个数列从第三位开始等于前两个数的和&#xff0c;要知道数列第n个数&#xff08;n>2&#xff09;&#xff0c;就要知道其前两相的值&#xff0c;着就需要用到递归了。来看一下吧…