更新时间:2024-11-29 GMT+08:00

创建CDL任务

操作场景

CDL除了通过CDLService WebUI创建任务外,还可以参考该章节通过命令行提交任务。

CDL的任务组成主要有两部分:Sink Connector和Source Connector,其中Connector中独立包含Link的概念,因此创建一个CDL任务的流程如下:

  1. 验证Link。
  2. 创建Link 。
  3. 创建任务(包含了两个Connector的配置)。
  4. 提交任务。
  • 如果集群的默认域名不是hadoop.hadoop.com,必须在创建job的connector参数中增加如下参数项,其中“xxx.xxx.xxx”是实际的域名。

    {"name" : "producer.override.kerberos.domain.name", "value" : "xxx.xxx.xxx"}

    {"name" : "consumer.override.kerberos.domain.name", "value" : "xxx.xxx.xxx"}

  • 任务创建完成之后不会自动执行,需要主动提交任务后才会真正的创建Connector。创建任务所使用的API可在CDL常用业务API查阅。
  • CDL不支持抓取名称中包含$符号的表。
Job的创建参数的固定格式如下,需要根据实际情况填写的参数请参考接口入参
{
"job_type": "CDL_JOB", //job类型,目前只支持CDL_JOB这一种
"name": "CDCMRSPGSQLJOB", //job名称
"description":"CDC MRS postgres Job", //job描述
"from-link-name": "postgresMRS",  //数据源Link
"to-link-name": "HDFSPOSTGRESMRSConnection", //目标源Link
"from-config-values": {   
    //Source Connector的配置,参考接口入参章节相关内容
    {"name" : "topic.table.mapping", "value" : "[{\"topicName\": \"perf_test1\",\"tableName\": \"TESTMYSQL10\"},{\"topicName\": \"perf_test1\",\"tableName\": \"TESTMYSQL11\"}]"},//topic mapping的配置,设置表和topic对应关系,指定某个表的数据发送到指定的topic.
},
"to-config-values": {  
    //Sink Connector的配置,参考接口入参章节相关内容
    {"name" : "topics", "value" : "kris_topic_t1,perf_test1,perf_test1"},//指定sink connector消费的topic集合
},
"job-config-values": {
    "inputs": [
        {"name" : "global.topic", "value" : "cdcmrspgsqltopic"} //存储抓取数据的topic
    ]
}

所有的CDL任务都需遵循上述创建步骤。本章节仅以MySQL到Kafka的数据抓取路径为例,其他路径可以通过CDL常用业务API章节获取具体的参数来组合。

前提条件

  • MySQL已开启Bin Log 。
  • 已上传MySQL的驱动jar文件到CDL所有节点安装目录的dbDriver文件夹中,请注意文件权限。

操作步骤

  1. 在命令行输入截图中的命令验证MySQL Link,单击“Send”后,显示“SUCCESS”则表示验证成功。

  2. 参考如下截图中的命令创建MySQL Link。

  3. 在命令行输入截图中的命令验证Kafka Link,单击“Send”后,显示“SUCCESS”则表示验证成功。

  4. 参考如下截图中的命令创建Kafka Link。

  5. 参考如下截图中的命令创建Job。

  6. 参考如下截图中的命令提交Job。

  7. Job提交成功之后,即可以进行数据抓取,操作对应数据库中的表,观察topic是否有数据。