运行任务之前解压缩输入文件

时间:2019-04-15 02:28:33

标签: azure-batch

我希望能够在运行任务之前解压缩输入文件,以减少批处理过程中的数据传输。为此,我在JobPreparationTask中添加了以下命令行:

CommandLine =“ / bin / bash -c'DEBIAN_FRONTEND =非交互式apt-get install -y解压缩;解压缩$ AZ_BATCH_TASK_WORKING_DIR // myInput.zip'”

但是,没有查看我的文件( job / task / wd / myInput.zip )所在的任务工作目录,而是查看了工作准备文件夹,但出现以下错误:< / p>

“无法找到或打开/mnt/batch/tasks/workitems/myJob/job-1/jobpreparation/wd//myInput.zip”

我尝试使用其他环境路径,但总是会遇到类似的错误。 如何访问作业/任​​务/ WD解压缩文件?

1 个答案:

答案 0 :(得分:2)

我认为您使用的env var是错误的,下面是一些建议以及对您当前方式的回答:

  • 在这种情况下,我假设您的zip文件是resourceFiles的一部分?但是在什么情况下?
  • 在此处引用resource个文件:https://docs.microsoft.com/en-us/azure/batch/resource-files
  • 尤其是它说:All types of tasks support resource files: tasks, start tasks, job preparation tasks, job release tasks, etc的那部分,那么在什么情况下您的资源文件在什么时候上载?

  • 如果在JobPrep上载,并且当前任务引用了JobPrep,则可能可以解释此行为。

  • 如果Zip是任务级别上资源文件的一部分,则cmdline应该是这些任务的一部分,并且env var应该在当前上下文中使用。
  • 否则:请确保zipjobPrep的resroucefiles的一部分,并相应地使用环境变量。

  • 关于env var,为什么不使用:AZ_BATCH_JOB_PREP_WORKING_DIRAZ_BATCH_JOB_PREP_DIR请参阅此处https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables#environment-variables,它将允许您访问作业准备目录级别。

额外

想法共享只是为了让您意识到并牢记,只有在满足您的需要时才使用。 (仅当您已阅读本文并且确实符合您的设计方案时才使用它,否则请忽略,以上内容可以解决您的问题):)

  

应用程序包是包含该应用程序的.zip文件   运行任务所需的二进制文件和支持文件   应用程序。每个应用程序包代表一个特定的   该应用程序的版本。

     

您可以在池和任务级别指定应用程序包。

希望这符合您的需求。 :)谢谢