虚拟步骤在作业中不起作用

Dummy step is not work in Job

每次转换都会在一个文件夹中创建一个 csv 文件,我想在转换完成后上传所有这些文件。我添加了一个 Dummy,但该过程没有按我的预期进行。每个转换将执行 Hadoop Copy Files 步骤。为什么?我该如何设计流程?谢谢

首先,如果可能,请尝试并行启动 .ktr 文件右键单击开始步骤 > 单击并行启动下一个条目 )。这将确保所有 ktr 并行启动。

其次,您可以根据自己的可行性选择以下任一步骤(而不是虚拟步骤):

  1. "检查文件是否存在" 步骤:在进入 Hadoop 步骤之前,您可以先检查一下是否所有文件都已正确创建,然后继续执行.
  2. "等待" 步骤:您可以花一些时间等待所有步骤完成,然后再转到下一个条目。我不建议这样做,因为编写 csv 文件的时间可能会有所不同,除非您完全确定某个时间。
  3. "评估文件指标" :在继续之前检查文件数。在你的情况下,检查文件数是否为 9。

我只是想在将数据复制到 HDFS 之前对文件进行某种检查。

希望对您有所帮助:)

您不能像现在这样加入转换。

每次转换成功后,都会进行虚拟步骤,因此每次转换都会调用它。

如果你想等到最后一个转换完成到 运行 只有一次 Hadoop 复制文件步骤你需要做两件事之一:

  1. 运行 序列中的转换,其中每个 ktr 将在前一个 ktr 成功时调用(较慢)

  2. 正如另一个答案中所建议的那样,并行启动 KTR,但有一个警告:它们需要从子作业中调用。思路如下:

您的主要作业有一个开始,调用一个子作业,成功后,调用 Hadoop 复制文件步骤。

您的子作业有一个起点,所有转换都从这个起点开始在不同的流程中调用。您使用 "Launch next entries in parallel" 所以所有都立即启动。

子作业将保持 运行ning 直到最后一个转换完成,然后流程才会传递到 Hadoop 复制文件步骤,该步骤只会启动一次。