DolphinScheluer 冷门问题 error=2, No such file or directory
记录一个冷门问题,困扰了好久,这个问题属实偏
当我安装好DolphinScheluer后,创建租户并新建用户,新用户重新登录,新建项目管理,创建工作流,编写脚本如下
然后上线(未配置定时),运行
当我以为肯定可以的时候,运行失败了,报错如下
[ERROR] 2022-06-14 07:18:55.421 - [taskAppId=TASK-2-6-25]:[106] - shell task error
java.io.IOException: Cannot run program "sudo" (in directory "/opt/module/dolphinscheduler/workdata/exec/process/1/2/6/25"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor.buildProcess(AbstractCommandExecutor.java:156)
at org.apache.dolphinscheduler.server.worker.task.AbstractCommandExecutor.run(AbstractCommandExecutor.java:191)
at org.apache.dolphinscheduler.server.worker.task.shell.ShellTask.handle(ShellTask.java:101)
at org.apache.dolphinscheduler.server.worker.runner.TaskExecuteThread.run(TaskExecuteThread.java:139)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 9 common frames omitted
我以为是conf下的env里的jdk没配好,【我想简单了,想哭】,结果配好也没有解决问题,网上大家安装的都很顺利,没有遇到像我一样的问题【也可能是我没找到】,又重新过了遍所有配置文件,没有发现问题,只能扒源码了,我的问题主要在这里
从代码上看,是dolphinscheluer自身在指定目录创建这两个文件
读错误日志分析后,以为是海豚调度版本的问题,换了版本之后也还报同样的问题(我彻底懵了)
没办法,只能继续分析源码,创建文件之后,会执行如下命令
sudo su 用户名(登录用户) sh 2_6_25_node.sh
然后我建了一个测试脚本测一下命令,问题就找到了!!!当我执行
sudo su root (我用的root用户登录的)
给我报错
sudo command not found
我去,我部署的这几台机器的linux竟然没有配置sudo命令(这谁能想到,太难了)
安装sudo命令,为dolphinscheluer的所有工作机器都安装上
yum install -y sudo
然后重启dolphinscheluer就解决问题了(终于解决了!!!)
查看工作流任务实例如下