当前位置: 首页 > news >正文

【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 XMLat 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中有配置
    在这里插入图片描述

相关文章:

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

一、报错内容&#xff1a; Unable to load step info from XML step nodeorg.pentaho.di.core.exception.KettleXMLException: Unable to load step info from XMLat org.pentaho.commons.launcher.Launcher.main (Launcher.java:92)at java.lang.reflect.Method.invoke (Met…...

cocos creator人开发小游戏免费素材资源

1、首先熟悉官方的手册和api文档&#xff0c;文档还是比较详细&#xff0c;游戏的方方面面都涉及到了 官方手册&#xff1a; http://docs.cocos.com/creator/manual/zh/官方api文档&#xff1a; http://docs.cocos.com/creator/api/zh/官方论坛&#xff1a; https://forum.coco…...

除了sd webui,compfy还有一个sd UI

GitHub - VoltaML/voltaML-fast-stable-diffusion: Beautiful and Easy to use Stable Diffusion WebUI...

c++属于同一个类的不同对象之间可相互访问private和protected成员

先看一个代码例子&#xff1a; #include <stdio.h>class A { private:char* name;void printA_Name() const {printf(name);} public:A(char* name) {this->name name;}void printA_Name(const A& a) {printf(a.name);}void printA_Name2(const A& a) {a.pr…...

QT/C++ 远程数据采集上位机+服务器

一、项目介绍&#xff1a; 远程数据采集与传输 课题要求:编写个基于TCP的网络数据获取与传输的应用程序; 该程序具备以下功能: 1)本地端程序够通过串口与下位机(单片机)进行通信&#xff0c;实现数据采集任务 2)本地端程序能将所获取下位机数据进行保存(如csv文本格式等); 3…...

算法每日一题:保龄球游戏的获胜者

大家好&#xff0c;我是星恒 今天的每一一题是一道简单题目&#xff0c;但是没能秒掉&#xff0c;原因就是题意理解不到位&#xff0c;边界问题没有判断清楚 不过这本来就是一个试错&#xff0c;迭代&#xff0c;积累经验的过程&#xff0c;加油加油&#xff0c;相信做多了&…...

Do you know about domestic CPUs

Do you know about domestic CPUs CPU指令集国产CPU CPU指令集 国产CPU 参考文献 国产CPU之4种架构和6大品牌指令集及架构一文深入了解 CPU 的型号、代际架构与微架构国产GPU芯片厂商有哪些深入GPU硬件架构及运行机制详解服务器GPU架构和基础知识...

软件设计模式 --- 类,对象和工厂模式的引入

Q1&#xff1a;什么是软件设计模式&#xff1f; A&#xff1a;软件设计模式&#xff0c;又称设计模式。它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。综上&…...

LeetCode74二分搜索优化:二维矩阵中的高效查找策略

题目描述 力扣地址 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&…...

三极管组成的光控开关电路原理图

什么是光控开关 光控开关/光控时控器采用先进的嵌入式微型计算机控制技术&#xff0c;融光控功能和普通时控器两大功能为一体的多功能高级时控器&#xff08;时控开关&#xff09;&#xff0c;根据节能需要可以将光控探头&#xff08;功能&#xff09;与时控功能同时启用&…...

【PostgreSQL】从零开始:(四十二)系统列

PostgreSQL 中的系统列 PostgreSQL 中的系统列是一组特殊的列&#xff0c;用于存储关于表和视图的元数据信息。这些列是由 PostgreSQL 数据库自动创建和维护的&#xff0c;并且不能直接修改或删除。 每个表都有多个系统列&#xff0c;这些列由系统隐式定义。因此&#xff0c;…...

快速、准确地检测和分类病毒序列分析工具 ViralCC的介绍和详细使用方法, 附带应用脚本

介绍 viralcc是一个基因组病毒分析工具&#xff0c;可以用于快速、准确地检测和分类病毒序列。 github&#xff1a;dyxstat/ViralCC: ViralCC: leveraging metagenomic proximity-ligation to retrieve complete viral genomes (github.com) Instruction of reproducing resul…...

DNs服务学习笔记

DNS&#xff1a;域名系统&#xff08;英文&#xff1a;Domain Name System)是一个域名系统&#xff0c;是万维网上作为域名和IP地址相互映射的一个分布式数据库&#xff0c;能够使用户更方便的访问互联网&#xff0c;而不用去记住能够被机器直接读取的IP数串。类似于生活中的11…...

获取线程池中任务执行数量

获取线程池中任务执行数量 通过线程池进行任务处理&#xff0c;有时我们需要知道线程池中任务的执行状态。通过ThreadPoolExecutor的相关API实时获取线程数量&#xff0c;排队任务数量&#xff0c;执行完成线程数量等信息。 实例 private static ExecutorService es new Thr…...

RK3566 Android 11平台上适配YT8512C 100M PHY

RK3566代码之前适配的1000M IC RTL8211F , 现在需要在之前的基础上修改PHY IC 为裕泰的YT8512C ----------------------------------------------------------------------//将1000M 的配置关掉&#xff0c;改为100M 配置,查看RK3566 资料关于以太网的配置即可知道如何修改 #if…...

docker 部署haproxy cpu占用特别高

在部署mysql 主主高可用时&#xff0c;使用haproxy进行负载&#xff0c;在服务部使用的情况下发现服务器cpu占比高&#xff0c;负载也高&#xff0c;因此急需解决这个问题。 1.解决前现状 1.1 部署配置文件 cat > haproxy.cfg << EOF globalmaxconn 4000nbthrea…...

Oracle导出CSV文件

利用spool spool基本格式&#xff1a; spool 路径文件名 select col1||,||col2||,||col3||,||col4 from tablename; spool off spool常用的设置&#xff1a; set colsep ;    //域输出分隔符 set echo off;    //显示start启动的脚本中的每个sql命令&#xff0c;缺…...

图像分割实战-系列教程12:deeplab系列算法概述

&#x1f341;&#x1f341;&#x1f341;图像分割实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 1、deeplab概述 图像分割中的传统做法&#xff1a;为了增大感受野&#xff0c;通常都会选择pooling…...

数据库02-07 存储

计算机存储系统&#xff1a; 02.磁道存储...

WPF 入门教程DispatcherTimer计时器

https://www.zhihu.com/tardis/bd/art/430630047?source_id1001 在 WinForms 中&#xff0c;有一个名为 Timer 的控件&#xff0c;它可以在给定的时间间隔内重复执行一个操作。WPF 也有这种可能性&#xff0c;但我们有DispatcherTimer控件&#xff0c;而不是不可见的控件。它几…...

ScrollNice:用虚拟滚动区域替代鼠标滚轮的Windows效率工具

1. 项目概述&#xff1a;当鼠标滚轮失灵时&#xff0c;我们如何优雅地“滚动”&#xff1f;作为一名长期与代码和文档打交道的开发者&#xff0c;我深知一个顺手的鼠标滚轮有多重要。但现实往往很骨感——无论是用了多年的老鼠标滚轮开始“打滑”&#xff0c;还是在某些需要单手…...

告别开发板:用QEMU+STM32虚拟环境,零成本开启你的ARM Cortex-M汇编学习之旅

零成本构建ARM Cortex-M开发环境&#xff1a;QEMU模拟STM32实战指南 为什么选择虚拟化环境学习嵌入式开发&#xff1f; 记得第一次接触嵌入式开发时&#xff0c;面对琳琅满目的开发板和动辄上千元的调试器&#xff0c;作为学生的我一度望而却步。直到发现了QEMU这个开源神器&…...

功率MOSFET工作原理与电力电子应用解析

1. 功率MOSFET基础概念解析 功率MOSFET&#xff08;金属氧化物半导体场效应晶体管&#xff09;是现代电力电子系统的核心开关器件。与普通MOSFET不同&#xff0c;功率MOSFET专为处理高电压&#xff08;通常>60V&#xff09;和大电流&#xff08;>1A&#xff09;而设计。其…...

从 LLM 到 Agent Skill

AI Agent 入门指南&#xff1a;从零理解智能体的世界理解 AI Agent 生态中的核心概念&#xff0c;知道每个名词是做什么用的一、先搞清楚&#xff1a;什么是 AI Agent&#xff1f;想象你有一个超级聪明的数字助理&#xff1a;它不仅能聊天&#xff0c;还能主动帮你做事它会自己…...

蒙特卡洛方法赋能智能体决策:原理、实现与工程实践

1. 项目概述&#xff1a;一个为智能体注入“蒙特卡洛”思想的工具箱最近在探索智能体&#xff08;Agent&#xff09;开发时&#xff0c;我一直在思考一个问题&#xff1a;如何让智能体的决策过程不那么“一根筋”&#xff1f;我们常见的基于规则或简单LLM调用的智能体&#xff…...

从‘Hello World’到打开PRT文件:一个完整的NX C++外部exe开发入门实战(VS2015 + NX12)

从‘Hello World’到打开PRT文件&#xff1a;一个完整的NX C外部exe开发入门实战&#xff08;VS2015 NX12&#xff09; 在工业设计领域&#xff0c;NX&#xff08;原Unigraphics&#xff09;作为一款功能强大的CAD/CAM/CAE软件&#xff0c;其二次开发能力为工程师提供了极大的…...

图解人工智能(8)图灵测试作为智能与否的标准

有人不同意将图灵测试作为智能与否的标准。他们认为&#xff0c;就算机器表现得和人一样&#xff0c;也不能说机器拥有了智能&#xff0c;因为它只是一堆电路&#xff0c;和人的思维方式完全不同。你是否赞同这种说法&#xff1f;说说你赞同或反对的理由。开放讨论题。有几种观…...

AI技能文件管理工具agent-skills-lint:多助手环境下的统一质检方案

1. 项目概述&#xff1a;为什么我们需要一个AI技能文件“质检员”如果你和我一样&#xff0c;同时在使用Claude Code、Cursor、Aider这些AI编程助手&#xff0c;那你一定遇到过这个烦人的问题&#xff1a;每个助手都有自己的“技能”&#xff08;Skills&#xff09;系统&#x…...

技术决策的后悔药:选型错误后的补救策略

在软件测试的全生命周期中&#xff0c;技术选型是影响测试效率、质量与项目成败的关键环节。小到一款测试工具的挑选&#xff0c;大到整个测试框架的搭建&#xff0c;每一次决策都如同在迷雾中航行&#xff0c;稍有不慎便可能驶入“选型错误”的漩涡。当测试环境兼容性问题频发…...

LangGraph大模型脚手架实战:揭秘6种爆款智能体设计模式,玩转生产级Agent开发!

最近Herness大火&#xff0c;我就在反思&#xff0c;我们在日常进行智能体开发的过程中&#xff0c;是否也在做类似的事&#xff0c;我们用过claude code sdk、codex sdk、copilot cli等通用agent做封装&#xff0c;也用过dify或者coze搭工作流&#xff0c;也用过langchain做过…...