DolphinScheduler日志乱码、worker日志太多磁盘报警、版本更新导致不兼容怎么办?

作者 | 刘宇星

本文作者总结了在使用Apache DolphinScheduler过程中遇见过的常见问题及其解决方案,包括日志出现乱码、worker日志太多磁盘报警、版本更新导致不兼容问题等,快来看看有没有困扰你想要的答案吧!

  1. DolphinScheduler集群环境有多台worker(worker1, worker2, worker3),多个任务节点串行执行时,因为worker在不同服务器上,执行调度任务需要的文件需要每个worker上传非常麻烦/后面执行的任务读取不到前面任务执行后生成的文件/数据,怎么办?

可以在worker之间配置共享目录,如NFS,具体配置方式参考 https://blog.csdn.net/Dark_Tk/article/details/114100517。

或者配置worker组,只包含一个worker1,指定运行该工作流的worker组。

  1. 用shell节点执行shell脚本时,中间某个命令执行报错但没有中断退出,而是继续执行,最后一行命令执行成功后整个节点的执行状态也是成功,导致节点任务状态与预期不符怎么办?

在当前脚本第一行加上

shell 复制代码
set -xeuo pipefail

后,脚本中的命令执行报错后会立即退出(注意,该命令只对当前bash环境生效且无法继承,对执行脚本的子环境不生效)。

  1. 日志出现乱码怎么办?

DolphinScheduler添加启动参数 -Dfile.encoding=utf-8 执行echo $LANG检查系统编码是否为 zh_CN.UTF-8 ,如不是则修改LANG环境变量为该值。

  1. DolphinSchedulr worker的日志太多太大了,磁盘经常警告空间不足,怎样配置实现自动清理日志?

在每个服务的 conf 目录下都有logback-spring.xml 可以配置日志清理策略,根据需要自行配置。

xml 复制代码
<configuration>
 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <!--单个日志文件的最大体积-->
            <maxFileSize>100MB</maxFileSize>
            <!--日志保留时长 30天-->
            <maxHistory>30</maxHistory>
            <!-- 所有归档日志文件的总大小 -->
            <totalSizeCap>20GB</totalSizeCap>
            <!-- 是否在应用启动的时候删除历史日志 -->
            <cleanHistoryOnStart>true</cleanHistoryOnStart>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>
  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
  <configuration>
  1. DolphinScheduler任务插件太复杂/不会用/版本更新导致潜在的不兼容问题,怎么处理?

任务插件的使用可以查看官方文档 https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/功能介绍_menu/任务类型_menu

推荐使用shell替代其他任务节点类型,其他类型的任务插件本质上也是在执行shell或有等效的命令行,当然这要求开发人员对相关任务命令行的使用也提出了更高的要求,好处是用shell更灵活,更解耦和,自行权衡利弊使用。

  1. 插件里的内容不方便做版本对比,怎么处理?

建议针对业务内容维护单独的git仓库,更方便做版本对比和留痕。

本文由 白鲸开源科技 提供发布支持!

相关推荐
其实防守也摸鱼1 小时前
个人学习 Pwn 思路:从基础到漏洞利用的进阶路径
大数据·前端·人工智能·chrome·算法·安全·网络安全
美林数据Tempodata2 小时前
高职大数据技术专业升级的六个落地样本:从产业链需求库到实训室数据链路
大数据·人工智能·数字化转型·产教融合·ai教育
跨境卫士苏苏3 小时前
TikTokShop关联账户认定指引更新跨境代运营团队需要注意哪些管理责任
大数据·人工智能·市场营销·跨境电商·营销策略
迅易科技4 小时前
数据质量治理:从异常告警走向自动化根因诊断
大数据
组工部管理能手李哥4 小时前
一次政务知识库体验:AI回答之外,我更在意那行引用来源
大数据·人工智能·大模型·政务
GrowingIO技术社区5 小时前
SaaS与私有化部署怎么比较?责任、集成与成本
大数据·数据挖掘·产品
GrowingIO技术社区5 小时前
CDP项目如何评估?从业务问题到能力测试
大数据·数据分析
m0_715674435 小时前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
GrowingIO技术社区6 小时前
多端用户身份怎么统一?OneID规则与验收清单
大数据·数据挖掘·数据分析
躺柒6 小时前
读数据安全架构设计与实践20安全政策文件体系(上)
大数据·人工智能·安全·数据安全·安全架构·安全体系