【问题标题】:Pentaho Windows Task SchedulerPentaho Windows 任务计划程序
【发布时间】:2018-06-28 12:58:08
【问题描述】:

我正在尝试使用 .bat 文件安排作业。当我运行它时,它会卡在作业执行的开始。有谁知道我可以如何解决这个问题,以便我可以运行我的工作?

这和Java有什么关系吗?我没有变量 PENTAHO_JAVA_HOME。我只有 JAVA_HOME。不确定它是否与我的 kitchen.bat 文件有关。我只使用 Spoon.bat。

我认为这是我的 Kitchen.bat (.kjb) 的问题,因为如果我使用 Pan.bat (.ktr) 运行批处理文件,我的文件运行良好。

C:\Users\bxt0\Desktop>c:

C:\Users\bxt\Desktop>cd /d "C:\data-integration"

C:\data-integration>call Kitchen.bat 
  /file:C:\Users\bxt\Desktop\CCMStatsJob.
kjb "-param:TABLE_NAME=region" -logfile=C:\Users\bxt058y\Documents\Pentaho 
  Jobs\
    ccmjob.txt
DEBUG: Using JAVA_HOME
DEBUG: _PENTAHO_JAVA_HOME=C:\Program Files\Java\jre1.8.0_74
DEBUG: _PENTAHO_JAVA=C:\Program Files\Java\jre1.8.0_74\bin\java.exe

C:\data-integration>"C:\Program Files\Java\jre1.8.0_74\bin\java.exe"  "- 
Xms1024m
" "-Xmx2048m" "-XX:MaxPermSize=256m" "- 
   Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "
-Djava.library.path=libswt\win64" "-DKETTLE_HOME=" "-DKETTLE_REPOSITORY=" "- 
  DKET
TLE_USER=" "-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=" "- 
DKETTLE_LOG_SIZE_L
IMIT=" "-DKETTLE_JNDI_ROOT=" -jar launcher\pentaho-application-launcher- 
7.1.0.0-
12.jar -lib ..\libswt\win64  -main org.pentaho.di.kitchen.Kitchen -initialDir 
 "C
:\data-integration"\ /file:C:\Users\bxt058y\Desktop\CCMStatsJob.kjb "- 
 param:TABL
E_NAME=region" -logfile C:\Users\bxt058y\Documents\Pentaho Jobs\ccmjob.txt
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; 
 sup
port was removed in 8.0
log4j:ERROR Could not create an Appender. Reported error follows.
  java.lang.ClassCastException: org.apache.log4j.ConsoleAppender cannot be 
  cast to
   org.apache.log4j.Appender
    at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.ja
    va:248)
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurat
   or.java:176)
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfi
  gurator.java:191)
    at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOM
   Configurator.java:523)
    at org.apache.log4j.xml.DOMConfigurator.parseCategory(DOMConfigurator.ja
    va:436)
    at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1004)

    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
    :872)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
    :755)
    at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:8
   96)
    at org.pentaho.di.core.logging.log4j.Log4jLogging.applyLog4jConfiguratio
  n(Log4jLogging.java:81)
    at org.pentaho.di.core.logging.log4j.Log4jLogging.createLogger(Log4jLogg
    ing.java:89)
    at org.pentaho.di.core.logging.log4j.Log4jLogging.init(Log4jLogging.java
    :68)
    at org.pentaho.di.core.KettleClientEnvironment.initLogginPlugins(KettleC
    lientEnvironment.java:155)
    at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironm
    ent.java:118)
    at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironm
     ent.java:79)
    at org.pentaho.di.kitchen.Kitchen$1.call(Kitchen.java:91)
    at org.pentaho.di.kitchen.Kitchen$1.call(Kitchen.java:84)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    log4j:ERROR Could not create an Appender. Reported error follows.
   java.lang.ClassCastException: org.apache.log4j.ConsoleAppender cannot be 
   cast to
   org.apache.log4j.Appender
    at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.ja
    va:248)
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurat
    or.java:176)
    at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfi
   gurator.java:191)
    at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOM
    Configurator.java:523)
    at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:4
     92)
    at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:1006)

    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
    :872)
    at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java
    :755)
    at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:8
    96)
    at org.pentaho.di.core.logging.log4j.Log4jLogging.applyLog4jConfiguratio
     n(Log4jLogging.java:81)
    at org.pentaho.di.core.logging.log4j.Log4jLogging.createLogger(Log4jLogg
     ing.java:89)
    at org.pentaho.di.core.logging.log4j.Log4jLogging.init(Log4jLogging.java
     :68)
    at org.pentaho.di.core.KettleClientEnvironment.initLogginPlugins(KettleC
     lientEnvironment.java:155)
    at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironm
    ent.java:118)
    at org.pentaho.di.core.KettleClientEnvironment.init(KettleClientEnvironm
     ent.java:79)
    at org.pentaho.di.kitchen.Kitchen$1.call(Kitchen.java:91)
    at org.pentaho.di.kitchen.Kitchen$1.call(Kitchen.java:84)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
    2018/06/28 09:35:32 - Kitchen - Start of run.
    2018/06/28 09:35:34 - CCMStatsJob - Start of job execution
   2018/06/28 09:35:34 - CCMStatsJob - CCMStatsJob    

【问题讨论】:

  • 所有的工作都创造了那个相对毫无意义的形象;请通过editing it将控制台中的文本作为格式化代码复制并粘贴到您的问题中。
  • Alain,如果我输入该代码,它只会关闭并打开而无需执行任何操作
  • 环境变量没有问题。它们由 set-pentaho-env.bat 设置,无论是勺子、平底锅还是厨房。所以他们都跑了,他们都跑了。
  • 您的日志显示问题来自无法打开日志文件的 log4j。正如我在回答中解释的那样,Windows 的日志文件是 logfile=C:\Users\bxt058y\Documents\Pentaho,因为它不在引号之间,它会将空格理解为终止符。

标签: batch-file cmd pentaho job-scheduling


【解决方案1】:

我认为这是我的 Kitchen.bat (.kjb) 的问题,因为如果我使用 Pan.bat (.ktr) 运行批处理文件,我的文件运行良好。

【讨论】:

  • 这不是答案,请删除。另外,如果您认为Kitchen.batedit your question 有问题,可以这么说,并包含那个批处理文件的内容。
【解决方案2】:

Windows 不喜欢文件名中的空格(Linux 也不喜欢)。更正-logfile。

参数不能在引号之间。删除。

在 Window 中,参数由“/”而不是“-”引入(如在 linux 中)。改变。

call 命令在后台执行进程,所以你什么也看不到,看不到日志,甚至看不到进程已停止的信号。要检查它是否正确运行,您需要输入日志文件。

kitchen.bat /file:C:\Users\bxt058y\Desktop\CCMStatsJob.kjb /param:TABLE_NAME=region /logfile:"C:\Users\bxt058y\Documents\Pentaho Jobs\ccmjob.txt" 

【讨论】:

  • 仍然打开并立即关闭。我在原始帖子中发布了日志错误(已编辑)
  • 当然调用的意思是在后台运行命令。请在没有第一次调用的情况下重试。