我已经用勺子创建了工作,我正在使用猪脚本执行器。在UI中它工作正常。它调用猪脚本并提供所需的输出
输出:成功将445454条记录(15256953字节)存储在: “/蜂巢/仓库/博客/ aggregate_pig_test3”
计数器:写入的总记录数:445454写入的总字节数: 15256953 Spillable Memory Manager溢出计数:0总袋数 主动溢出:0主动溢出的总记录:0
Job DAG:job_local270305097_0001 2016/04/06 17:24:12 - Pig Script 执行人 - 2016/04/06 17:24:12 - 成功! 2016/04/06 17:24:12 - 猪 脚本执行者 - Num成功的工作:1个失败的工作:0
现在当我在java中使用相同的.kjb文件时,我没有得到所需的输出。看起来我的脚本没有被执行仍然没有任何异常
我的java代码
KettleEnvironment.init();
Properties props = new Properties();
JobMeta metadata = new JobMeta("pig.kjb",null);
Job job = new Job (null, metadata);
job.start();
job.waitUntilFinished();
System.err.println(job.getStatus());
if (job.getErrors()!=0) {
System.out.println("Error encountered!");
}
} catch (KettleException e) {
e.printStackTrace();
}
}
java方法的输出:
2016/04/06 18:25:59 - pig - 开始执行作业2016/04/06 18:25:59 - 猪 - 开始进入[Pig Script Executor] 2016/04/06 18:25:59 - pig - 完成作业[Pig Script Executor](结果= 2016/04/06 18:25:59 - pig - 作业执行完毕
但没有任何反应。就像在勺子UI中存储文件一样。我不知道缺少什么。为什么我的java代码没有执行。
答案 0 :(得分:0)
我错过了-DKETTLE_PLUGIN_BASE_FOLDERS,这是pentaho中hadoop配置所必需的。