IoConfig
IoConfig用于适配实时/离线的数据,比如kafka实时数据和文件批数据。通常需要与firhose组合配置
1. IoConfig
1.1 luceneIndexIOConfig
luceneIndexIOConfig一般用于适配离线数据
"ioConfig":{
"type": "lucene_index",
"firehose": FirehoseFactory firehoseFactory
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| type | lucene_index | string | 是 | - | 指定ioConfig类型,固定值 |
| firehose | 参考Firehose |
json | 是 | - | 指定数据连接器,不同的数据来源需要配置不同的连接器 |
1.2 kafkaSupervisorIOConfig
kafkaSupervisorIOConfig一般用于适配kafka实时数据
"ioConfig":{
"topic": String topic,
"replicas": Integer replicas,
"taskCount": Integer taskCount,
"taskDuration": Period taskDuration,
"consumerProperties": Map<String, String> consumerProperties,
"startDelay" Period startDelay,
"period": Period period,
"useEarliestOffset": Boolean useEarliestOffset,
"completionTimeout": Period completionTimeout,
"lateMessageRejectionPeriod": Period lateMessageRejectionPeriod,
"earlyMessageRejectionPeriod": Period earlyMessageRejectionPeriod,
"skipOffsetGaps": Boolean skipOffsetGaps
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| topic | 自定义 | string | 是 | - | 指定topic |
| replicas | 自定义 | int | 否 | 1 | 指定Task副本数, 1代表没有副本任务 |
| taskCount | 自定义 | int | 否 | 1 | 指定同时启动多少Task消费kafka数据 |
| taskDuration | 参见Period配置 | string | 否 | P1D | 任务持续时间,超过指定时间后, 任务会停止接收数据, 数据段自动落地并启动新的任务进程。 |
| consumerProperties | 自定义 | json | 是 | - | 指定KafkaConsumer的consumerProperties |
| startDelay | 参见Period配置 | string | 否 | PT5S | 指定Task启动时延 |
| period | 参见Period配置 | string | 否 | PT30S | 指定Task刷新周期,即隔多久检查是否需要启动新的Task |
| useEarliestOffset | true/false | boolean | 否 | true | 指定是否从最早的offset开始消费 |
| completionTimeout | 参见Period配置 | string | 否 | PT30M | 指定Task落地超时时间 |
| lateMessageRejectionPeriod | 参见Period配置 | string | 否 | null | 指定Task允许数据迟到多久,若不配置,则不做限制 |
| earlyMessageRejectionPeriod | 参见Period配置 | string | 否 | null | 指定Task允许数据早到多久,若不配置,则不做限制 |
| skipOffsetGaps | true/false | boolean | 否 | false | 指定Task是否允许存在不连续的offset |
1.2.1 Period配置
Preiod 一般用于时间周期配置,通过P/PT与时间符号来设定具体的周期。支持以下配置
| 符号 | 代表时间周期 | 示例 | 说明 |
|---|---|---|---|
S |
秒 | PT1S(表示1秒时间周期) |
- |
M |
分 | PT1M(表示1分钟时间周期) |
- |
H |
小时 | PT1H(表示1小时时间周期) |
- |
D |
天 | P1D(表示1天时间周期) |
注意一天的周期使用P,而非PT |
2. FireHose
FireHose用于配置不同数据源的连接器
2.1 localFirehose
localFirehose用于采集本地文件
"firehose":{
"type": "local",
"baseDir": String baseDir,
"filter": String filter,
"dirFilter": String dirFilter,
"recursive": Boolean recursive
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| type | local | string | 是 | - | 指定firehose类型,固定值 |
| baseDir | 自定义 | string | 是 | - | 指定采集的本地文件夹; 支持配置多个文件夹,以 ,分隔 |
| filter | 自定义 | string | 是 | - | 指定采集哪些文件,以通配符过滤; 若不需过滤,可配置 */*.*, 其中 *用于过滤没有后缀名的文件,*.*过滤有后缀名的文件 |
| dirFilter | 自定义 | string | 否 | null | 在recursive=true时有效,指定采集哪些子文件夹,以通配符过滤; 若不需过滤,则无需配置 |
| recursive | true/false | boolean | 否 | true | 是否递归遍历子文件夹 |
2.2 hdfsFirehose
hdfsFirehose用于采集Hdfs的文本文件
"firehose":{
"type": "hdfs",
"baseDir": String baseDir,
"defaultFS": String defaultFS,
"filter": String filter,
"dirFilter": String dirFilter,
"recursive": Boolean recursive,
"readThreads": Integer readThreads,
"dataQueueThreshold": Integer dataQueueThreshold
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| type | hdfs | string | 是 | - | 指定firehose类型,固定值 |
| baseDir | 自定义 | string | 是 | - | 指定采集的本地文件夹; 支持配置多个文件夹,以 ,分隔 |
| filter | 自定义 | string | 是 | - | 指定采集哪些文件,以通配符过滤; 若不需过滤,可配置 */*.* |
| defaultFS | 自定义 | string | 否 | - | 指定hdfs-nameNode节点的url, 如 hdfs://192.168.0.223:8020,默认采用系统配置 HADOOP_HOME所在的Hdfs集群 |
| dirFilter | 自定义 | string | 否 | null | 在recursive=true时有效,指定采集哪些子文件夹,以通配符过滤; 若不需过滤,则无需配置 |
| recursive | true/false | boolean | 否 | true | 是否递归遍历子文件夹 |
| readThreads | 自定义 | int | 否 | 3 | 是否读取线程数 |
| dataQueueThreshold | 自定义 | int | 否 | 5000 | 指定缓存记录数 |
2.3 parquetFirehose
parquetFirehose用于采集Hdfs的parquet文件
"firehose":{
"type": "parquet",
"baseDir": String baseDir,
"defaultFS": String defaultFS,
"filter": String filter,
"dirFilter": String dirFilter,
"recursive": Boolean recursive,
"readThreads": Integer readThreads,
"dataQueueThreshold": Integer dataQueueThreshold
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| type | parquet | string | 是 | - | 指定firehose类型,固定值 |
| baseDir | 自定义 | string | 是 | - | 指定采集的本地文件夹; 支持配置多个文件夹,以 ,分隔 |
| filter | 自定义 | string | 是 | - | 指定采集哪些文件,以通配符过滤; 若不需过滤,可配置 */*.* |
| defaultFS | 自定义 | string | 否 | - | 指定hdfs-nameNode节点的url, 如 hdfs://192.168.0.223:8020,默认采用系统配置 HADOOP_HOME所在的Hdfs集群 |
| dirFilter | 自定义 | string | 否 | null | 在recursive=true时有效,指定采集哪些子文件夹,以通配符过滤; 若不需过滤,则无需配置 |
| recursive | true/false | boolean | 否 | true | 是否递归遍历子文件夹 |
| readThreads | 自定义 | int | 否 | 3 | 并发读取线程数 |
| dataQueueThreshold | 自定义 | int | 否 | 5000 | 指定缓存记录数 |
2.4 jdbcFirehose
jdbcFirehose用于采集Hdfs的parquet文件
"firehose":{
"type": "jdbc",
"provider": JdbcProvider provider,
"sqls": String[] sqls,
"readThreads": Integer readThreads,
"dataQueueThreshold": Integer dataQueueThreshold
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| type | jdbc | string | 是 | - | 指定firehose类型,固定值 |
| provider | 参见JdbcProvider配置 | json | 是 | - | 指定Jdbc连接信息 |
| sqls | 自定义 | array[string] |
是 | - | 查询的sql |
| readThreads | 自定义 | int | 否 | 3 | 并发读取线程数 |
| dataQueueThreshold | 自定义 | int | 否 | 5000 | 指定缓存记录数 |
2.4.1 JdbcProvider配置
提供Jdbc连接信息
"provider": {
"type": String type,
"url": String url,
"user": String user,
"password": String password,
"encrypt": Boolean encrypt,
"driverClassName":String driverClassName,
"driverPath":String driverPath
}
| 属性名 | 值 | 类型 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|---|---|
| type | 自定义 | string | 否 | default | 指定jdbc类型 |
| url | 自定义 | string | 是 | - | 指定连接url |
| user | 自定义 | string | 是 | - | 指定登录用户 |
| password | 自定义 | string | 否 | null | 指定登录密码 |
| encrypt | 自定义 | int | 否 | false | 密码是否使用了加密处理 |
| driverClassName | 自定义 | string | 是 | - | 指定驱动类 |
| driverPath | 自定义 | string | 是 | - | 指定驱动包 |