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
同时运行两次作业非常重要。为此,我可以复制每个作业,并在某个时间点运行原始作业和复制作业。但是,从长远来看,这不是一个好办法
问题:
当然,水壶可以保持螺纹。事实上,他们中的很多人。看起来问题在于MySQL批量加载程序使用FIFO。您有两个名为/tmp/fiforeg的FIFO实例。第一个运行的实例创建的FIFO很好;然后,第二个实例尝试创建另一个具有相同名称的实例,这将导致错误 在作业开始时,需要为该实例生成唯一的FIFO名称。我认为可以通过在作业开始时添加一个转换来实现这一点,该转换使用
生成随机值
步骤生成随机字符串,甚至UUID,并通过设置变量
步骤将其存储在作业中的变量中
然后可以在MySQL批量加载程序的“Fifo文件”字段中使用此变量
希望对你有用。我不使用MySQL,所以我无法确定