Pentaho - 使用Java远程执行Kettle Transformation

时间:2014-07-28 17:11:22

标签: java pentaho kettle

我正在使用Java API执行我的工作/转换,我能够在我的主机中正确执行。

现在我正在寻找一种在远程主机(运行中的carte)中执行转换的方法。请帮助我或将我重定向到正确的文档,在那里我找到用于完成此任务的类。

PDI版本 - 5.0.1

目前我正按以下方式执行我的工作

  try {
        if(jobDetails.getGraphlocation()!=null)
        {
            KettleEnvironment.init();
            JobMeta jobMeta = new JobMeta(jobDetails.getGraphlocation(), null);

            for( String s : jobDetails.getArguments() )
            {
                String[] splitString = s.split("\\=");
                if(splitString.length==2)
                {
                    jobMeta.setParameterValue(splitString[0], splitString[1]);

                }
                else
                    System.err.println("Parameter should be of the form - name=value");
            }

            Job job = new Job(null, jobMeta);
            job.setLogLevel(LogLevel.valueOf(jobDetails.getLoglevel().toString()));

            job.start();
            job.waitUntilFinished();
            if (job.getErrors()!=0) {
                System.out.println("Error encountered!");
            }   
        }

上面的代码能够在我运行它的地方执行Job。但我想通过传递carte用户名,密码和服务器IP地址在slave服务器上执行它。

1 个答案:

答案 0 :(得分:0)

您可以通过注册菜单服务器通过勺子来完成,或者您可以通过在实际作业/转换步骤中指定菜单服务器的名称和端口来完成作业。即你可以创建一个只有start,job(指向carte服务器),成功步骤的启动器。