Dinky与DolphinScheduler集成实践指南

Dinky与DolphinScheduler集成实践指南

dinky Dinky is an out-of-the-box, one-stop, real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake. dinky 项目地址: https://gitcode.com/gh_mirrors/di/dinky

前言

在现代大数据处理场景中,任务调度系统是不可或缺的基础设施。本文将详细介绍如何将Dinky与DolphinScheduler进行深度集成,实现Flink任务的自动化调度管理。通过这种集成,用户可以充分利用Dinky强大的Flink开发能力和DolphinScheduler优秀的调度能力,构建高效的数据处理流水线。

环境准备

系统要求

  • DolphinScheduler:3.2.1及以上版本
  • Dinky:1.0.0及以上版本
  • Docker:19.03及以上版本(用于快速部署DolphinScheduler)

DolphinScheduler部署

对于快速体验环境,推荐使用Docker方式部署DolphinScheduler:

export DOLPHINSCHEDULER_VERSION=3.2.1
docker run --name dolphinscheduler-standalone-server \
           -p 12345:12345 \
           -p 25333:25333 \
           -d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"

部署完成后,通过浏览器访问http://<服务器IP>:12345/dolphinscheduler/ui/login,使用默认账号admin/dolphinscheduler123登录。

基础配置

  1. 创建租户:在"安全中心"→"租户管理"中创建新租户
  2. 用户管理:确保操作Dinky的用户已加入对应租户
  3. 生成Token:在"令牌管理"中创建API访问令牌,注意设置合理的过期时间

Dinky配置

服务启动

假设Dinky安装在/opt/dinky-1.0.0目录:

cd /opt/dinky-1.0.0
./auto.sh start 1.16

访问http://<服务器IP>:8888,使用默认账号admin/admin登录。

调度系统集成配置

  1. 进入"配置中心"→"全局配置"
  2. 选择"DolphinScheduler配置"标签页
  3. 填写以下关键配置项:
    • 服务地址http://<DS服务器IP>:12345/dolphinscheduler
    • API Token:先前生成的Token
    • 项目名称:默认为Dinky,可按需修改
    • 启用开关:设置为"是"

任务开发与调度实践

FlinkSQL任务示例

以下是一个完整的FlinkSQL任务示例,包含数据生成和窗口计算:

-- 检查点配置
set execution.checkpointing.checkpoints-after-tasks-finish.enabled=true;
SET pipeline.operator-chaining=false;
set state.backend.type=rocksdb;
set execution.checkpointing.interval=8000;
set state.checkpoints.num-retained=10;
set cluster.evenly-spread-out-slots=true;

-- 创建数据源表
DROP TABLE IF EXISTS source_table3;
CREATE TABLE IF NOT EXISTS
  source_table3 (
    `order_id` BIGINT,
    `product` BIGINT,
    `amount` BIGINT,
    `order_time` as CAST(CURRENT_TIMESTAMP AS TIMESTAMP(3)), 
    WATERMARK FOR order_time AS order_time - INTERVAL '2' SECOND
  )
WITH
  (
    'connector' = 'datagen',
    'rows-per-second' = '1',
    'fields.order_id.min' = '1',
    'fields.order_id.max' = '2',
    'fields.amount.min' = '1',
    'fields.amount.max' = '10',
    'fields.product.min' = '1',
    'fields.product.max' = '2'
  );

-- 创建结果表
DROP TABLE IF EXISTS sink_table5;
CREATE TABLE IF NOT EXISTS
  sink_table5 (
    `product` BIGINT,
    `amount` BIGINT,
    `order_time` TIMESTAMP(3),
    `one_minute_sum` BIGINT
  )
WITH
  ('connector' = 'print');

-- 执行窗口计算
INSERT INTO
  sink_table5
SELECT
  product,
  amount,
  order_time,
  SUM(amount) OVER (
    PARTITION BY
      product
    ORDER BY
      order_time
      RANGE BETWEEN INTERVAL '1' MINUTE PRECEDING
      AND CURRENT ROW
  ) as one_minute_sum
FROM
  source_table3;

任务发布流程

  1. 任务创建:在Dinky数据开发界面创建FlinkSQL或FlinkJar任务
  2. 参数配置:设置执行模式、集群配置等关键参数
  3. 任务发布:必须发布任务才能推送到DolphinScheduler
  4. 依赖设置:合理配置任务间的依赖关系,避免循环依赖

调度管理

DolphinScheduler操作

  1. 在"Dinky"项目下的"工作流定义"中查看推送的任务
  2. 确认任务依赖关系是否正确建立
  3. 上线工作流并执行测试运行
  4. 配置定时调度策略(可选)

最佳实践建议

  1. 资源规划:根据任务复杂度合理设置DolphinScheduler的worker分组
  2. 参数调优:对于长时间运行的任务,适当增大checkpoint间隔
  3. 监控配置:建议配置任务失败告警机制
  4. 版本管理:保持Dinky和DolphinScheduler版本兼容性

常见问题排查

  1. 推送失败:检查Token是否过期,网络连通性是否正常
  2. 任务不执行:确认前置依赖任务是否已完成
  3. 资源不足:调整DolphinScheduler的worker资源配置
  4. 版本不兼容:确保使用支持的版本组合

结语

通过Dinky与DolphinScheduler的深度集成,开发者可以构建从开发到调度的完整Flink任务管理流水线。这种集成方案不仅提高了开发效率,还增强了任务管理的可靠性和可维护性,是大数据平台建设的重要实践模式。

dinky Dinky is an out-of-the-box, one-stop, real-time computing platform dedicated to the construction and practice of Unified Streaming & Batch and Unified Data Lake & Data Warehouse. Based on Apache Flink, Dinky provides the ability to connect many big data frameworks including OLAP and Data Lake. dinky 项目地址: https://gitcode.com/gh_mirrors/di/dinky

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

班歆韦Divine

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值