oozie java api提交作业

今晚试验用java的api来提交代码,由于代码是在我机器上写的,然后提交到我的虚拟机集群当中去,所以中间产生了一个错误。。要想在任意一台机器上向oozie提交作业的话,需要对hadoop的core-site.xml文件进行设置,复制到所有机器上,然后重启hadoop集群。

设置如下:

<property> 
    <name>hadoop.proxyuser.cenyuhai.hosts</name> 
    <value>*</value> 
</property> 
<property> 
    <name>hadoop.proxyuser.cenyuhai.groups</name> 
    <value>*</value> 
</property>


这里都设置成星号,则为任意机器,任意账号。cenyuhai是我的本机账户。

然后就开始啦,用本机提交代码到oozie。代码如下:

       

        OozieClient wc = new OozieClient("http://192.168.1.133:11000/oozie"); 
        Properties conf = wc.createConfiguration(); 
        //conf.setProperty(OozieClient.APP_PATH,"hdfs://192.168.1.133:9000"  + appPath); 
        conf.setProperty("nameNode", "hdfs://192.168.1.133:9000"); 
        conf.setProperty("queueName", "default"); 
        conf.setProperty("examplesRoot", "examples"); 
        conf.setProperty("oozie.wf.application.path", "${nameNode}/user/cenyuhai/${examplesRoot}/apps/map-reduce"); 
        conf.setProperty("outputDir", "map-reduce"); 
        conf.setProperty("jobTracker", "http://192.168.1.133:9001"); 
        conf.setProperty("inputDir", input); 
        conf.setProperty("outputDir", output);

        try { 
            String jobId = wc.run(conf); 
            return jobId; 
        } catch (OozieClientException e) { 
            log.error(e); 
        }


代码非常简单,先new一个OozieClient出来,然后创建一个配置文件Properties类,然后把我们用文件的Job.Properties里面写的所有参数都设置进去就行啦,然后调用run方法就打完收工了,简单吧。提交完了之后发现作业还是失败了,没关系,查看了一下详细的失败原因,发现不是因为workflow.xml设置输入输出目录的时候使用了账户的原因,没关系啦,随便它,反正提交是成功啦。

 

image

转载于:https://www.cnblogs.com/cenyuhai/p/3276581.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值