Hi, thanks for the reply. I did hit many issues with MiniOoze from CDH
5.5.1 (Oozie 4.1 + some Cloudera patches on top of it)
1. It doesn't work without oozie git repo. I've fixed it.
2. I wasn't able to run LocalOoize. I'm using DagEngine directly.

dryrun works fine. And what if I want to execute my workflow with mocking
actual actions?

2016-12-02 21:46 GMT+01:00 Robert Kanter <rkan...@cloudera.com>:

> Hi Serega,
>
> It turns out that LocalOozieClient is missing some methods that it should
> be implementing to call DagEngine (see OOZIE-2751
> <https://issues.apache.org/jira/browse/OOZIE-2751>).  One of those is the
> dryrun method, which is why that's not working for you.  For now, calling
> DagEngine directly should work fine (that's essentially what
> LocalOozieClient
> <https://github.com/apache/oozie/blob/master/core/src/
> main/java/org/apache/oozie/LocalOozieClient.java>
> does).
>
> In your last line, dryRunSubmit doesn't return a jobId because it doesn't
> actually start a job.  It does a dryrun
> <http://oozie.apache.org/docs/4.3.0/DG_CommandLineTool.html#
> Dryrun_of_Workflow_Job>,
> which essentially just checks that everything resolves correctly in the
> workflow.xml without actually running any of the actions.  If successful,
> it returns the String "OK".  If there's a problem, it throws an exception
> that should contain the details of the problem.
>
>
> - Robert
>
> On Fri, Dec 2, 2016 at 1:22 AM, Serega Sheypak <serega.shey...@gmail.com>
> wrote:
>
> > Hi, did anyone make it work property in his project?
> > I need to do dry run for my workflows.
> > The usecase is:
> > User writes workflow and wants to:
> > 1. Check if it valid
> > 2. do dryrun, see how it flows without executing steps.
> >
> > Let say I have wflow with three steps:
> >
> > 1. disctp data from $A to $B
> > 2. run spark action with $B as input
> > 3. disctp $B to $C
> >
> > I want to do dryrun and check how my variables were interpolated it
> wflow.
> > The killer feature is: I want to imitate spark action failure and check
> how
> > my kill node looks like.
> >
> > I gave up to make MiniOozie work. But I was able to start DagEngine.
> >
> >    val fs: FileSystem = FileSystem.getLocal(new Configuration())
> >    val appPath: Path = new Path("build", "app")
> >    fs.mkdirs(appPath)
> >    fs.mkdirs(new Path(appPath, "lib"))
> >
> >    val writer = new OutputStreamWriter(fs.create(new Path(appPath,
> > "workflow.xml")))
> >    writer.write(pipelineXml)
> >    writer.close()
> >
> >    val wc = getClient
> >
> >    val workflowConfiguration = wc.createConfiguration
> >    workflowConfiguration.setProperty(OozieClient.APP_PATH, new
> > Path(appPath, "workflow.xml").toString)
> >    workflowConfiguration.setProperty(OozieClient.USER_NAME, getTestUser)
> >    usrDefinedProperties.foreach { case (k, v) =>
> > workflowConfiguration.put(k.toString, v.toString) }
> >
> >    val dagEngine:DagEngine  =
> > Services.get.get(classOf[DagEngineService]).getDagEngine(getTestUser)
> >    val conf = new Configuration()
> >    workflowConfiguration.asScala.toMap.foreach{case(k,v ) => conf.set(k,
> > v)}
> >     val jobId = dagEngine.dryRunSubmit(conf)
> >
> > But I would like to check how workflow flows when you pass in different
> > parameters without actualy executing steps.
> >
>

Reply via email to