Skip to main content

ChunJun 通用配置详解

配置文件结构详解

一个完整的 ChunJun 任务脚本配置包含 content, setting 两个部分。content 用于配置任务的输入源与输出源,其中包含 reader,writer。而 setting 则配置任务整体的环境设定,其中包含 speed,errorLimit,metricPluginConf,restore,log,dirty。总体结构如下所示:

{
"job" : {
"content" :[{
"reader" : {},
"writer" : {}
}],
"setting" : {
"speed" : {},
"errorLimit" : {},
"metricPluginConf" : {},
"restore" : {},
"log" : {},
"dirty":{}
}
}
}
名称说明是否必填
contendreaderreader插件详细配置
writerwriter插件详细配置
settingspeed速率限制
errorLimit出错控制
metricPluginConf指标插件配置
restore任务类型及断点续传配置
log日志记录配置
dirty脏数据保存

Content 配置

Reader

reader 用于配置数据的输入源,即数据从何而来。具体配置如下所示:

"reader" : {
"name" : "xxreader",
"parameter" : {
......
}
}
名称说明是否必填
namereader 插件名称,具体名称参考各数据源配置文档
parameter数据源配置参数,具体配置参考各数据源配置文档

Writer

"writer" : {
"name" : "xxwriter",
"parameter" : {
......
}
}
名称说明是否必填
namewriter 插件名称,具体名称参考各数据源配置文档
parameter数据源配置参数,具体配置参考各数据源配置文档

Setting 配置

speed

speed 用于配置任务并发数及速率限制。具体配置如下所示:

"speed" : {
"channel": 1,
"readerChannel": -1,
"writerChannel": -1,
"bytes": 0,
"rebalance" : true
}
名称说明是否必填默认值数据类型
channel任务并发数1Integer
readerChannelsource 并行度,-1 代表采用全局并行度-1Integer
writerChannelsink 并行度,-1 代表采用全局并行度-1Integer
bytesbytes >0 则表示开启任务限速0Long
rebalance是否强制进行 rebalance,开启会消耗性能falseBoolean

ErrorLimit

errorLimit 用于配置任务运行时数据读取写入的出错控制。具体配置如下所示:

"errorLimit" : {
"record": 100,
"percentage": 10.0
}
名称说明是否必填默认值参数类型
record错误阈值,当错误记录数超过此阈值时任务失败0Integer
percentage错误比例阈值,当错误记录比例超过此阈值时任务失败0.0Double

MetricPluginConf

metricPluginConf 用于配置 flinkx 指标相关信息。

目前只应用于 Jdbc 插件中,在作业结束时将 StartLocation 和 EndLocation 指标发送到指定数据源中。

目前支持 Prometheus 和 Mysql。具体配置如下所示:

Prometheus

promethusReporter 依赖 pushGateway 和普罗米修斯交互

"metricPluginConf" : {
"pluginName": "promethus"
}

普罗米修斯的相关配置信息需要配置在 flink 的配置文件中

metrics.reporter.promgateway.host: 127.0.0.1
metrics.reporter.promgateway.port: 9091
metrics.reporter.promgateway.jobName: testjob
metrics.reporter.promgateway.randomJobNameSuffix: true
metrics.reporter.promgateway.deleteOnShutdown: false
名称说明是否必填默认值
metrics.reporter.promgateway.hostpushGateway 域名
metrics.reporter.promgateway.portpushGateway 端口0
metrics.reporter.promgateway.jobName指标对应作业名
metrics.reporter.promgateway.randomJobNameSuffix是否对作业名加上随机后缀,防止作业名重复false
metrics.reporter.promgateway.deleteOnShutdown是否在作业结束后删除指标信息true

Mysql

要求目标表存在至少两个 String 字段,metric_name 和 metric_value,分别记录指标名和指标值

"metricPluginConf" : {
"pluginName": "promethus"
"pluginProp": {
"jdbcUrl":"",
"database":"",
"table":"",
"username":"",
"password":"",
"properties":{
}
}
}
名称说明是否必填默认值参数类型
jdbcUrl针对 Mysql 的 jdbc 连接字符串String
tablemysql 表名String
usernamemysql 用户名String
passwordmysql 用户名对应的密码String
properties数据库连接配置Map

Restore

restore 用于配置同步任务类型(离线同步、实时采集)和断点续传功能。具体配置如下所示:

"restore" : {
"isStream" : false,
"isRestore" : false,
"restoreColumnName" : "",
"restoreColumnIndex" : 0
}
名称说明是否必填默认值参数类型
isStream是否为实时采集任务falseBoolean
isRestore是否开启断点续传falseBoolean
restoreColumnName断点续传字段名称开启断点续传后必填String
restoreColumnIndex断点续传字段索引 ID开启断点续传后必填Integer

Log

log 用于配置 ChunJun 中定义的插件日志的保存与记录。具体配置如下所示:

"log" : {
"isLogger": false,
"level" : "info",
"path" : "/tmp/dtstack/flinkx/",
"pattern":""
}
名称说明是否必填默认值参数类型
isLogger是否保存日志记录falseBoolean
level日志级别infoString
path服务器上日志保存路径/tmp/dtstack/flinkx/String
pattern日志输出格式log4j:%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{60} %X{sourceThread} - %msg%n
logback : %d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
String

Dirty

dirty 用于配置脏数据的保存,通常与 ErrorLimit 联合使用。具体配置如下所示:

"dirty" : {
"path" : "xxx",
"hadoopConfig" : {
......
}
}
名称说明是否必填默认值参数类型
path脏数据保存路径Sring
hadoopConfigHadoop 相关配置Map