如何从命令行运行 pentaho 作业
Posted
技术标签:
【中文标题】如何从命令行运行 pentaho 作业【英文标题】:How to run a pentaho job from Command Line 【发布时间】:2020-04-12 03:35:27 【问题描述】:有一个需要大约 1/2 分钟才能完成的作业,现在尝试通过命令行运行该作业只会永远持续下去并且不会完成。看起来我也没有从中得到任何错误。所以这项工作似乎开始了,我知道这项工作可以正常工作,因为它可以在勺子内工作,有什么想法吗?
C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration> Kitchen.bat /file:C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration\job.kjb /level:最低
调试:使用 PENTAHO_JAVA_HOME 调试:_PENTAHO_JAVA_HOME=C:\Program Files\Java\jre1.8.0_231 调试:_PENTAHO_JAVA=C:\Program Files\Java\jre1.8.0_231\bin\java.exe
C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration>"C:\Program 文件\Java\jre1.8.0_231\bin\java.exe" "-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m" "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=libswt\win64" "-DKETTLE_HOME=" "-DKETTLE_REPOSITORY=""-DKETTLE_USER=""-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=""-DKETTLE_LOG_SIZE_LIMIT=" "-DKETTLE_JNDI_ROOT="-jar 启动器\launcher.jar -lib ..\libswt\win64 -main org.pentaho.di.kitchen.Kitchen -initialDir "C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration"\ /file:C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration\job.kjb /level:Minimal Java HotSpot(TM) 64-Bit Server VM 警告:忽略 选项 MaxPermSize=256m;支持已在 8.0 13:58:07,867 INFO 中删除 [KarafBoot] 检查 org.pentaho.clean.karaf.cache 是否为 启用 13:58:12,006 信息 [KarafInstance]
* Karaf 实例编号:2 在 C:\Users\a\Downloads\pdi-ce-8.3.0.0- 371\data-integration.\system\karaf\caches\kitchen\data-1 FastBin 提供程序端口:52902 卡拉夫端口:8803 OSGI 服务端口:9052 * ****************************************************** ***************************** 2019 年 12 月 19 日下午 1:58:12 org.apache.karaf.main.Main$KarafLockCallback lockAquired INFO:已获得锁。将 startlevel 设置为 100 2019/12/19 13:58:12 - 厨房 - 记录处于水平:最低 2019/12/19 13:58:12 - 厨房 - 开始运行。 2019-12-19 13:58:15.902:INFO:oejs.Server:jetty-8.1.15.v20140411 2019-12-19 13:58:15.955:INFO:oejs.AbstractConnector:开始 NiosocketConnectorWrapper@0.0.0.0:9052 2019 年 12 月 19 日下午 1:58:16 org.apache.cxf.bus.osgi.CXFExtensionBundleListener addExtensions 信息: 从捆绑包 org.apache.cxf.cxf-rt-management 添加扩展 (182) [org.apache.cxf.management.InstrumentationManager] 2019 年 12 月 19 日 下午 1:58:16 org.apache.cxf.bus.osgi.CXFExtensionBundleListener addExtensions INFO:从包中添加扩展 org.apache.cxf.cxf-rt-transsports-http (183) [org.apache.cxf.transport.http.HTTPTransportFactory, org.apache.cxf.transport.http.HTTPWSDLExtensionLoader, org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder, org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder, org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider] 2019 年 12 月 19 日下午 1:58:16 org.pentaho.caching.impl.PentahoCacheManagerFactory$RegistrationHandler$1 onSuccess INFO:新缓存服务注册时间 2019/12/19 13:58:17 - 作业 - 作业开始执行 2019 年 12 月 19 日下午 1:58:18 org.apache.cxf.endpoint.ServerImpl initDestination INFO:设置 服务器的发布地址为 /lineage Dec 19, 2019 1:58:18 PM org.apache.cxf.endpoint.ServerImpl initDestination INFO:设置 服务器的发布地址为 /i18n Dec 19, 2019 1:58:19 PM org.apache.cxf.endpoint.ServerImpl initDestination INFO:设置 服务器的发布地址为 /marketplace
更新 尝试从开始运行的 Karaf 缓存中删除厨房缓存,但作业从未完成,现在我正在以调试级别运行作业并获得这些结果。尽管如此,这份工作并没有比这更进一步,工作在勺子中工作,因此与工作无关。
C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration>kitchen.bat /file:C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration\Job.kjb /level:调试
调试:使用 PENTAHO_JAVA_HOME
调试:_PENTAHO_JAVA_HOME=C:\Program Files\Java\jre1.8.0_231
调试:_PENTAHO_JAVA=C:\Program Files\Java\jre1.8.0_231\bin\java.exe
C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration>"C:\Program 文件\Java\jre1.8.0_231\bin\java.exe" "-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m" "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=libswt\win64" "-DKETTLE_HOME=" "-DKETTLE_REPOSITORY=""-DKETTLE_USER=""-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=""-DKETTLE_LOG_SIZE_LIMIT=" "-DKETTLE_JNDI_ROOT="-jar 启动器\launcher.jar -lib ..\libswt\win64 -main org.pentaho.di.kitchen.Kitchen -initialDir "C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration"\ /file:C:\Users\a\Downloads\pdi-ce-8.3.0.0-371\data-integration\Job.kjb /level:调试
Java HotSpot(TM) 64 位服务器虚拟机警告:忽略选项 MaxPermSize=256m; 8.0 中移除了支持
08:07:33,026 INFO [KarafBoot] 检查是否 org.pentaho.clean.karaf.cache 已启用
08:07:37,211 信息 [KarafInstance]
* Karaf 实例编号:1 在 C:\Users\a\Downloads\pdi-ce-8.3.0.0- *
* 371\data-integration.\system\karaf\caches\kitchen\data-1 *
* FastBin 提供程序端口:52901 *
* 卡拉夫端口:8802 *
* OSGI 服务端口:9051 *
2019 年 12 月 23 日上午 8:07:38 org.apache.karaf.main.Main$KarafLockCallback 已锁定
信息:已获得锁。将 startlevel 设置为 100
2019/12/23 08:07:38 - 厨房 - 日志记录处于以下级别:调试
2019/12/23 08:07:38 - 厨房 - 开始运行。
2019/12/23 08:07:38 - 厨房 - 分配新工作。
2019/12/23 08:07:38 - Kitchen - 解析命令行选项。
2019-12-23 08:07:43.475:INFO:oejs.Server:jetty-8.1.15.v20140411
2019-12-23 08:07:43.538:INFO:oejs.AbstractConnector:Started NIOSocketConnectorWrapper@0.0.0.0:9051
2019 年 12 月 23 日上午 8:07:43 org.apache.cxf.bus.osgi.CXFExtensionBundleListener addExtensions
INFO:从捆绑包中添加扩展 org.apache.cxf.cxf-rt-管理 (182) [org.apache.cxf.management.InstrumentationManager]
2019 年 12 月 23 日上午 8:07:43 org.apache.cxf.bus.osgi.CXFExtensionBundleListener addExtensions
INFO:从捆绑包中添加扩展 org.apache.cxf.cxf-rt-transsports-http (183) [org.apache.cxf.transport.http.HTTPTransportFactory, org.apache.cxf.transport.http.HTTPWSDLExtensionLoader, org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder, org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder, org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider]
2019 年 12 月 23 日上午 8:07:44 org.pentaho.caching.impl.PentahoCacheManagerFactory$RegistrationHandler$1 成功
信息:已注册新缓存服务
2019/12/23 08:07:45 - 作业 - 作业执行开始
2019/12/23 08:07:45 - 作业 - exec(0, 0, START.0)
2019/12/23 08:07:45 - 开始 - 开始工作输入
2019/12/23 08:07:45 - 工作 - 工作
2019 年 12 月 23 日上午 8:07:46 org.apache.cxf.endpoint.ServerImpl 初始化目的地
INFO: 将服务器的发布地址设置为 /lineage
2019 年 12 月 23 日上午 8:07:47 org.apache.cxf.endpoint.ServerImpl 初始化目的地
INFO: 将服务器的发布地址设置为 /i18n
2019 年 12 月 23 日上午 8:07:48 org.apache.cxf.endpoint.ServerImpl 初始化目的地
INFO: 将服务器的发布地址设置为 /marketplace
2019/12/23 08:07:55 - Job - 触发心跳信号 每 10 秒执行一次作业
【问题讨论】:
您可以尝试删除C:\Users\a\Downloads\pdi-ce-8.3.0.0- 371\data-integration.\system\karaf\caches\kitchen
目录然后重新运行厨房吗?我很好奇您的 karaf 是否因某种原因而损坏。 Kitchen 将在您下次运行 kitchen 时重建这些缓存。
@eicherjc 通过这样做更进一步,在 1440 分钟后进入清除陈旧状态,然后从未完成,在 pentaho 中的工作需要 1 分钟,在终止前等待 20 分钟,之后也重新运行它看起来又回到了最初的问题
我刚刚尝试使用与您使用的相同版本的 Spoon 通过厨房运行作业,但没有遇到任何问题。没有挂起。如果您在 Debug 而不是 Minimal 的日志级别上运行该作业,那会提供更多有用的信息吗?如果没有,你能告诉我你在工作中使用的一些步骤吗?
刚刚用你的步骤伙伴@eicherjc 的结果更新了帖子
工作是做什么的? (/lineage、/i18n 和 /marketplace 端点是什么?)如果工作无法完成,我假设它开始了?你能告诉我们你是否可以检查输出(比如数据库中的 nb 行增长/更新/缩小?)开始变低了吗?当你运行厨房时,你的 CPU 会发疯吗?厨房在做某事/等待某事吗? (我也会使用 jvisualvm / jtop / jheap ...检查内部 jvm 发生了什么)
【参考方案1】:
一定是更深层次的东西被破坏了,因为我删除了所有文件,下载了最新版本,并且它工作正常。
【讨论】:
【参考方案2】:要从命令行运行,您必须在命令下运行
path to kitchen.sh/kitchen.sh -file=".ktr filename" --level=Debug >> "log.txt"
【讨论】:
以上是关于如何从命令行运行 pentaho 作业的主要内容,如果未能解决你的问题,请参考以下文章