Kettle (Pentaho PDI) 4.3.0 web start


1. 首先下载pdi-ce-src-4.3.0-stable-r16786.zip, 解压后导入eclipse,设置ant的target为clean, webstart,注意调整顺序,使clean先执行


2. 为了在配置过程中查看log,需要打开java调试: 控制面板-> Java -> 高级-> 设置->调试-> 启用跟踪,启用记录,

log存放地址:C:\Documents and Settings\YOURID\Application Data\Sun\Java\Deployment\log

这样,在运行过程中,会在这个目录下生成.trace与.log日志


3. 修改pdi-ce-src-4.3.0-stable-r16786\web 中的spoon.jnlp, swt.jnlp, activation.jnlp, mail.jnlp,修改codebase,例如

<jnlp spec="1.0+" codebase="http://localhost:7080/pdi-ce-4.3.0" href="spoon.jnlp">

4. 常见错误:

1> java.lang.RuntimeException: Unable to load image with name [ui/images/spoon.ico]

这是由于默认编译出来的kettle-ui-swt.jar中没有spoon.ico, 在kettle的ant build.xml中,copy ui的时候没有拷贝gif和ico,修改后的结果为

<!-- embedd the UI definition files in the jar so that webstart will work -->
<copy todir="${classes-ui}/ui">
    <fileset dir="${ui}" includes="**/*.gif **/*.ico **/*.png **/*.xml **/*.xul **/*.properties"/> 
</copy>


2>  jar签名不一致

这是由于某些spoon.jnlp中列的jar文件有些已经是签过名的,比如mail.jar, activation.jar, commands.jar common.jar jface.jar runtime.jar,对于这几个jar文件,最好是和其他额jar一起进行签名,修改build.xml:

<copy todir="${webstart}/libext">
    <!--fileset dir="${libext}" includes="**/*.jar" excludes="mail.jar web/activation.jar"/-->
    <fileset dir="${libext}" includes="**/*.jar"/>
</copy>
<copy todir="${webstart}/libswt">
    <!--fileset dir="${libswt}" includes="**/*.jar" excludes="commands.jar common.jar jface.jar runtime.jar"/-->
    <fileset dir="${libswt}" includes="**/*.jar"/>
</copy>

<!-- for jars that are already signed by other parties, copy the originals back over -->
<!--
<echo>Copying third-party signed jars</echo>
    	
<copy todir="${webstart}/libext">
	<fileset dir="${libext}" includes="mail.jar web/activation.jar"/>
</copy>

<copy todir="${webstart}/libswt">
	<fileset dir="${libswt}" includes="commands.jar common.jar jface.jar runtime.jar"/>
</copy>
-->

对于其他的第三方的jar,如果已经签过名了,可以通过jar -xf解包,删除META-INF,再通过jar -cf重新打包,签过名的jar其META-INF中含有签名文件,比如KETTLE.RSA,

KETTLE.SF, MANIFEST.MF

3>java.lang.ClassNotFoundException: org.pentaho.ui.xul.swt.SwtXulLoader

解决方案:

在添加spoon.jnlp 中添加<jar href="libext/pentaho/pentaho-xul-swt-3.3.4.jar"/>


4> java.util.MissingResourceException: Can't find bundle for base name ui/laf, locale zh_CN

解决方案:

src-ui/org/pentaho/di/ui/spoon/XulSpoonResourceBundle.java Line 63:


lafBundle = ResourceBundle.getBundle("ui/laf", Locale.getDefault(), classLoader); 改为:

lafBundle = ResourceBundle.getBundle("ui.laf", Locale.getDefault());

用加载这个Class的classLoader从jar内部来加载laf.properties


5> 找不到/ui/images/transformation.png

解决方案:

src-ui/pentaho/di/ui/spoon/MianSpoonPerspective.java   Line 69,函数getPerspectiveIcon(),这里从jar内部加载资源有问题,

修改为:

public InputStream getPerspectiveIcon() {
	InputStream is = getClass().getResourceAsStream("/ui/images/transformation.png");
    	return is;
  }


最终,spoon.jnlp,build.xml 以及部分缺失的jar 放在:

http://download.csdn.net/detail/sundongsdu/5089760



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
kettle管理工具专门为kettle这款优秀的ETL工具开发的web端管理工具。项目简介kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄上百或几百个job需要管理,这时在使用客户端管理已经很难完成了。我所知道的解决方案有用命令行的调用的,操作麻烦,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没有较好对众多job进行管理的工具。基于以上情况,和我近两年的kettle定制开发与使用经验。我设计并开发了这款kettle web端管理工具。本系统当前支持oracle和mysql项目功能job运行参数设置,可以在页面上设置作业运行参数,每次运行作业时会用设置的参数覆盖默认值,这个很多人用不上。定时设置,操作界面与kettle中的开始控件界面一致,这个可能是最优用的功能之一。作业的运行与停止,核心功能就不说了。实时查看作业运行日志,最大显示行数可以配置,这个功能看起来不起眼,实际应该是很有用的。后台有一个作业专门完成将运行的作业日志写入日志文件,文件按天分文件夹存放,日志文件大小可以配置,若觉得占用空间,可以设计一个作业进行定时清理以前的日志文件,后续会提供该作业。也可以配置为不写日志文件。作业的运行状态会定时反映到管理界面,我们可以通过多种条件筛选我们需要的作业进行批量运行或停止。本系统是基于数据库资源库设计的,暂时不考虑支持文件资源库。本系统还附带了一个kettle插件,类似kettle已有的自定义类控件(可以在转换中写java代码)。该控件的设计时为了避免每一个需求都去开发一个kettle控件,从后台元数据管理到操作界面设计。该控件采用灵活的JSON传递参数,然后继承一个基类就可以完成一个任务了,就是说基于该控件,只需要开发一个具体的操作类就可以了。有兴趣可以看一下,详细介绍参看:http://www.cnblogs.com/majinju/p/5767046.html。界面截图主界面定时设置界面参数设置界面运行日志查看界面平台级日志,支持查询下载项目介绍主页:kettle-manager主页 标签:Kettle  ETL工具框架
KettlePentaho的一个模块,用于实现ETL(提取、转换和加载)功能。它可以通过Spoon工具创建和定义作业,并提供了多种处理并行作业的方法。 在使用Kettle的作业中,需要进行一系列的步骤来实现所需的功能。首先,可以使用"delete record"步骤来删除记录,但在此之前需要在作业外部建立一个表,比如在Hive中建表。同时,在作业项的Step0中,需要在实际代码执行之前清空上述建立的表,可以使用"truncate table"语句来实现。 其次,可以使用"insert first record"步骤来插入记录到表中。例如,可以使用该步骤插入记录"temp_kettle_job_paralle_exe_step21"、"temp_kettle_job_paralle_exe_step22"和"temp_kettle_job_paralle_exe_step23"。 最后,可以使用"wait for sql"步骤来等待所有并行支线的任务完成。该步骤会对表进行判断,只有当表中满足特定条件的记录数量达到要求时,才会执行下一步操作。可以通过设置最大超时时间来控制等待的时间长度,同时可以选择超时时成功的选项来决定在超过最大超时时间后的处理方式。 综上所述,KettlePentaho的一个模块,用于实现ETL功能。它提供了多种处理并行作业的方法,包括删除记录、插入记录和等待所有并行任务完成的功能。通过使用这些步骤和设置参数,可以实现复杂的数据处理流程。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值