前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oozie java api提交作业

oozie java api提交作业

作者头像
岑玉海
发布2018-03-01 11:09:34
1.4K0
发布2018-03-01 11:09:34
举报
文章被收录于专栏:岑玉海岑玉海

今晚试验用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
image
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-08-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档