Pentaho 从两个不同的脚本运行相同的Ketter作业问题

Pentaho 从两个不同的脚本运行相同的Ketter作业问题,pentaho,business-intelligence,kettle,Pentaho,Business Intelligence,Kettle,是否可以同时运行一个水壶作业多次 我正在尝试的 假设我们同时运行这个脚本两次 sh kitchen.sh -rep="development" -dir="job_directory" -job="job1" 如果我一次只运行一次,数据流就非常好了 但是,当我同时运行此命令两次时,它会抛出如下错误: ERROR 09-01 13:34:13,295 - job1 - Error in step, asking everyone to stop because of: ERROR 09-01 1

是否可以同时运行一个水壶作业多次

我正在尝试的

假设我们同时运行这个脚本两次

sh kitchen.sh -rep="development" -dir="job_directory" -job="job1"
如果我一次只运行一次,数据流就非常好了

但是,当我同时运行此命令两次时,它会抛出如下错误:

ERROR 09-01 13:34:13,295 - job1 - Error in step, asking everyone to stop because of:
ERROR 09-01 13:34:13,295 - job1 - org.pentaho.di.core.exception.KettleException: 
java.lang.Exception: Return code 1 received from statement : mkfifo /tmp/fiforeg
Return code 1 received from statement : mkfifo /tmp/fiforeg

    at org.pentaho.di.trans.steps.mysqlbulkloader.MySQLBulkLoader.execute(MySQLBulkLoader.java:140)
    at org.pentaho.di.trans.steps.mysqlbulkloader.MySQLBulkLoader.processRow(MySQLBulkLoader.java:267)
    at org.pentaho.di.trans.step.RunThread.run(RunThread.java:50)
    at java.lang.Thread.run(Thread.java:679)
Caused by: java.lang.Exception: Return code 1 received from statement : mkfifo /tmp/fiforeg
    at org.pentaho.di.trans.steps.mysqlbulkloader.MySQLBulkLoader.execute(MySQLBulkLoader.java:95)
    ... 3 more
同时运行两次作业非常重要。为此,我可以复制每个作业,并在某个时间点运行原始作业和复制作业。但是,从长远来看,这不是一个好办法

问题:

  • Pentaho没有维护线程吗

  • 我是否缺少一些选项,或者是否可以启用一些选项使pentaho为不同的作业实例创建不同的线程


  • 当然,水壶可以保持螺纹。事实上,他们中的很多人。看起来问题在于MySQL批量加载程序使用FIFO。您有两个名为/tmp/fiforeg的FIFO实例。第一个运行的实例创建的FIFO很好;然后,第二个实例尝试创建另一个具有相同名称的实例,这将导致错误

    在作业开始时,需要为该实例生成唯一的FIFO名称。我认为可以通过在作业开始时添加一个转换来实现这一点,该转换使用
    生成随机值
    步骤生成随机字符串,甚至UUID,并通过
    设置变量
    步骤将其存储在作业中的变量中

    然后可以在MySQL批量加载程序的“Fifo文件”字段中使用此变量

    希望对你有用。我不使用MySQL,所以我无法确定