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设置输入输出目录的时候使用了账户的原因,没关系啦,随便它,反正提交是成功啦。

时间: 2025-01-24 02:40:46

oozie java api提交作业的相关文章

oozie 重新提交作业

在oozie的运行过程当中可能会出现错误,比如数据库连接不上,或者作业执行报错导致流程进入suspend或者killed状态,这个时候我们就要分析了,如果确实是数据或者是网络有问题,我们比如把问题解决了才可以重新运行作业.重新运行作业分两种情况,suspend状态和killed状态的,这两种状态是要通过不同的处理方式来处理的. (1)suspend状态的我们可以用resume方式来在挂起的地方恢复作业,重新运行,或者是先杀掉它,让它进入killed状态,再进行重新运行. public stati

如何使用API提交转码任务?

当常规的转码工作流无法满足用户的场景时,需用户自己判断业务逻辑,并使用API提交转码任务.例如:并不是所有的视频都需要转码,不同视频需要设置不同的转码配置.本文将介绍API提交转码任务的方法. 使用API转码可以实现: 自定义业务逻辑,灵活提交转码作业 功能强大,支持转码.转封装.水印.支持HLS-AES128标准加密.剪辑等功能 转码任务执行完成,支持向指定的消息队列或消息通知发送执行信息 支持URL播放 架构图如下所示: 解析 1.配置转码模板.水印模板.设置管道消息通知 2.上传视频到OS

DB2 NoSQL JSON 功能(三) 使用 Java API 编写应用程序

管理 JSON 文档 - 使用事务和不使用事务 概述 简介 DB2 JSON 是一个可用于 DB2 Linux, Unix and Windows 10.5 的 Technology Preview,提供了以下特性: 一个命令行 shell 用于管理和查询 JSON 数据 一个 Java API 用于应用程序开发 一个有线监听器用于接受和响应通过网络发送的请求. 图 1. DB2 JSON 组件 本文将介绍如何使用 Java 接口管理和查询 DB2 JSON 文档存储中的 JSON 文档.还将讨

Flink运行时之客户端提交作业图-上

客户端提交作业图 作业图(JobGraph)是Flink的运行时所能理解的作业表示,无论程序通过是DataStream还是DataSet API编写的,它们的JobGraph提交给JobManager以及之后的处理都将得到统一.本篇我们将分析客户端如何提交JobGraph给JobManager. 流处理程序提交作业图 在前面讲解Flink的核心概念的时候我们谈到了Flink利用了"惰性求值"的概念,只有当最终调用execute方法时,才会真正开始执行.因此,execute方法是我们的切

HBase Java API详解

[本文转自HBase Java API详解] HBase是Hadoop的数据库,能够对大数据提供随机.实时读写访问.他是开源的,分布式的,多版本的,面向列的,存储模型. 在讲解的时候我首先给大家讲解一下HBase的整体结构,如下图: HBase Master是服务器负责管理所有的HRegion服务器,HBase Master并不存储HBase服务器的任何数据,HBase逻辑上的表可能会划分为多个HRegion,然后存储在HRegion Server群中,HBase Master Server中存

mapreduce提交作业出现报错信息

问题描述 mapreduce提交作业出现报错信息 我最近采用这种方法提交作业,把mr作业的业务逻辑打包上传至hdfs中,在eclipse中提交任务(不安装hadoop插件),报错Error: java.io.IOException: Unable to initialize any output collector,如果把mr作业的业务逻辑打包上传至hdfs节点上,就可以顺利完成. 这是为什么? Configuration conf = new Configuration(); conf.set

搭建Gateway向E-MapReduce集群提交作业

Gateway 一些客户需要自主搭建Gateway向E-MapReduce集群提交作业,目前E-MapReduce在产品页面上不支持购买Gateway,后续可以在产品上直接购买Gateway,并把Hadoop环境准备好供用户使用. 购买ECS 在ECS控制台购买ECS,公共镜像系统选择CentOS 7.2 网络 首先要保证Gateway机器在EMR对应集群的安全组中,Gateway节点可以顺利的访问EMR集群.设置机器的安全组请参考ECS的安全组设置说明. 环境 EMR-3.1.1版本 将下面脚

Google确认下一个Android版本将不会使用Oracle的Java API

在下一个Android版本中Google将会把应用程序接口(APIs)的实现替换为OpenJDK,它是Oracle私有的Java开发工具包(JDK)的开源版本.Google确认了Android N将会仅依赖于OpenJDK,而非Android自身实现的Java APIs.一位Google的发言人说:"最为一个开源平台,Android的构建是基于开源社区的合作.在即将到来的Android的下一个版本Android N,我们计划将所有Android的Java语言开发包用OpenJDK实现,从而为开发

ES java api

2.0之后ES的java api用法有了很大变化.在此记录一些. java应用程序连接ES集群,笔者使用的是TransportClient,获取TransportClient的代码设计为单例模式(见getClient方法).同时包含了设置自动提交文档的代码.注释比较详细,不再赘述. 下方另有提交文档.提交搜索请求的代码. 1.连接ES集群代码如下:  1 package elasticsearch; 2 3 import com.vividsolutions.jts.geom.GeometryF