基本概念

Frontend(FE):Doris 系统的元数据和调度节点。在导入流程中主要负责导入规划生成和导入任务的调度工作。

Backend(BE):Doris 系统的计算和存储节点。在导入流程中主要负责数据的 ETL 和存储。

FE 配置

以下配置属于 FE 的系统配置,可以通过修改 FE 的配置文件 fe.conf 来修改配置。

max_load_timeout_second 和 min_load_timeout_second

这两个配置含义为:最大的导入超时时间,最小的导入超时时间,以秒为单位。默认的最大超时时间为3天, 默认的最小超时时间为1秒。用户自定义的导入超时时间不可超过这个范围。该参数通用于所有的导入方式。

desired_max_waiting_jobs

在等待队列中的导入任务个数最大值,默认为100。当在 FE 中处于 PENDING 状态(也就是等待执行的)导入个数超过该值,新的导入请求则会被拒绝。

此配置仅对异步执行的导入有效,当异步执行的导入等待个数超过默认值,则后续的创建导入请求会被拒绝。

max_running_txn_num_per_db

这个配置的含义是说,每个 Database 中正在运行的导入最大个数(不区分导入类型,统一计数)。默认的最大导入并发为 100。当当前 Database 正在运行的导入个数超过最大值时,后续的导入不会被执行。如果是同步导入作业,则导入会被拒绝。如果是异步导入作业。则作业会在队列中等待。

BE 配置

以下配置属于 BE 的系统配置,可以通过修改 BE 的配置文件 be.conf 来修改配置。

push_write_mbytes_per_sec

BE 上单个 Tablet 的写入速度限制。默认是 10,即 10MB/s。通常 BE 对单个 Tablet 的最大写入速度,根据 Schema 以及系统的不同,大约在 10-30MB/s 之间。可以适当调整这个参数来控制导入速度。

write_buffer_size

导入数据在 BE 上会先写入一个 memtable,memtable 达到阈值后才会写回磁盘。默认大小是 100MB。过小的阈值可能导致 BE 上存在大量的小文件。可以适当提高这个阈值减少文件数量。但过大的阈值可能导致 RPC 超时,见下面的配置说明。

tablet_writer_rpc_timeout_sec

导入过程中,发送一个 Batch(1024行)的 RPC 超时时间。默认 600 秒。因为该 RPC 可能涉及多个 memtable 的写盘操作,所以可能会因为写盘导致 RPC 超时,可以适当调整这个超时时间来减少超时错误(如 send batch fail 错误)。同时,如果调大 write_buffer_size 配置,也需要适当调大这个参数。

streaming_load_rpc_max_alive_time_sec

在导入过程中,Doris 会为每一个 Tablet 开启一个 Writer,用于接收数据并写入。这个参数指定了 Writer 的等待超时时间。如果在这个时间内,Writer 没有收到任何数据,则 Writer 会被自动销毁。当系统处理速度较慢时,Writer 可能长时间接收不到下一批数据,导致导入报错:TabletWriter add batch with unknown id。此时可适当增大这个配置。默认为 600 秒。

load_process_max_memory_limit_bytes 和 load_process_max_memory_limit_percent

这两个参数,限制了单个 Backend 上,可用于导入任务的内存上限。分别是最大内存和最大内存百分比。load_process_max_memory_limit_percent 默认为 80,表示对 Backend 总内存限制的百分比(总内存限制 mem_limit 默认为 80%,表示对物理内存的百分比)。即假设物理内存为 M,则默认导入内存限制为 M * 80% * 80%。

load_process_max_memory_limit_bytes 默认为 100GB。系统会在两个参数中取较小者,作为最终的 Backend 导入内存使用上限。

label_keep_max_second

设置导入任务记录保留时间。已经完成的( FINISHED or CANCELLED )导入任务记录会保留在 Doris 系统中一段时间,时间由此参数决定。参数默认值时间为3天。该参数通用与所有类型的导入任务。

列映射

假设导入数据有为 1,2,3,表有 c1,c2,c3 三列,

如果数据直接导入表中可以使用如下语句 COLUMNS(c1,c2,c3)

此语句等价于 COLUMNS(tmp_c1,tmp_c2,tmp_c3,c1=tmp_c1,c2=tmp_c2,c3=tmp_c3)

如果想再导入数据时执行变换或者使用临时变量,则变换或者临时变量一定要按照使用的顺序指定,

例如 COLUMNS(tmp_c1,tmp_c2,tmp_c3, c1 = tmp_c1 +1, c2= c1+1, c3 =c2+1),

这样的语句等价于 COLUMNS(tmp_c1,tmp_c2,tmp_c3, c1 = tmp_c1 +1, c2= tmp_c1 +1+1, c3 =tmp_c1
+1+1+1) 在使用某个表达式时这个表达式一定要在前面定义,

例如如下语句则不合法 COLUMNS(tmp_c1,tmp_c2,tmp_c3, c1 = c1+1, c2 = temp + 1, temp = tmp_c1 +1, c3 =c2+1)

Doris 之Frontend(FE)和Backend(BE)配置相关推荐

  1. Doris安装(一)之docker编译+fe和be的配置与启动

    1.安装docker(使用一台机器用来编译就可以) ## 首先查看系统内核版本是否满足3.10版本 uname -r ##确保yum源是最新的 yum update -y ## 卸载yum的旧版本 y ...

  2. apache doris windows下fe开发环境搭建

    Apache Doris 代码仓库地址:apache/incubator-doris 欢迎大家关注加星 1.环境准备 JDK1.8+ , Intellj IDEA 1.linux上编译好fe前端代码, ...

  3. 开源指南|如何从零开始参与 Apache 顶级开源项目?(二)

    作者:苏奕嘉|SelectDB 生态研发工程师 写在开头 上一篇文章 如何从零开始参与 Apache 顶级开源项目?我们介绍了 Apache Doris 社区的工作机制.如何参与社区贡献以及如何完成第 ...

  4. android audio arch

    原址 ALSA System on Chip(ASoC) ASoC 驱动将一个audio子系统分成四个部分: Machine driver, Platform driver, CPU driver以及 ...

  5. Android音频架构

     主要分为四个层次: 1.最底层是硬件层: 2.在这之上的是驱动层,这一层一般codec芯片会给一个基本的驱动示例: 3.在这之上是Linux的框架层,ALSA, 4.这之上是安卓audio管理层: ...

  6. 如何打造一款极速数据湖分析引擎

    简介:本文向读者详细揭秘了数据湖分析引擎的关键技术,并通过 StarRocks 来帮助用户进一步理解系统的架构. 作者: 阿里云 EMR 开源大数据 OLAP 团队 StarRocks 社区数据湖分析 ...

  7. Doris报错there is no scanNode Backend

    背景 业务开发侧3.8号反应SparkStreaming流失扫Doris表(查询sql)报错 Caused by: org.apache.spark.SparkException: Job abort ...

  8. PostgreSQL Frontend/Backend protocol (通信协议)

    标签 PostgreSQL , protocol , proxy , 通信协议 背景 理解PostgreSQL的通信协议可以更好的开发类似SQL代理,SQL中间件,SQL防火墙,连接池等软件. 学习资 ...

  9. doris同步作业配置参数修改和注意事项

    创建同步作业 创建数据同步作业的的详细语法可以连接到 Doris 后,执行 HELP CREATE SYNC JOB; 查看语法帮助.这里主要详细介绍,创建作业时的注意事项. job_name job ...

最新文章

  1. openfalcon 组件监控_运维监控系统之Open-Falcon
  2. C++ Builder创建和调用dll中的资源
  3. gridreport5.6如何设置打印3次_米家照片打印机1S:手机里的美好回忆不用网络仅一分钟即可留住...
  4. Intel Realsense D435运行报错 RuntimeError: Camera not connected! dev.hardware_reset()函数需加睡眠sleep()
  5. 台式计算机的配置清单(硬件和软件),台式电脑的配置清单和产品推荐
  6. 彻底解决 libhdf5_hl.so.10: cannot open shared object file: No such file or directory
  7. r语言 array c函数,R语言 数组
  8. Kotlin入门(16)容器的遍历方式
  9. python没有库_python-嵌入没有标准库的Python3
  10. hwui opengl VS skia opengl VS skia vulkan?
  11. 车牌检测和识别(转)
  12. Faster RCNN (pytorch)(转载)
  13. 手机号归属地查询实例
  14. 用逻辑门设计一个CPU
  15. 索引,用户授权,备份
  16. 2022年7月国产数据库大事记-墨天轮
  17. elasticsearch 基础 —— Jion父子关系
  18. 比尔沃服务器位置,防辐射植物哪个更好?
  19. iPhone解锁的三种方法【附全型号进入恢复模式方法】
  20. [转]体育运动比赛英语

热门文章

  1. OpenCV 直方图均衡化 equalizeHist
  2. Scala 学习之面向对象(3)
  3. Spring3.0核心组件的源码简单分析
  4. 智慧城市近两年来受到国家高度重视
  5. C++编程中const和#define的区别
  6. td外边加div为啥不隐藏_那些不常见,但却非常实用的 css 属性
  7. java hashset 源码_Java集合:HashSet的源码分析
  8. sybase 设置默认值_[转]SYBASE 数据库操作笔记
  9. linux 下.bashrc和.profile的区别
  10. Windows系统单网卡配置双IP双网关