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仓库,更方便做版本对比和留痕。

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

相关推荐
Edingbrugh.南空6 小时前
Flink自定义函数
大数据·flink
gaosushexiangji7 小时前
利用sCMOS科学相机测量激光散射强度
大数据·人工智能·数码相机·计算机视觉
无级程序员9 小时前
大数据平台之ranger与ldap集成,同步用户和组
大数据·hadoop
lifallen10 小时前
Paimon 原子提交实现
java·大数据·数据结构·数据库·后端·算法
TDengine (老段)11 小时前
TDengine 数据库建模最佳实践
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
张先shen11 小时前
Elasticsearch RESTful API入门:全文搜索实战(Java版)
java·大数据·elasticsearch·搜索引擎·全文检索·restful
Elastic 中国社区官方博客11 小时前
Elasticsearch 字符串包含子字符串:高级查询技巧
大数据·数据库·elasticsearch·搜索引擎·全文检索·lucene
张先shen12 小时前
Elasticsearch RESTful API入门:全文搜索实战
java·大数据·elasticsearch·搜索引擎·全文检索·restful
天翼云开发者社区12 小时前
Doris-HDFS LOAD常见问题汇总(二)
大数据·doris
简婷1870199877513 小时前
源网荷储 + 零碳园区:一场关于能源与未来的双向奔赴
大数据·人工智能·能源