当前位置: 首页 > 知识库问答 >
问题:

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

督坚白
2023-10-15

用的本地存储, 这个是配置:
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 exceptionorg.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

这是怎么回事呢?

共有2个答案

孙夕
2023-10-15

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

柳均
2023-10-15

根据你提供的日志和配置,问题似乎出在从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并重新执行任务。

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

 类似资料:
  • DolphinScheduler和flink现在都安装在了docker中, 但是DolphinScheduler有这样一个配置, 该怎么写呢? DolphinScheduler和flink都在同一个服务器上的

  • 执行任务事件 function onTask(\swoole_server $server, $taskId, $workerId,$callBackObj); 在task_worker进程内被调用,可以用以下方法向task_worker进程投递新的任务 AsyncTaskManager::getInstance()->add(Runner::class); 当前的Task进程在调用onTask回

  • 比如说有个需求, 任务1执行完成了, 将数据存到数据库了, 然后立马要开启下一个任务, 获取所有的数据和其他表的数据进行清洗, 然后存到另一个表里 第一个任务是从kafka里获取的增量数据, 然后直接存到库里, flink执行起来就是source -> sink -> execute 这时候第一个任务完成了, 要开启第二个任务了, 需要从数据库里获取新的数据和其他表的数据进行清洗 source -

  • 我是Apache Flink的新手,所以我目前正在尝试做一些实验。我正在读Kafka的一个主题,然后在控制台上打印出来。打印大约100kkafka消息后,它抛出异常。日志输出如下。 我正在使用一个自定义类来扩展AbstractDeserializationSchema,以反序列化kafka记录值。我甚至尝试过在其中添加一些异常处理,但没有触发。 我使用Kafka的代码非常简单: 即使在异常之后,输

  • 首先,我读了corda关于使用附件的文档。然而,我仍然有问题的过程上传和下载附件。 我的任务是编写一个简单的cordapp,用于将文件从NodeA传输到NodeB。从NodeA shell上传一个zip文件后,我收到一个散列,然后将其包含在事务中。流动成功。然而,在NodeB中,我无法取回该文件。然后我尝试使用该散列从NodeA获取文件。但是,shell返回错误消息并表示InvalidInputS

  • 我刚刚读完Promises/A规范,偶然发现了术语microtask和macrotask:参见http://promisesaplus.com/#notes 我以前从未听说过这些术语,现在我很好奇会有什么区别? 我已经试图在网上找到一些信息,但我找到的只是w3.org档案馆的这篇文章(这篇文章没有向我解释其中的区别):http://lists.w3.org/Archives/Public/publ