简体   繁体   English

如何在Java中运行pentaho猪作业

[英]How to run pentaho pig job in java

I have created job in spoon where i am using pig script executor.in UI it works fine.it is calling pig script and giving desired output 我在汤匙中创建了作业,我在其中使用猪脚本执行器。在UI中它工作正常。它正在调用猪脚本并提供所需的输出

Output(s): Successfully stored 445454 records (15256953 bytes) in: "/hive/warehouse/weblogs/aggregate_pig_test3" 输出:已成功将445454条记录(15256953字节)存储在“ / 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 计数器:总共写入记录:445454总共写入字节:15256953 Spillable Memory Manager溢出计数:0主动溢出的总包数:0主动溢出的总记录数:0

Job DAG: job_local270305097_0001 2016/04/06 17:24:12 - Pig Script Executor - 2016/04/06 17:24:12 - Success! Job DAG:job_local270305097_0001 2016/04/06 17:24:12-Pig脚本执行程序-2016/04/06 17:24:12-成功! 2016/04/06 17:24:12 - Pig Script Executor - Num successful jobs: 1 num failed jobs: 0 2016/04/06 17:24:12-Pig Script Executor-成功的作业数:1失败的作业数:0

now when i use same .kjb file in java i dont get desired output.it seems like my script is not executed still i am not getting any exception 现在当我在Java中使用相同的.kjb文件时,我没有得到所需的output。似乎我的脚本没有执行,但我没有任何异常

my java code 我的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();
    }
}

output of java method: 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 2016/04/06 18:25:59-猪-开始执行工作2016/04/06 18:25:59-猪-开始输入[猪脚本执行器] 2016/04/06 18:25:59-猪-完成作业输入[Pig Script Executor](结果= 2016/04/06 18:25:59-Pig-作业执行完成

But nothing happens.like above in spoon UI it stores file. 但是什么也没发生。像上面的勺子UI一样,它存储文件。 I dont know what is missing. 我不知道缺少什么。 Why is my java code is not executing. 为什么我的Java代码未执行。

我错过了-DKETTLE_PLUGIN_BASE_FOLDERS,这是在pentaho中进行hadoop配置所必需的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM