DolphinScheduler 3.3.2 如何调用 DataX 3.0 + SeaTunnel 2.3.12?附 Demo演示!

DolphinScheduler调用DataX和SeaTunnel教程。


点亮⭐️  

https://github.com/apache/DolphinScheduler



点击蓝字 关注我们



一、海豚调度

3.3.2的使用


  • 概念解释:DAG:有向无环图,有顺序,但是不会形成环的图表。
  • 海豚调度的API接口:http://YOURID:12345/dolphinscheduler/swagger-ui/index.html
  • 需要先自行安装DataX和SeaTunnel
    • DataX见:https://www.cnblogs.com/kakarotto-chen/p/19262463
    • SeaTunnel见:https://www.cnblogs.com/kakarotto-chen/p/19281093

1、安全中心-Worker分组管理

image
  • 创建Worker分组管理

  • image

2、安全中心-环境管理

在线配置 worker 运行环境,一个 worker 可以指定多个环境,每个环境等价于 dolphinscheduler_env.sh 文件.

默认环境为dolphinscheduler_env.sh文件.

在任务执行时,可以将任务分配给指定 worker 分组,根据 worker 分组选择对应的环境,最终由该组中的 worker 节点执行环境后执行该任务.

创建/更新环境

环境配置等价于dolphinscheduler_env.sh文件内配置

image

使用环境

在工作流定义中创建任务节点选择 worker 分组和 worker 分组对应的环境,任务执行时 worker 会先执行环境在执行任务。

image

注意: 当无法在任务定义或工作流运行对话框中使用你想要使用的环境时,请检查您已经选择worker,并且您要使用的环境已经关联到您选择的worker中

  • 创建环境
    • 需要关联worker分组
image

3、项目管理(创建项目)

image
  • 关联workGroup
image
image

4、工作流定义:见二、三点

二、海豚调度

+ Datax 3.0 DEMO

1、创建项目、环境变量

  • 创建项目:见一、3、

  • 环境变量

exportJAVA_HOME
=/……/jdk/jdk1.8.0_202
exportPATH
=/……/jdk/jdk1.8.0_202/bin:$PATH
exportPYTHON_LAUNCHER
=python3
exportDATAX_LAUNCHER
=/……/datax/bin/datax.py
image

2、进入项目-工作流定义

image
  • 编辑datax的节点
image
  • 上图的后半截
    • 写入datax的job.json
image
{
"job":{
"content":[
{
"reader":{
"name":"mysqlreader",
"parameter":{
"column":[
"id"
,
"name"
,
"decimal_f"
,
"phone_number"
,
"age"
,
"create_time"
,
"description"
,
"address"
],
"connection":[
{
"jdbcUrl":[
"jdbc:mysql://ip:port/cs1"
],
"table":[
"t_8_100w"
]
}
],
"password":"zysoft",
"username":"root",
"where":""
}
},
"writer":{
"name":"mysqlwriter",
"parameter":{
"column":[
"id"
,
"name"
,
"decimal_f"
,
"phone_number"
,
"age"
,
"create_time"
,
"description"
,
"address"
],
"connection":[
{
"jdbcUrl":"jdbc:mysql://ip:port/cs2",
"table":[
"t_8_100w_import_dolphin_dx"
]
}
],
"password":"zysoft",
"preSql":[

],
"session":[

],
"username":"root",
"writeMode":"insert"
}
}
}
],
"setting":{
"speed":{
"channel":"5"
}
}
}
}
  • 配置完毕,保存。然后上线
image

3、运行

  • 环境变量的配置很重要。不然跑不了任务
image
  • 查看任务、日志
image
  • 点击“甘特图”,查看简单的执行日志
image
  • 最后查看dolphin的日志、或者目标表是否抽取成功
image
image


三、海豚调度

+SeaTunnel DEMO

1、创建项目、环境变量

  • 创建项目:见一、3、

  • 环境变量

# 1. SeaTunnel安装主目录 (必须)
export
 SEATUNNEL_HOME=/……/seatunnel/seatunnel-2.3.12

# 2. Java环境 (必须,需与SeaTunnel版本兼容)
export
 JAVA_HOME=/……/jdk/jdk1.8.0_202

# 3. 将SeaTunnel的执行命令加入系统路径 (建议)
export
 PATH=$JAVA_HOME/bin:$SEATUNNEL_HOME/bin:$PATH

# 4. 自定义Connector目录 (可选,如需使用额外插件)
# export SEATUNNEL_CONNECTOR_HOME=$SEATUNNEL_HOME/connectors

# 5. 可根据需要调整JVM参数 (可选)
# export SEATUNNEL_JAVA_OPTS="-Xms4G -Xmx4G"
image

2、进入项目-工作流定义

image
  • 编辑seatunnel的节点
image
image
  • seatunnel的conf
# demo9-mysql2mysql-dolphin-sea.conf
env
 {
execution.parallelism = 16
job.mode = "BATCH"
}

source
 {
Jdbc {
url = "jdbc:mysql://ip:port/cs1"
driver = "com.mysql.cj.jdbc.Driver"
user = "root"
password = "zysoft"
query = "select * from t_8_100w"

# 并行读取配置
# 数值型主键字段
partition_column = "id"
# 分片数,匹配并行度
partition_num = 16
# 批量提交数
fetch_size = 5000
# partition_lower_bound = 1     # 可选:起始ID
# partition_upper_bound = 1000000 # 可选:结束ID

# 连接参数
# 连接超时时间300ms
connection_check_timeout_sec = 300
properties = {
useUnicode = true
characterEncoding = "utf8"
serverTimezone = "Asia/Shanghai"
# 使用游标提高大结果集性能
useCursorFetch = "true"
# 每次获取行数
defaultFetchSize = "5000"
}
}
}

transform {}

sink {
jdbc {
url = "jdbc:mysql://ip:port/cs2"
driver = "com.mysql.cj.jdbc.Driver"
user = "root"
password = "zysoft"
# query = "insert into test_table(name,age) values(?,?)"
# 生成自动插入sql。如果目标库没有表,也会自动建表
generate_sink_sql = true
# generate_sink_sql=true。所以:database必须要
database = cs2
table = "t_8_100w_import_dolphin_sea"

# 批量写入条数
batch_size = 5000
# 批次提交间隔
batch_interval_ms = 500
# 重试次数
max_retries = 3

# 连接参数
# 连接超时时间300ms
connection_check_timeout_sec = 300
properties = {
useUnicode = true
characterEncoding = "utf8"
serverTimezone = "Asia/Shanghai"

# 关键:启用批量重写
rewriteBatchedStatements = "true"
# 启用压缩
useCompression = "true"
# 禁用服务端预处理
useServerPrepStmts = "false"
}
}
}
  • 运行、查看日志同datax

  • 最后查看dolphin的日志、或者目标表是否抽取成功

image
image

注:SeaTunnel 为2.3.12 版本。




END






用户案例


Cisco Webex天翼云Zoom网易邮箱 每日互动 惠生工程作业帮 博世智驾蔚来汽车 长城汽车集度长安汽车思科网讯食行生鲜联通医疗联想新网银行兴业证券唯品富邦消费金融 自如有赞伊利当贝大数据珍岛集团传智教育BigoYY直播  拈花云科太美医疗深圳某智能制造企业



迁移实战


Azkaban   Ooize(当贝迁移案例)airflow (有赞迁移案例)Air2phin(迁移工具)Airflow



最新发版消息



Apache DolphinScheduler 3.4.1 发布,新增任务分发超时检测



加入社区


关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org(向邮箱发送任意内容,收到邮件后回复同意订阅即可)
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

‍代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler



你的好友小海豚拍了拍你

并请你帮她点一下“分享”