假的步骤在Job中不起作用

时间:2015-02-05 14:38:48

标签: pentaho kettle

每个转换都会在文件夹中创建一个csv文件,我想在转换完成后上传所有这些文件。我添加了一个Dummy,但这个过程并没有像我期望的那样工作。每个转换都将执行Hadoop Copy Files步骤。为什么?我怎么设计流量?感谢。

enter image description here

2 个答案:

答案 0 :(得分:2)

首先,如果可能的话,尝试并行启动.ktr文件右键单击START Step>点击并行启动下一个条目。这将确保所有ktr并行发射。

其次,您可以选择以下任一步骤,具体取决于您的可行性(而非虚拟步骤)

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

    希望有所帮助:)

答案 1 :(得分:1)

你不能像你那样加入转换。

每次转化,一旦成功,将遵循虚拟步骤,因此它将被要求进行每次转换。

如果您想等到最后一次转换完成后只运行一次Hadoop复制文件步骤,您需要执行以下两项操作之一:

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

  2. 正如另一个答案中所建议的,并行启动KTR,但有一点需要注意:它们需要从子作业中调用。以下是这个想法:

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

    您的子作业有一个开始,从中可以在不同的流中调用所有转换。您使用"并行启动下一个条目"所有这些都是立刻发布的。

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