OLAP分析引擎Druid配置文件详解(三):coordinator配置文件

5 篇文章 0 订阅
5 篇文章 0 订阅

摘要:
  本文是Druid配置文件系列博文的第三篇,之前的文章已经介绍了Druid配置文件整体的组织结构以及公共配置文件,接下来将逐个介绍Druid的五大组件,本文是第一个组件Coordinator的介绍。


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

Coordinator Process Config
属性含义备注是否需要修改
druid.host组件所在的主机默认InetAddress.getLocalHost().getCanonicalHostName()一般不需要修改
druid.bindOnHost组件的内部jetty服务是否和druid.host绑定默认false一般不需要修改
druid.plaintextPort实际监听端口默认8081一般不需要修改
druid.tlsPortTLS端口号默认8281一般不修改
druid.service用于服务发现的名字默认druid/coordinator一般不修改

这些配置在其他组件中也都有,含义与这里相同,接下来将不再逐个介绍

Coordinator Operation
属性含义备注是否需要修改
druid.coordinator.periodcoordinator每隔一段时间会运行去查看可用的segment和处于服务中的segment,这个属性表示这个时间间隔默认PT60S按需修改
druid.coordinator.period.indexingPeriod每隔多久去发送压缩/合并/转换任务默认PT1800S,推荐要大于druid.manager.segments.pollDuration一般不需要
druid.coordinator.startDelayCoordinator运行时假设自己知道最新的所有状态,但是ZK不允许Coordinator知道它是否已经得到全部最新状态,所以需要一个时间间隔给足够的时间让Coordinator可以假设自己已经得到全部最新状态默认PT300S一般不修改
druid.coordinator.load.timeout分配一个segment到historical的超时时间默认PT15M一般不修改
druid.coordinator.kill.pendingSegments.on是否清理元数据中的pendingSegments表的老条目,清理的时间间隔是druid.coordinator.period,killPendingSegmentsSkipList里的数据源不会被清理默认false按需修改
druid.coordinator.kill.onCoordinator是否提交kill任务去删除元数据和深存储中的无用数据清理的时间间隔是druid.coordinator.kill.period,durationToRetain是保留时间,在这个时间内的segment不会被删除,白名单可以通过killAllDataSources和killDataSourceWhitelist设置默认false按需修改
druid.coordinator.kill.period发送kill任务的时间间隔默认P1D按需修改
druid.coordinator.kill.durationToRetain在最近这个时间内的segment不会被删除默认PT-1S默认值无效,如果kill打开必须设置
druid.coordinator.kill.maxSegments每个kill任务最多删除的segment数量默认0默认值无效,如果kill打开必须设置
druid.coordinator.balancer.strategysegment平衡策略默认cost,可选值是cachingCost、diskNormalized、random,cachingCost是cost的优化版将取代cost,diskNormalized尽量保证磁盘使用均匀,random随机分配segment按需修改
druid.coordinator.balancer.cachingCost.awaitInitialization使用cachingCost策略时,是否在创建cachingCost策略之前等待segment视图初始化默认false按需修改
druid.coordinator.loadqueuepeon.repeatDelay管理segment加载和删除的loadqueue的开始和重复延迟时间默认PT0.050S (50 ms)按需修改
druid.coordinator.asOverlord.enabled是否Coordinator也充当Overlord的角色,这个用来简化集群,没有部署overlord时使用默认false一般不修改
druid.coordinator.asOverlord.overlordService如果druid.coordinator.asOverlord.enabled为true,用于服务发现默认null,应该和overlord组件的druid.service属性和middle manager组件的druid.selectors.indexing.serviceName属性相同如果druid.coordinator.asOverlord.enabled为true,需要修改
Segment Management
属性含义备注是否需要修改
druid.serverview.typesegment发现的方法默认batch,可选值http,batch使用zk方式按需修改
druid.coordinator.loadqueuepeon.type分配segment的方式默认curator,可选值http按需修改
druid.coordinator.segment.awaitInitializationOnStartCoordinator是否在开始之前等待segment视图完全初始化默认true按需修改

druid.coordinator.loadqueuepeon.type设置为http时需要配置以下属性

属性含义备注是否需要修改
druid.coordinator.loadqueuepeon.http.batchSize在一个http请求里加载或删除的segment数量默认1,需要小于druid.segmentCache.numLoadingThreads按需配置
Metadata Retrieval
属性含义备注是否需要修改
druid.manager.config.pollDurationmanager多久拉一次配置表用于更新默认PT1M按需修改
druid.manager.rules.pollDurationmanager多久拉一次用于更新活跃segment默认PT1M按需修改
druid.manager.rules.defaultTier默认tier,默认的规则将从tier中加载默认_default按需修改
druid.manager.rules.alertThreshold失败的拉多久后会报警默认PT10M按需修改
Dynamic Configuration

Coordinator有一个通过HTTP的动态配置方式,具体如下:
url:POST http://<COORDINATOR_IP>:/druid/coordinator/v1/config

可选的Header:

属性含义
X-Druid-Author改变配置的用户名
X-Druid-Comment描述配置修改内容的注释

一个Body的例子:

{
  "millisToWaitBeforeDeleting": 900000,
  "mergeBytesLimit": 100000000,
  "mergeSegmentsLimit" : 1000,
  "maxSegmentsToMove": 5,
  "replicantLifetime": 15,
  "replicationThrottleLimit": 10,
  "emitBalancingStats": false,
  "killDataSourceWhitelist": ["wikipedia", "testDatasource"],
  "decommissioningNodes": ["localhost:8182", "localhost:8282"],
  "decommissioningMaxPercentOfMaxSegmentsToMove": 70,
  "pauseCoordinator": false
}

一个GET请求相同的url会得到当前这些配置属性的值

下面分别介绍这些属性的含义:

属性含义备注是否需要修改
millisToWaitBeforeDeletingCoordinator在删除元数据中的segment之前需要活跃多久默认900000(15分钟)按需配置
mergeBytesLimit合并segment的最大未压缩字节大小默认524288000L按需修改
mergeSegmentsLimit合并的最大segment数量默认100按需修改
maxSegmentsToMove最大的能被移动的segment数量默认5按需修改
replicantLifetime对于要复制的segment,在报警之前Coordiantor运行的最大次数默认15按需修改
replicationThrottleLimit一次复制的最大segment数量默认10按需修改
balancerComputeThreads在segment平衡是,计算移动cost的线程池大小默认1按需修改
emitBalancingStats是否emit平衡相关统计默认false,这是一个昂贵的操作按需修改
killDataSourceWhitelist发送kill任务的数据源白名单(白名单中的dataSource会被kill)默认none按需使用
killAllDataSources是否对所有dataSource发送kill任务,与killDataSourceWhitelist只能使用其中一个默认false按需使用
killPendingSegmentsSkipListkill pending状态segment时跳过的数据源列表默认none按需使用
maxSegmentsInNodeLoadingQueue最大的segment排毒数量默认0,这个值可以在有慢节点或segment调度不均匀时加速segment加载过程,可以设置为1000然后根据情况调节按需使用
decommissioningNodes退役historical列表,将不分配新的segment到退役节点上默认none按需使用
decommissioningMaxPercentOfMaxSegmentsToMove再一次Coordinator运行时,从退役节点上移动到非退役节点上的segment数量默认70按需使用
Lookups Dynamic Configuration

Compaction Dynamic Configuration

通过API来设置Compaction任务

属性含义备注是否需要修改
dataSource要Compaction的数据源名字需要设置
taskPriority任务优先级默认25不需要设置
inputSegmentSizeBytes最大的总的segment的字节数默认419430400不需要设置
maxRowsPerSegment每个segment的最大行数不需要设置
skipOffsetFromLatest搜索要压缩的segment的offset默认P1D不需要设置,对于实时数据源推荐去设置
tuningConfig里面的参数之后在详细介绍不需要配置
taskContext环境参数不需要设置
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值