Pentaho 命令行空指针异常
Posted
技术标签:
【中文标题】Pentaho 命令行空指针异常【英文标题】:Pentaho commandline nullpointer exception 【发布时间】:2020-02-05 08:15:37 【问题描述】:Pentaho PDI 版本 8.3.0 CE 如果重要的话
当我尝试分别使用 kitchen 或 pan 运行作业或转换命令行时,我得到一个空指针异常。仅当尝试从存储库运行某些内容时才会发生这种情况。 当我尝试从勺子运行相同的转换或作业时,一切都很好,并且作业运行良好。
我使用以下命令,它们都提供相同的错误:
./pan.sh -trans=get_clusters -rep=myrepo -user=admin -pass=mypass -dir=/Transformations
和
./kitchen.sh -job=scheduled_update_job -rep=myrepo -user=admin -pass=mypass -dir=/Jobs
注意:当我尝试从 docker 容器运行作业或转换时也会发生此错误。
我收到的错误如下,对于 PAN 和 Kitchen 相同:
020/02/05 09:07:56 - Pan - Start of run.
Processing has stopped because of an error: null
java.lang.NullPointerException
at org.pentaho.di.core.plugins.PluginRegistry.getPluginId(PluginRegistry.java:689)
at org.pentaho.di.core.plugins.PluginRegistry.getPlugin(PluginRegistry.java:715)
at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:370)
at org.pentaho.di.base.AbstractBaseCommandExecutor.establishRepositoryConnection(AbstractBaseCommandExecutor.java:195)
at org.pentaho.di.pan.PanCommandExecutor.execute(PanCommandExecutor.java:119)
at org.pentaho.di.pan.Pan.main(Pan.java:270)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)
任何帮助将不胜感激。
【问题讨论】:
仅供参考:我还按照文档中的说明设置了 KETTLE_HOME。这对本地设置和我的 docker 容器都没有影响。 另外:我已经完全扔掉了锅和厨房的卡拉夫缓存,但这也不能解决它。 似乎无法获取某些插件,可能是存储库插件。您是从同一个数据集成文件夹中运行它吗?如果没有,您可能会缺少插件。 另外,如果您配置的 KETTLE_HOME 与 Spoon 使用的不同,请检查是否有有效的 repositories.xml 嗯。出于某种原因,这行得通!现在只是要弄清楚它为什么会这样工作(我希望这是首先设置 KETTLE_HOME 的原因),然后弄清楚如何合并到 docker 容器中。谢谢赛勒斯,请将评论变成答案,以便我接受。 【参考方案1】:使用 pan.sh 或 kitchen.sh 的完整路径从您的主目录(作为工作目录)运行作业。
我不确定究竟是什么导致了问题。可能的原因:
您的 KETTLE_HOME 无效,导致 Pentaho 在工作目录中查找 .kettle。 (不要在 HOME 中包含 .kettle) 这种情况的一个变体是,如果您以 root 身份复制/移动文件,则您没有文件的权限。 您的用户没有对数据集成目录的写入权限,导致写入通常会进入工作目录的配置失败。 使用此处没有写入权限的帐户运行 Pentaho 是正常的,这不是问题,只是它不喜欢不可写的工作目录。【讨论】:
以上是关于Pentaho 命令行空指针异常的主要内容,如果未能解决你的问题,请参考以下文章