如何从命令行运行 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 作业的主要内容,如果未能解决你的问题,请参考以下文章

如何获取在 BigQuery 命令行工具中运行的最后一个作业的作业 ID?

从命令行运行但不能通过 cron 运行时脚本运行良好

flink作业提交源码解析-命令行解析及运行

flink作业提交源码解析-命令行解析及运行

flink作业提交源码解析-命令行解析及运行

课程作业01:编写一个程序,此程序从命令行接收多个数字,求和之后输出结果。