Kafka Indexing Service

Kafka索引服务可以在Overlord上配置,通过管理Kafka索引任务的创建和生命周期来促进Kafka的消费。这些索引任务使用Kafka自己的分区和偏移机制读取事件,因此能够提供完全一次摄取的保证。他们还能够从Kafka读取非近期事件,并且不受使用Tranquility对其他摄取机制施加的窗口期限的影响。主管监督索引任务的状态,以协调切换,管理故障并确保维护可伸缩性和复制要求。

Kafka索引服务使用了Kafka 0.10.x中引入的Java consumer。由于此版本中存在协议更改,因此Kafka 0.10.x消费者可能与较旧的brokers不兼容。在使用此功能之前,请确保您的Kafka brokers是0.10.x或更高版本。如果您使用的是旧版Kafka brokers,请参阅Kafka升级指南。

Submitting a Supervisor Spec

Kafka索引服务要求druid-kafka-indexing-service在Overlord和MiddleManagers上加载扩展。

通过HTTP POST提交Supervisor Specd来启动一个dataSource的规范:

http://:/druid/indexer/v1/supervisor

例如:

curl -X POST -H 'Content-Type: application/json' -d @supervisor-spec.json http://localhost:8090/druid/indexer/v1/supervisor

示例Supervisor Spec如下所示:

{

"type": "kafka",

"dataSchema": {

"dataSource": "metrics-kafka",

"parser": {

"type": "string",

"parseSpec": {

"format": "json",

"timestampSpec": {

"column": "timestamp",

"format": "auto"

},

"dimensionsSpec": {

"dimensions": [],

"dimensionExclusions": [

"timestamp",

"value"

]

}

}

},

"metricsSpec": [

{

"name": "count",

"type": "count"

},

{

"name": "value_sum",

"fieldName": "value",

"type": "doubleSum"

},

{

"name": "value_min",

"fieldName": "value",

"type": "doubleMin"

},

{

"name": "value_max",

"fieldName": "value",

"type": "doubleMax"

}

],

"granularitySpec": {

"type": "uniform",

"segmentGranularity": "HOUR",

"queryGranularity": "NONE"

}

},

"tuningConfig": {

"type": "kafka",

"maxRowsPerSegment": 5000000

},

"ioConfig": {

"topic": "metrics",

"consumerProperties": {

"bootstrap.servers": "localhost:9092"

},

"taskCount": 1,

"replicas": 1,

"taskDuration": "PT1H"

}

}

Supervisor Configuration

字段

描述

是否必须

type

Supervisor 类型,这里应该为Kafka。

dataSchema

摄取过程中Kafka索引任务将使用的Schema,请参阅Ingestion Spec DataSchema。

ioConfig

用于配置管理程序和索引任务的KafkaSupervisorIOConfig,请参见下文。

tuningConfig

用于配置管理程序和索引任务的KafkaSupervisorTuningConfig,请参见下文。

KafkaSupervisorTuningConfig

tuningConfig是可选的,如果未指定tuningConfig,则将使用默认参数。

字段

类型

描述

是否必须

type

String

索引任务类型,应该始终是kafka。

maxRowsInMemory

Integer

持久化之前要聚合的行数。此数字是后聚合行,因此它不等于输入事件的数量,而是等于这些事件导致的聚合行数。这用于管理所需的JVM堆大小。索引的最大堆内存使用量为:maxRowsInMemory *(2 + maxPendingPersists)。通常用户不需要设置它,但是根据数据的性质,如果行以字节为单位比较短,用户可能不希望在内存中存储一百万行,应该设置该值。

否(默认==000000)

maxBytesInMemory

Long

持久化之前在堆内存中聚合的字节数。这是基于对内存使用情况的粗略估计,而不是实际使用情况。通常这是在内部计算的,用户不需要设置它。索引的最大堆内存使用量是:maxBytesInMemory *(2 + maxPendingPersists)。

否(默认==大JVM内存的六分之一)

maxRowsPerSegment

Integer

要聚合成段的行数;这个数字是聚合后的行。切换将在maxRowsPerSegment或maxTotalRows被触发或每次intermediateHandoffPeriod时发生,以先发生者为准。

否(默认==000000)

maxTotalRows

Long

在所有段中聚合的行数; 这个数字是后聚合行。切换将在maxRowsPerSegment或maxTotalRows被触发或每次intermediateHandoffPeriod时发生,以先发生者为准。

否(默认==nlimited)

intermediatePersistPeriod

ISO8601 Period

决定中间体持续发生率的时期。

否(默认== PT10M)

maxPendingPersists

Integer

可挂起但未启动的最大持久性数量。如果一个新的中间持久化会超过这个限制,那么在当前运行的持久化完成之前,摄入将被阻塞。索引规模的最大堆内存使用量maxRowsInMemory * (2 + maxpendingpersist)。

否(默认== 0,表示一个persist可以与摄取同时运行,并且没有一个可以排队)

indexSpec

Object

调整数据的索引方式,有关详细信息,请参阅下面的“IndexSpec”。

reportParseExceptions

Boolean

弃用。如果为true,则在抛出过程中遇到的异常将被抛出并将停止摄取; 如果为false,将跳过不可解析的行和字段。设置reportParseExceptions为true将覆盖现有的配置maxParseExceptions和maxSavedParseExceptions,设置maxParseExceptions为0,限制maxSavedParseExceptions为不超过1。

否(默认== false)

handoffConditionTimeout

Long

等待段切换的毫秒数。它必须> = 0,其中0表示永远等待。

否(默认== 0)

resetOffsetAutomatically

Boolean

是否重置消费者偏移量,如果它尝试获取的下一个偏移量小于该特定分区的最早可用偏移量。根据useEarliestOffset的属性(见下文),消费者偏移将重置为最早或最近的偏移KafkaSupervisorIOConfig。这种情况通常发生在Kafka的消息不再可供消费时,因此不会被摄入Druid。如果设置为false,则将暂停对该特定分区的摄取,并且需要手动干预来纠正这种情况,请参阅Reset Supervisor下面的API。

否(默认== false)

workerThreads

Integer

Supervisor将用于异步操作的线程数。

否(默认== min(10,taskCount))

chatThreads

Integer

将用于与索引任务通信的线程数。

否(默认== min(10,taskCount * replicas))

chatRetries

Integer

在考虑任务无响应之前,将重试HTTP请求索引任务的次数。

否(默认== 8)

httpTimeout

ISO8601 Period

从索引任务等待HTTP响应的时间

否(默认== PT10S)

shutdownTimeout

ISO8601 Period

在退出之前,等待Supervisor尝试优雅地关闭任务需要多长时间。

否(默认== PT80S)

offsetFetchPeriod

ISO8601 Period

主管查询Kafka和索引任务以获取当前偏移量和计算延迟的频率。

否(默认== PT30S,分钟== PT5S)

segmentWriteOutMediumFactory

Object

分段写入介质,用于创建分段。请参阅下面的详细信息。

否(默认情况下未指定,使用的值druid.peon.defaultSegmentWriteOutMediumFactory.type)

intermediateHandoffPeriod

ISO8601 Period

任务应该多长时间分配一次。切换将在maxRowsPerSegment或maxTotalRows被触发或每次intermediateHandoffPeriod时发生,以先发生者为准。

否(默认== P2147483647D

logParseExceptions

Boolean

如果为true,则在发生解析异常时记录错误消息,其中包含有关发生错误的行的信息。

否(默认== false)

maxParseExceptions

Integer

在任务停止摄取和失败之前可能发生的最大解析异常数。如果reportParseExceptions已设置,则重写。

否(默认无限制)

maxSavedParseExceptions

Integer

当发生解析异常时,Druid可以跟踪最近的解析异常。“maxSavedParseExceptions”限制将保存多少个异常实例。这些保存的异常将在任务完成报告中任务完成后可用。如果reportParseExceptions已设置,则重写。

否(默认== 0)

IndexSpec

字段

类型

描述

是否必须

bitmap

Object

位图索引的压缩格式。应该是一个JSON对象; 请参阅下文的“Bitmap types”。

否(默认为 Concise)

dimensionCompression

String

维列的压缩格式。选择LZ4,LZF或uncompressed。

否(默认== LZ4)

metricCompression

String

公制列的压缩格式。选择LZ4,LZF,uncompressed,或none。

否(默认== LZ4)

longEncoding

String

类型为long的度量和维度列的编码格式。选择auto或longs。auto根据列基数使用偏移量或查找表对值进行编码,并以可变大小存储它们。longs将值存储为每个8字节。

否(默认== longs)

Bitmap types

Concise bitmaps:

字段

类型

描述

是否必须

type

String

必须为 concise。

Roaring bitmaps:

字段

类型

描述

是否必须

type

String

必须为 roaring。

compressRunOnSerialization

Boolean

使用行程编码,估计其空间效率更高。

否(默认==true)

SegmentWriteOutMediumFactory

KafkaSupervisorIOConfig

字段

类型

描述

是否必须

topic

String

Kafka topic可供阅读。这必须是特定topic,因为不支持topic模式。

consumerProperties

Map

要传递给Kafka consumer的属性的映射。这必须包含一个属性bootstrap.servers,其中包含以下形式的Kafka代理列表::,:,...。对于SSL连接,keystore,truststore和key密码可以作为一个被提供密码提供或字符串密码。

pollTimeout

Long

等待kafka consumer轮询记录的时间长度,以毫秒为单位

否(默认== 100)

replicas

Integer

副本的数量,其中1表示一组任务(无复制)。副本任务将始终分配给不同的工作人员,以提供针对流程故障的弹性。

否(默认== 1)

taskCount

Integer

副本集的最大读取任务数。这意味着最大读取任务数为taskCount * replicas,而总任务数(读取+发布)将高于此值。有关详细信息,请参阅下面的“容量规划”。如果任务计数为> {numKafkaPartitions},则读取任务的数量将小于taskCount。

否(默认== 1)

taskDuration

ISO8601 Period

任务停止读取并开始发布其段之前的时间长度

否(默认== PT1H)

startDelay

ISO8601 Period

在Supervisor开始管理任务之前等待的时间。

否(默认== PT5S)

period

ISO8601 Period

Supervisor执行其管理逻辑的频率。请注意,管理程序也将运行以响应某些事件(例如任务成功,失败和达到tasksDuration),因此该值指定迭代之间的最长时间。

否(默认== PT30S)

useEarliestOffset

Boolean

如果Supervisor第一次管理dataSource,它将从Kafka获得一组起始偏移量。此标志确定它是否检索Kafka中的最早或最新偏移量。在正常情况下,后续任务将从前一个段结束的位置开始,因此该标志仅在首次运行时使用。

否(默认== false)

completionTimeout

ISO8601 Period

在将发布任务声明为失败并终止之前等待的时间长度。如果设置得太低,您的任务可能永远不会发布。任务的发布时间大致在taskDuration过去后开始。

否(默认== PT30M)

lateMessageRejectionPeriod

ISO8601 Period

配置任务以拒绝时间戳早于创建任务之前的时间段的消息;例如,如果将此设置为PT1H并且主管在2016-01-01T12:00Z创建任务,则将删除时间戳早于2016-01-01T11:00Z的消息。如果您的数据流具有延迟消息并且您有多个需要在相同段上运行的管道(例如,实时和夜间批量提取管道),这可能有助于防止并发问题。

否(默认==none)

earlyMessageRejectionPeriod

ISO8601 Period

配置任务以在任务到达taskDuration后拒绝时间戳晚于此时间段的消息; 例如,如果设置为PT1H,则taskDuration设置为PT1H,并且主管在2016-01-01T12:00Z创建任务,将删除时间戳晚于2016-01-01T14:00Z的消息。**注意:**任务有时会超过其任务持续时间,例如,在主管故障转移的情况下。将earlyMessageRejectionPeriod设置得太低可能会导致在任务超过其最初配置的任务持续时间时意外删除消息。

否(默认==none)

druid字段级_Druid配置相关推荐

  1. druid字段级_Druid的数据结构

    Druid的数据结构 Druid数据存储结构可以分为三层: 1. DataSource 2. Chunk 3. Segment DataSource相当于传统数据库的按时间分区的表,Chunk相当于M ...

  2. mysql血缘 表级血缘 字段级血缘GUDU GSP,JSQL PARSER,ANTLR MYSQL,DRUID

    ** 目的: ** 分析mysql的表级和字段级血缘,本文给出他人源码或示例 工具 GUDU-SQLPARSER GSP JSQL-PARSER antlr DRUID 横向对比 名称 开源 功能 优 ...

  3. druid mysql配置详解_druid配置详解

    java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色的性能,也 ...

  4. druid定义 java使用_druid 配置打印完整可执行的SQL

    druid 是支持 打印完整可以执行SQL的,只是 druid 默认不会打印.这点我觉得做得不够友好.这么好用的功能,居然默认隐藏 ? spring boot 配置 引入依赖 com.alibaba ...

  5. SpringBoot/Mybatis/Druid, 多数据源MultiDataSource配置思路

    新的项目需求,需要将子需求A锁定到A库,将子需求B锁定到B库: 就是俗称的"分库":但这是业务性分库,也就是说,A库和B库并没有任何逻辑上的,主从或水平或垂直分库关系:就是,完全没 ...

  6. mysql druid 多数据源_SpringBoot使用阿里数据库连接池Druid以及多数据源配置

    SpringBoot使用阿里数据库连接池Druid以及多数据源配置 引入依赖 com.alibaba druid 1.0.29 数据源配置 1.数据源 #master数据源 spring.dataso ...

  7. Druid 内置Filter配置

    Druid Spring Boot Starter 对以下 Druid 内置 Filter,都提供了默认配置: StatFilter 通过它可以开启 Druid 的 SQL 监控功能,对 SQL 进行 ...

  8. Druid 数据源连接池配置

    在 Spring Boot 的配置文件中对 Druid 数据源连接池进行配置 # Druid连接池的配置 spring:datasource:druid:initial-size: 5 #初始化连接大 ...

  9. druid.properties文件的配置

    # druid.properties文件的配置 driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/plan u ...

最新文章

  1. Android 自定义View ——Matrix (矩阵)
  2. java之定时器任务Timer用法
  3. 计算机基础知识应用文档,计算机基础知识与应用
  4. 2.7 计算图-深度学习-Stanford吴恩达教授
  5. 14种冷热源及空调系统特点介绍
  6. eclipse的下载JDK的安装与配置
  7. vue element container 子路由
  8. Win10: adb: error: remote could not create file(解决)
  9. 获取所有task_Asp.Net Core 轻松学-多线程之Task快速上手
  10. 8.8LSTM作为元学习器学习梯度下降
  11. 恒强制版系统980_恒功率、大功率及无线充电,充电设备面临哪些趋势和挑战?...
  12. TP—Link路由器进行WDS无线桥接设置方法
  13. 你还记得远古时代的拨号上网么?快来了解拨号上网与宽带上网的区别
  14. halcon模板匹配实践(5)使用橡皮擦涂抹功能实现减少模板匹配特征
  15. wp友情链接php代码,wordpress友情链接函数详解
  16. android手机截图功能,安卓手机怎么截屏?三星/华为/小米等手机截图方法
  17. 密码学基础知识(二)
  18. 剑指offer——44.翻转单词顺序序列
  19. Python 分析中国城市夜间灯光数据
  20. abap 在屏幕如何调用选择屏幕以及如何获得选择屏幕的操作

热门文章

  1. 企业微信 ios 识别二维码 无法直接跳转 (安卓正常)
  2. About 9.18 This Week
  3. JavaWeb学习(第一天)-1-HTML部分
  4. SGX初始化中ELF文件解析
  5. C语言 | 函数参数
  6. 045 [转载]DNS RPC 分析
  7. Windows10平台优秀软件及设置调整
  8. 伸缩自如的ElasticSearch——通过bboss操作和访问elasticsearch模式
  9. spring boot 使用 bboss 操作 ES
  10. CSS篇-dbMovies和dbBooks小网页