? 远程执行: 允许你指定一个想运行转换的远程服务器。这需要你在远程服务
器上安装Pentaho Data Integration(Kettle)并且运行Carte子服务器。
? 集群方式执行: 允许你在集群环境下执行作业或者转换
3.2. 程序运行
jobMeta = repository.loadJob(jobName, directory, null, null); JobExecutionConfiguration jobExecutionConfiguration = new JobExecutionConfiguration(); jobExecutionConfiguration.setRemoteServer(remoteSlaveServer); jobExecutionConfiguration.setRepository(repository); 代码中需要定义slaveserver ,然后在任务执行配置中设置slaveserver,然后把任务发送给slaveserver
4. 程序实现
首先,需要在项目中引入执行kettle所需要的jar包:
实际应该引用更多的jar包,包括 lib/中的所有包
Libext/commons中的所有包等。
调用的源码如下
com.zip
第6页 共7页
其中在172.16.100.28服务器上运行carte.bat 172.16.100.28 8765命令来启动slaveserver 其中调用方法如下
public static void main(String[] args) { //设置资源库信息 OracleRepositoryInfo rposInfo = new OracleRepositoryInfo(); rposInfo.setDbHostname(\); rposInfo.setDbName(\); rposInfo.setDbPort(\); rposInfo.setDbType(\); rposInfo.setDbUsername(\); rposInfo.setDbPassword(\); rposInfo.setRepoId(\); rposInfo.setRepoName(\); rposInfo.setRepoPassword(\); rposInfo.setRepoUsername(\); //新建job对象,初始化资源库 CallJob ctf = new CallJob(rposInfo); //设置slaveserver信息 SlaveServerInfo ssi = new SlaveServerInfo(); ssi.setServerHost(\); ssi.setServerPort(\); ssi.setServerName(\); ssi.setServerUsername(\); ssi.setServerPassword(\); //为job设置slaveserve ctf.initSlaveServer(ssi); try { //ctf.executeJobLocal(\ //调用远程执行job ctf.executeJobRemote(\); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
第7页 共7页