OLAP分析引擎Druid配置文件详解(四):Overlord配置文件

2023-05-16

摘要:
  本文是Druid配置文件系列博文的第四篇,我们将继续逐个介绍Druid的五大组件,前文已经介绍了Coordinator组件的配置文件,本文是第二个组件Overlord的介绍。


以下配置都在overlord/runtime.properties文件中。

Overlord Process Configs

这些配置在其他组件中也都有,这里不太详细介绍,如需了解请查看前一篇博文Coordinator配置文件

Overlord Operations
属性含义备注是否需要修改
druid.indexer.runner.type任务是运行在本地还是一个分布式环境中可选值有local(运行在本地)、remote(通过zk运行在分布式环境)、httpRemote(通过Http运行在分布式环境),默认是local一般正式环境下需要修改
druid.indexer.storage.type任务元信息存储位置可选值有local(本地内存中)、metadata(元数据表中,overlord挂掉后任务可恢复),默认是local一般正式环境需要修改
druid.indexer.storage.recentlyFinishedThreshold任务结果的保留时间默认PT24H,24小时按需配置
druid.indexer.tasklock.forceTimeChunkLock是否强制使用time chunk锁默认true一般不修改
druid.indexer.queue.maxSize活跃任务的最大数量默认Integer.MAX_VALUE一般不修改
druid.indexer.queue.startDelay打开overlord队列管理器之前等待这么多时间以给集群时间去重新定位自己默认PT1M,一分钟按需修改,一般不需要修改
druid.indexer.queue.restartDelay在overlord队列管理器遇到异常重启之前等待这么久时间默认PT30S按需修改,一般不需要修改
druid.indexer.queue.storageSyncRate同步overlord状态的时间默认PT1M按需修改,一般不需要修改

以下属性只在druid.indexer.runner.type为remote模式下有效。

属性含义备注是否需要修改
druid.indexer.runner.taskAssignmentTimeout任务分配超时时间,过了这个时间后,会跑出任务分配错误的异常默认PT5M按需修改,一般不需要修改
druid.indexer.runner.minWorkerVersion最小的middle manager版本默认0一般不需要修改
druid.indexer.runner.compressZnodes是否期待middle manager去压缩Znode默认true按需修改,一般不修改
druid.indexer.runner.maxZnodeBytes最大的Znode字节大小默认524288按需修改,一般不修改
druid.indexer.runner.taskCleanupTimeoutmiddle manager和zk失联多久后,一个任务超时失败默认PT15M按需修改,一般不修改
druid.indexer.runner.taskShutdownLinkTimeout给middle manager发送请求多久没响应后超时失败默认PT1M按需修改,一般不修改
druid.indexer.runner.pendingTasksRunnerNumThreads分配pending任务到worker的线程数量默认1,至少设置为1按需修改
druid.indexer.runner.maxRetriesBeforeBlacklist最大连续的失败次数,超过这个次数后worker将被加入黑名单默认5,最小设置1按需修改
druid.indexer.runner.workerBlackListBackoffTime多久之后worker被重新加入到白名单默认PT15M,必须大于workerBlackListCleanupPeriod按需修改
druid.indexer.runner.workerBlackListCleanupPeriod清理线程过这么久后将去清理黑名单里的worker默认PT5M按需修改
druid.indexer.runner.maxPercentageBlacklistWorkers加入黑名单的worker的最大百分比默认20按需修改

此外,有一些用于自动扩容的配置:

属性含义备注是否需要修改
druid.indexer.autoscale.strategy自动扩容策略可选值有noop和ec2(amazon的一个自动扩容器,是目前唯一支持的自动扩容器,之后会详细介绍),默认noop如果设置自动扩容需要修改为ec2
druid.indexer.autoscale.doAutoscale是否自动扩容默认false如果设置自动扩容需要修改为true
druid.indexer.autoscale.provisionPeriod每隔多久去检查是否应该增加middle manager默认1分钟按需修改,一般不需要
druid.indexer.autoscale.terminatePeriod每隔多久去检查是否应该移除middle manager默认5分钟按需修改,一般不需要
druid.indexer.autoscale.originTimeterminate period增加的开始参考时间戳默认2012-01-01T00:55:00.000Z按需修改,一般不需要
druid.indexer.autoscale.workerIdleTimeout一个worker不运行任务多久后会被终止默认90分钟按需修改,一般不需要
druid.indexer.autoscale.maxScalingDurationoverlord会等待middle manager多久不响应才会放弃默认15分钟按需修改,一般不需要
druid.indexer.autoscale.numEventsToTrack要追踪的自动扩容相关event的数量默认10按需修改,一般不需要
druid.indexer.autoscale.pendingTaskTimeout一个任务处于pending状态多久后overlord会考虑扩容默认30秒按需修改
druid.indexer.autoscale.workerVersion如果设置,在自动扩容时将仅仅创造设置版本的节点默认null按需修改
druid.indexer.autoscale.workerPort自动扩容的middle manager的端口号默认8080按需修改
Supervisors
属性含义备注是否需要修改
druid.supervisor.healthinessThreshold对于一个不健康的Supervisor,当它成功运行多少次后将它作为一个健康的默认3按需修改,一般不需要
druid.supervisor.unhealthinessThreshold对于一个健康的Supervisor,当它失败运行多少次后将它作为一个不健康的默认3按需修改,一般不需要
druid.supervisor.taskHealthinessThreshold对于一个不健康的Supervisor,当它连续成功运行多少次后将它作为一个健康的默认3按需修改,一般不需要
druid.supervisor.taskUnhealthinessThreshold对于一个健康的Supervisor,当它连续失败运行多少次后将它作为一个不健康的默认3按需修改,一般不需要
druid.supervisor.storeStackTrace是否Supervisor异常的全部stack traces应该被保存和被/status返回默认false按需修改
druid.supervisor.maxStoredExceptionEvents能被/status返回的最大异常事件数量默认max(healthinessThreshold, unhealthinessThreshold)需修改,一般不需要
Overlord Dynamic Configuration

Overlord能动态修改配置。
动态修改配置需要POST发送配置Json到以下url:

http://<OVERLORD_IP>:/druid/indexer/v1/worker

也可以通过GET方式请求以上url得到现有的配置。
header中可以添加两个参数用于审计配置的修改(也可以不指定)。X-Druid-Author指示做这个修改的用户。X-Druid-Comment指示做这个修改的一个备注。
以下是要发送的json body的一个例子:

{
  "selectStrategy": {
    "type": "fillCapacity",
    "affinityConfig": {
      "affinity": {
        "datasource1": ["host1:port", "host2:port"],
        "datasource2": ["host3:port"]
      }
    }
  },
  "autoScaler": {
    "type": "ec2",
    "minNumWorkers": 2,
    "maxNumWorkers": 12,
    "envConfig": {
      "availabilityZone": "us-east-1a",
      "nodeData": {
        "amiId": "${AMI}",
        "instanceType": "c3.8xlarge",
        "minInstances": 1,
        "maxInstances": 1,
        "securityGroupIds": ["${IDs}"],
        "keyName": "${KEY_NAME}"
      },
      "userData": {
        "impl": "string",
        "data": "${SCRIPT_COMMAND}",
        "versionReplacementString": ":VERSION:",
        "version": null
      }
    }
  }
}

下面详细介绍以下这些参数。

属性含义备注是否需要修改
selectStrategy如何去分配任务到middle manager可选值有fillCapacity, equalDistribution和javascript,具体含义下面介绍默认equalDistribution
按需修改
autoScaler如果设置自动扩容时使用,接下来详细介绍默认null按需修改

接下来首先介绍selectStrategy的几种类型:

  • equalDistribution:当任务开始运行时,任务会分配到有最多空闲slot的middle manager。如果想平均分布task,可以使用这个策略。
  • equalDistributionWithCategorySpec:是equalDistribution的变种。支持workerCategorySpec而不是affinityConfig(workerCategorySpec、affinityConfig下面将具体介绍)。通过指定workerCategorySpec,能基于任务类型和数据源将任务分配到不同目录的middle manager上。这个策略不能使用自动扩容。
  • fillCapacity:当任务开始运行时,任务会分配到现在运行任务最多的worker。当自动扩容时使用这个是有用的,因为你可以把任务尽量放在一些worker上直到放满,保持其他worker空闲能被终止。注意如果druid.indexer.runner.pendingTasksRunnerNumThreads的值N大于1,则这个策略会同时填充N个middle manager。
  • fillCapacityWithCategorySpec:是fillCapacity的变体。支持workerCategorySpec而不是affinityConfig。同equalDistributionWithCategorySpec。
  • javascript:使用JavaScript函数自定义分配逻辑。

接下来介绍affinityConfig:
以下是一个例子,表示datasource1优先分配到host1:port表示的middle manager和host2:port表示的middle manager,datasource2优先分配到host3:port表示的middle manager:

"affinityConfig": {
      "affinity": {
        "datasource1": ["host1:port", "host2:port"],
        "datasource2": ["host3:port"]
      }
}
属性含义备注是否需要修改
affinity一个JSON对象,映射数据源名字到一个middle manager的列表(middle manager用host:port的形式表示)默认{}按需配置
strong布尔值,表示是否强制分配指定middle manager,即使指定middle manager不能运行全部pending任务默认false按需配置,一般不修改

接下来介绍WorkerCategorySpec:
以下是一个例子,表示对于index_kafka类型的任务,如果数据源是ds1,则分配到c2目录里的middle manager,如果数据源不是ds1,则按照默认目录分配到c1目录:

"workerCategorySpec": {
      "strong": false,
      "categoryMap": {
        "index_kafka": {
           "defaultCategory": "c1",
           "categoryAffinity": {
              "ds1": "c2"
           }
        }
      }
 }
属性含义备注是否需要修改
categoryMap映射任务类型到CategoryConfig对象(CategoryConfig下面详细介绍),你能为不同的类型指定CategoryConfig默认{}按需配置
strong是否强制按照CategoryConfig分配middle manager默认false按需配置,一般不修改

CategoryConfig介绍:

属性含义备注是否需要修改
defaultCategory默认目录,如果一个数据源没有指定目录就会运行在默认目录默认null需要设置
categoryAffinityJSON对象,映射数据源到middle manager的目录默认null按需设置

Autoscaler介绍:

属性含义备注是否需要修改
minNumWorkers集群中某一时间最小的worker数量默认0按需修改
maxNumWorkers集群中某一时间最大的worker数量默认0按需修改
availabilityZone要在哪个可用区中运行默认none按需设置
nodeData一个描述如何启动新节点的JSON对象默认none按需设置
userData一个描述如何配置新节点的JSON对象。 如果设置了druid.indexer.autoscale.workerVersion,则必须具有versionReplacementString默认none按需设置
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OLAP分析引擎Druid配置文件详解(四):Overlord配置文件 的相关文章

  • 四剑客和正则表达式常见故障及困惑集合(待更新)

    一 find命令 warning警告 maxdepth 这个参数要放在其他参数之前 root 64 oldboyedu59 find type d maxdepth 1 find warning you have specified the
  • sed的使用

    一 xff0c 替换文本 s pattern replacement flags replacement会替换pattern 例如 xff1a root 64 node1 sed cat data2 txt This is a test o
  • KVM虚拟化-创建-桥接-硬盘-快照

    1 创建 使用virt manager进行创建 virt manager进入管理器 点击如图进行创建 将ISO下载到虚拟机里面 点击浏览 下面是虚拟机名字 选择本地浏览 选中CentOS的iso 选择后前进 选择内存和cpu xff0c 前
  • 串口专题(一)——基础知识

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 1 概念介绍 串行口是计算机一种常
  • STM32中晶振的原理与作用

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 转载地址 STM32中晶振的原理与
  • STM32学习笔记一一UCOSII(1)

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 1 简介 UCOSII 是一个可以
  • PADS 原理图库文件绘制

    前言 xff1a 为了方便查看博客 xff0c 特意申请了一个公众号 xff0c 附上二维码 xff0c 有兴趣的朋友可以关注 xff0c 和我一起讨论学习 xff0c 一起享受技术 xff0c 一起成长 1 PADS Logic 参数设置
  • prometheus监管平台(一)(开源)

    prometheus监管平台 xff08 一 xff09 xff08 开源 xff09 一 登录二 首页三 General Management功能四 Host Management功能五 Job Management功能六 Alarm M
  • vncserver连接后窗口显示太小

    VNC server的默认的分辨率是1024x768 如果要改变VNC server的分辨率 1 可以用一下命令启动VNC server root 64 localhost vncserver geometry 1280x1024 这种修改
  • dfs (二进制枚举,暴力,马的管辖)

    在中国象棋中 xff0c 马是走日字的 一个马的管辖范围指的是当前位置以及一步之内能走到的位置 xff0c 下图的绿色旗子表示马能走到的位置 如果一匹马的某个方向被蹩马脚 xff0c 它就不能往这个方向跳了 xff0c 如下图所示 xff0
  • linux进程(四)——进程的几种状态

    usr src linux headers 4 15 0 45 include linux Used in tsk gt state define TASK RUNNING 0x0000 define TASK INTERRUPTIBLE
  • linux网络设备驱动(一)

    一 框架 1 xff09 网络协议接口层 向网络层协议提供统一的数据包收发接口 xff0c 不论上层协议是ARP xff0c 还是IP xff0c 都通过dev queue xmit 函数发送数据 xff0c 并通过netif rx 函数接
  • linux taskset命令

    一 简介 taskset命令用于设置进程 xff08 或线程 xff09 的处理器亲和性 xff08 Processor Affinity xff09 xff0c 可以将进程 xff08 或线程 xff09 绑定到特定的一个 或 多个CPU
  • STM32使用cubemx、HAL库硬件SPI驱动ICM20602

    软件平台 xff1a cubemx mdk 硬件平台 xff1a stm32f103rct6 ICM20602 工程源代码链接 xff1a https download csdn net download wwwlyj123321 1099
  • 【OBS】OBS Studio 的安装、参数设置和录屏、摄像头使用教程

    提示 xff1a 作者简介 xff1a 盐焗小星球 wyb xff0c 一名在读的电子信息工程专业大学生 x1f4d1 个人主页 xff1a 盐焗小星球 wyb的主页 x1f4eb 如果文章知识点有错误的地方 xff0c 请指正 xff01
  • IMU:姿态解算算法集合

    文章目录 一 IMU原理二 源码 一 IMU原理 二 源码 源文件 xff1a span class token comment include 34 IMU h 34 span span class token comment inclu
  • ORB特征提取、匹配及位置估计

    1 什么是ORB特征点 xff1f 图像特征点可以理解为图像中比较显著的点 xff0c 如轮廓点 xff0c 较暗区域中的亮点 xff0c 较亮区域中的暗点等 ORB采用FAST xff08 features from accelerate
  • c51单片机学习笔记-LED点阵实验(点亮一个点)

    目的 xff1a xff1a 在点阵屏上点亮一个点 方法 xff1a 让 LED 点阵的左上角第一个点点亮 xff0c 实际上就是将第一个点对应的行为高电平 xff0c 列为低电平 即可 也就是让 74HC595 输出 0X80 xff08
  • tepedef和define的区别

    xfeff xfeff 1 xff1a typedef 可以简化复杂的类型声明 2 xff1a 定义与平台无关的类型 3 xff1a 可以与 struct 结合使用 4 xff1a typedef 和 define 执行时间不同 关键字ty
  • 如何让虚拟机里的Ubuntu通过连接手机USB数据线上网

    目录 一 前言 二 Windows联网方法 三 Ubuntu联网方法 一 前言 最近遇到了这样一个问题 xff0c 有一台台式机 xff0c 地插网口无法访问外网 xff0c 周边也没有无线路由器 xff0c 要访问外网 xff0c 该如何

随机推荐