【kettle】pdi/data-integration 打开ktr文件报错“Unable to load step info from XML“

一、报错内容:

复制代码
Unable to load step info from XML step nodeorg.pentaho.di.core.exception.KettleXMLException: 
Unable to load step info from XML
 at org.pentaho.commons.launcher.Launcher.main (Launcher.java:92)
 at java.lang.reflect.Method.invoke (Method.java:498)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
 at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
 at sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
 at org.pentaho.di.ui.spoon.Spoon.main (Spoon.java:707)
 at org.pentaho.di.ui.spoon.Spoon.start (Spoon.java:9179)
 at org.pentaho.di.ui.spoon.Spoon.waitForDispose (Spoon.java:7817)
 at org.pentaho.di.ui.spoon.Spoon.readAndDispatch (Spoon.java:1381)
 at org.eclipse.swt.widgets.Display.readAndDispatch (null:-1)
 at org.eclipse.swt.widgets.Display.runDeferredEvents (null:-1)
 at org.eclipse.swt.widgets.Widget.sendEvent (null:-1)
 at org.eclipse.swt.widgets.Display.sendEvent (null:-1)
 at org.eclipse.swt.widgets.EventTable.sendEvent (null:-1)
 at org.eclipse.jface.action.ActionContributionItem$5.handleEvent (ActionContributionItem.java:402)
 at org.eclipse.jface.action.ActionContributionItem.access$2 (ActionContributionItem.java:490)
 at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection (ActionContributionItem.java:545)
 at org.eclipse.jface.action.Action.runWithEvent (Action.java:498)
 at org.pentaho.ui.xul.jface.tags.JfaceMenuitem$1.run (JfaceMenuitem.java:106)
 at org.pentaho.ui.xul.jface.tags.JfaceMenuitem.access$100 (JfaceMenuitem.java:43)
 at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke (AbstractXulComponent.java:141)
 at org.pentaho.ui.xul.impl.AbstractXulComponent.invoke (AbstractXulComponent.java:157)
 at org.pentaho.ui.xul.impl.AbstractXulDomContainer.invoke (AbstractXulDomContainer.java:313)
 at java.lang.reflect.Method.invoke (Method.java:498)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
 at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
 at sun.reflect.NativeMethodAccessorImpl.invoke0 (NativeMethodAccessorImpl.java:-2)
 at org.pentaho.di.ui.spoon.Spoon.openFile (Spoon.java:4252)
 at org.pentaho.di.ui.spoon.Spoon.openFile (Spoon.java:4315)
 at org.pentaho.di.ui.spoon.Spoon.openFile (Spoon.java:4637)
 at org.pentaho.di.ui.spoon.TransFileListener.open (TransFileListener.java:61)
 at org.pentaho.di.trans.TransMeta.loadXML (TransMeta.java:3075)
 at org.pentaho.di.trans.step.StepMeta.<init> (StepMeta.java:321)
 at org.pentaho.di.trans.steps.fileinput.text.TextFileInputMeta.loadXML (TextFileInputMeta.java:328)
 at org.pentaho.big.data.kettle.plugins.hdfs.trans.HadoopFileInputMeta.loadSource (HadoopFileInputMeta.java:108)
 at org.pentaho.big.data.kettle.plugins.hdfs.trans.HadoopFileInputMeta.loadUrl (HadoopFileInputMeta.java:145)
 at org.pentaho.di.core.vfs.KettleVFS.getFileObject (KettleVFS.java:105)
 at org.pentaho.di.core.vfs.KettleVFS.getFileObject (KettleVFS.java:109)
 at org.pentaho.di.core.vfs.KettleVFS.getFileObject (KettleVFS.java:152)
 at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile (DefaultFileSystemManager.java:648)
 at org.pentaho.di.core.vfs.ConcurrentFileSystemManager.resolveFile (ConcurrentFileSystemManager.java:91)
 at org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveFile (DefaultFileSystemManager.java:711)
 at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile (AbstractOriginatingFileProvider.java:55)
 at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.findFile (AbstractOriginatingFileProvider.java:71)
 at org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider.getFileSystem (AbstractOriginatingFileProvider.java:93)
 at org.apache.commons.vfs2.provider.AbstractFileProvider.addFileSystem (AbstractFileProvider.java:96)
 at org.apache.commons.vfs2.provider.AbstractVfsContainer.addComponent (AbstractVfsContainer.java:49)
 at org.apache.commons.vfs2.provider.AbstractFileSystem.init (AbstractFileSystem.java:115)
 at org.pentaho.big.data.impl.vfs.hdfs.HDFSFileSystem.addCapabilities (HDFSFileSystem.java:52)

二、日志解读

kettle日志有个特点,最后被调用的栈\代码在最下边,这和java是相反的。所以从下往上看报错就对了。

(1)此处报空指针。HDFSFileSystem.addCapabilities 可能是hadoop fileSystem(以下简称fs)没有取到。

(2)在之前果然有取fs的代码 AbstractOriginatingFileProvider.getFileSystem

所以可以推断kettle在读取ktr或kjb时候就会尝试获取fs,但是后面代码缺少校验,所以包空指针错误。

所以直接文本编辑器打开ktr文件,可以看到类似下边的内容:

三、检验和解决

  1. haoop是否可以连接
  2. ktr里的source_configuration_name指定的配置名称是否在kettle中有配置
相关推荐
兔子宇航员03014 小时前
HIVE SQL 中 NULL 值在 JOIN 和 GROUP BY 中的致命陷阱与解决方案
hive·hadoop·sql
段一凡-华北理工大学8 小时前
工业领域的Hadoop架构学习~系列文章02:HDFS架构深度剖析
大数据·人工智能·hadoop·学习·架构·高炉炼铁
段一凡-华北理工大学10 小时前
工业领域的Hadoop架构学习~系列文章03:MapReduce编程模型深度解读
大数据·人工智能·hadoop·学习·架构·高炉炼铁·高炉智能化
小欣加油1 天前
Hadoop开发环境搭建
大数据·数据库·hadoop
段一凡-华北理工大学1 天前
工业领域的Hadoop架构学习~系列文章01:Hadoop与工业4.0深度融合
大数据·hadoop·学习·架构·知识图谱·高炉炼铁·工业智能体
小欣加油2 天前
Hive综合应用案例——用户学历查询
数据仓库·hive·hadoop
至此流年莫相忘2 天前
CentOS 部署 Hadoop 环境指导文档
linux·hadoop·centos
yumgpkpm2 天前
Hadoop(CDH6、CDP7)在Qwen3.7大模型训练中的作用,(含部署、运行操作步骤)
大数据·hive·hadoop·分布式·zookeeper·spark·kafka
Irene19913 天前
正确停止 Sqoop 任务:yarn application -kill(直接 kill 进程会触发重启,且可能导致状态不一致)
hadoop·sqoop
南屹川3 天前
【大数据】大数据处理技术栈:从采集到分析的完整链路
大数据·人工智能·hadoop·flink·spark·数据处理