dolphinscheduler在docker中执行任务上传的附件下载不到怎么回事呢?

用的本地存储, 这个是配置:
image.png

这是上传的附件:
image.png

这是任务执行的日志:

[LOG-PATH]: /opt/dolphinscheduler/logs/20231013/11209648461824_10-8-19.log, [HOST]:  Host{address='dolphinscheduler-worker-01:1234', ip='dolphinscheduler-worker-01', port=1234}
[INFO] 2023-10-13 02:50:03.012 +0000 - Begin to pulling task
[INFO] 2023-10-13 02:50:03.018 +0000 - Begin to initialize task
[INFO] 2023-10-13 02:50:03.019 +0000 - Set task startTime: Fri Oct 13 02:50:03 UTC 2023
[INFO] 2023-10-13 02:50:03.020 +0000 - Set task envFile: /opt/dolphinscheduler/conf/dolphinscheduler_env.sh
[INFO] 2023-10-13 02:50:03.020 +0000 - Set task appId: 8_19
[INFO] 2023-10-13 02:50:03.022 +0000 - End initialize task
[INFO] 2023-10-13 02:50:03.026 +0000 - Set task status to TaskExecutionStatus{code=1, desc='running'}
[INFO] 2023-10-13 02:50:03.027 +0000 - TenantCode:root check success
[INFO] 2023-10-13 02:50:03.028 +0000 - ProcessExecDir:/tmp/dolphinscheduler/exec/process/root/10999671003776/11209648461824_10/8/19 check success
[INFO] 2023-10-13 02:50:03.033 +0000 - get resource file from path:/tmp/dolphinscheduler/root/resources/jar/kafka-rest-1.0.jar
[ERROR] 2023-10-13 02:50:03.035 +0000 - Task execute failed, due to meet an exception
org.apache.dolphinscheduler.plugin.task.api.TaskException: Download resource file: (/jar/kafka-rest-1.0.jar,root) error
    at org.apache.dolphinscheduler.server.worker.utils.TaskExecutionCheckerUtils.downloadResourcesIfNeeded(TaskExecutionCheckerUtils.java:136)
    at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecuteRunnable.beforeExecute(WorkerTaskExecuteRunnable.java:216)
    at org.apache.dolphinscheduler.server.worker.runner.WorkerTaskExecuteRunnable.run(WorkerTaskExecuteRunnable.java:170)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
    at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:74)
    at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
    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:750)
Caused by: java.io.FileNotFoundException: File /tmp/dolphinscheduler/root/resources/jar/kafka-rest-1.0.jar does not exist
    at org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:668)
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:989)
    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:658)
    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:458)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:483)
    at org.apache.dolphinscheduler.service.storage.impl.HadoopUtils.copyHdfsToLocal(HadoopUtils.java:388)
    at org.apache.dolphinscheduler.service.storage.impl.HadoopUtils.download(HadoopUtils.java:309)
    at org.apache.dolphinscheduler.server.worker.utils.TaskExecutionCheckerUtils.downloadResourcesIfNeeded(TaskExecutionCheckerUtils.java:127)
    ... 9 common frames omitted
[INFO] 2023-10-13 02:50:03.037 +0000 - Get a exception when execute the task, will send the task execute result to master, the current task execute result is TaskExecutionStatus{code=6, desc='failure'}

在容器中也能找到这个上传的附件:
image.png

这是怎么回事呢?

阅读 1.5k
avatarAI BotBETA

根据你提供的日志和配置,问题似乎出在从Hadoop下载文件到本地文件系统时。错误信息显示:“FileNotFoundException: File /tmp/dolphinscheduler/root/resources/jar/kafka-rest-1.0.jar does not exist”。也就是说,程序试图下载一个不存在的文件。

这可能有以下几种原因:

  1. 路径错误:检查给定的路径是否正确。确保在Hadoop中文件确实存在于给定的路径,并且路径在本地文件系统中也应该是可访问的。
  2. 权限问题:可能是权限不足导致无法访问文件。检查DolphinScheduler是否具有足够的权限来访问Hadoop文件系统和本地文件系统。
  3. Hadoop和DolphinScheduler的版本或配置兼容性问题:确保你的Hadoop和DolphinScheduler版本或配置是兼容的。
  4. 任务执行顺序:确认在执行任务之前,文件是否已经上传到Hadoop,并且任务是否已经正确配置以从Hadoop下载文件。

你可以按照以下步骤尝试解决这个问题:

  1. 检查路径:在Hadoop上检查文件是否存在,路径是否正确。
hadoop fs -ls /path/to/your/file
  1. 检查权限:确保DolphinScheduler有足够的权限来访问Hadoop和本地文件系统。你可能需要调整Hadoop和DolphinScheduler的权限设置。
  2. 查看DolphinScheduler配置:检查DolphinScheduler的配置,确保所有相关的设置都正确,包括Hadoop的设置和任务设置。
  3. 重新上传和重新执行任务:如果上述步骤都没有问题,尝试重新上传文件到Hadoop并重新执行任务。

如果以上步骤都不能解决问题,你可能需要查看更多的日志信息,或者考虑寻求更专业的技术支持。

1 个回答

woker和api要在同一个服务器上, 目录要制定到同意路径, 不然就下不到, 或者配置文件服务器

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进