我在 Spoon 中创建了作业,我正在使用 Pig 脚本执行器。在 UI 中它工作正常。它正在调用 Pig 脚本并提供所需的输出
Output(s): Successfully stored 445454 records (15256953 bytes) in: "/hive/warehouse/weblogs/aggregate_pig_test3"
Counters: Total records written : 445454 Total bytes written : 15256953 Spillable Memory Manager spill count : 0 Total bags proactively spilled: 0 Total records proactively spilled: 0
Job DAG: job_local270305097_0001 2016/04/06 17:24:12 - Pig Script Executor - 2016/04/06 17:24:12 - Success! 2016/04/06 17:24:12 - Pig Script Executor - Num successful jobs: 1 num failed jobs: 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 - Start of job execution 2016/04/06 18:25:59 - pig - Starting entry [Pig Script Executor] 2016/04/06 18:25:59 - pig - Finished job entry [Pig Script Executor] (result= 2016/04/06 18:25:59 - pig - Job execution finished
但是什么也没发生。就像上面的 Spoon UI 中一样,它存储文件。我不知道缺少什么。为什么我的java代码没有执行。
最佳答案
我错过了 pentaho 中 hadoop 配置所需的 -DKETTLE_PLUGIN_BASE_FOLDERS。
关于java - 如何在java中运行pentaho pig作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36450681/