当前位置: 首页 > news >正文

Dolphinscheduler3.2.1运行Java Jar路径重复的BUG修复问题

由于路径重复导致无法正确读取到Jar

[INFO] 2025-04-13 06:14:57.975 +0000 - Final Shell file is: 
[INFO] 2025-04-13 06:14:57.975 +0000 - ****************************** Script Content *****************************************************************
[INFO] 2025-04-13 06:14:57.976 +0000 - #!/bin/bash
BASEDIR=$(cd `dirname $0`; pwd)
cd $BASEDIR
${JAVA_HOME}/bin/java -classpath .:/tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036:/tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036//tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036/game-utils-1.0-SNAPSHOT.jar -jar /tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036//tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036/game-utils-1.0-SNAPSHOT.jar  
[INFO] 2025-04-13 06:14:57.976 +0000 - ****************************** Script Content *****************************************************************
[INFO] 2025-04-13 06:14:57.976 +0000 - Executing shell command : sudo -u hadoop -i /tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036/26335_246036.sh
[INFO] 2025-04-13 06:14:57.978 +0000 - process start, process id is: 1414860
[INFO] 2025-04-13 06:14:58.978 +0000 -  -> 
	Error: Unable to access jarfile /tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036//tmp/dolphinscheduler/exec/process/hadoop/15123518621664/16374306006816_3/26335/246036/game-utils-1.0-SNAPSHOT.jar

解决办法:修改源码重新编译Dolphinscheduler3.2.1,替换dolphinscheduler-task-api-3.2.1.jar

package org.apache.dolphinscheduler.plugin.task.api.shell

//BaseLinuxShellInterceptorBuilder类的 

private String shellBody() {
        if (CollectionUtils.isEmpty(scripts)) {
            return StringUtils.EMPTY;
        }
        String scriptBody = scripts
                .stream()
                .collect(Collectors.joining(System.lineSeparator()));
        //新增去除重复路径
        if(scriptBody.contains(".jar")){
            log.info("确保去除重复路径");
            scriptBody = scriptBody.replace(shellDirectory+"//","/");
        }
        scriptBody = scriptBody.replaceAll("\\r\\n", System.lineSeparator());
        return ParameterUtils.convertParameterPlaceholders(scriptBody, propertyMap);
    }

替换重启就正常了

相关文章:

  • MySQL 用 limit 影响性能的优化方案
  • 深入学习OpenCV:第一章简介
  • (二十二)安卓开发中的数据存储之SQLite简单使用
  • 《轨道力学导论》——第一讲:轨道力学概述
  • 案例驱动的 IT 团队管理:创新与突破之路: 第四章 危机应对:从风险预见到创新破局-4.1.2债务评估模型与优先级排序
  • 阻塞与非阻塞等待非阻塞轮询
  • 代码,Java Maven项目打包遇到的环境问题
  • 针对OPPO A5(PBAM00)在锁屏界面屏幕无法滑动的问题.
  • STM32 HAL库 HC-05蓝牙通信实现
  • 《嵌入式系统原理》一些题目
  • Mysql5.7配置文件
  • StickyNotes,简单便签超实用
  • 变点分组法是一种时序数据处理与分段分析的方法
  • 聊聊Spring AI的Prompt
  • 20250414| AI:RAG多路召回和融合重排序技术
  • Android Studio 在 Windows 上的完整安装与使用指南
  • TreeMap和HashMap的区别
  • CST1020.基于Spring Boot+Vue汽车租赁管理系统
  • Neo4j GDS-10-neo4j GDS 库中相似度算法介绍
  • 自用:在使用SpringBoot做学生信息管理系统时遇到的问题
  • 受贿3501万余元,中石油原董事长王宜林一审被判13年
  • 香港根据《维护国家安全条例》订立附属法例
  • 周启鸣加盟同济大学,曾任香港浸会大学深圳研究院院长
  • 小米SU7 Ultra风波升级:数百名车主要求退车,车主喊话雷军“保持真诚”
  • 工人日报评规范隐藏式车门把手:科技美学须将安全置顶
  • 张笑宇:物质极大丰富之后,我们该怎么办?