Hi Guys,
I am not sure if this is the correct place to ask this question, but
here I go.
I've been trying to create a simple oozie workflow job through falcon.
The job does get created and I can see it in the oozie management
console, but it is always failing with the same exception:
2014-06-10 13:50:10,407 WARN CoordSubmitXCommand:542 - USER[-] GROUP[-]
TOKEN[-] APP[-] JOB[0000000-140610134923473-oozie-root-B] ACTION[-] ERROR:
org.apache.oozie.coord.CoordinatorJobException: E1004: Expression
language evaluation error, Unable to evaluate :${now(0,-5)}:
..................................
Caused by: java.lang.Exception: Unable to evaluate :${now(0,-5)}:
at
org.apache.oozie.coord.CoordELFunctions.evalAndWrap(CoordELFunctions.java:691)
at
org.apache.oozie.command.coord.CoordSubmitXCommand.resolveTagContents(CoordSubmitXCommand.java:885)
... 11 more
Caused by: javax.servlet.jsp.el.ELException: No function is mapped to
the name "now"
at org.apache.commons.el.Logger.logError(Logger.java:481)
at org.apache.commons.el.Logger.logError(Logger.java:498)
at org.apache.commons.el.Logger.logError(Logger.java:525)
at
org.apache.commons.el.FunctionInvocation.evaluate(FunctionInvocation.java:150)
at
org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
at
org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
at org.apache.oozie.util.ELEvaluator.evaluate(ELEvaluator.java:203)
at
org.apache.oozie.coord.CoordELFunctions.evalAndWrap(CoordELFunctions.java:682)
... 12 more
I've been following the tutorials on Hortonworks (
http://public-repo-1.hortonworks.com/HDP-LABS/Projects/Falcon/2.0.6.0-76/FalconHortonworksTechnicalPreview.pdf
)
I've followed the instructions to the letter, especially those regarding
the falcon-el extensions. I've added the properties to the
oozie-site.xml as well as uploading the libs to the HDFS using the oozie
/oozie-setup.sh sharelib create /command. However that didn't solve the
issue. I am really stuck guys, I have no clue what else needs to be
done, I am not sure why the error persists despite me following the
official instructions.
Peter
P.S.
Here is my process.xml definition
<?xml version="1.0" encoding="UTF-8"?>
<process name="dev-process" xmlns="uri:falcon:process:0.1">
<clusters>
<cluster name="dev-cluster">
<validity start="2013-11-15T00:05Z" end="2030-11-15T01:05Z"/>
</cluster>
</clusters>
<parallel>5</parallel>
<order>FIFO</order>
<frequency>hours(1)</frequency>
<timezone>UTC</timezone>
<inputs>
<!-- In the workflow, the input paths will be available in a
variable 'inpaths' -->
<input name="s1" feed="hadoop-s1" start="now(0,-5)"
end="now(0,-1)" />
<input name="s2" feed="hadoop-s2" start="now(0,-5)"
end="now(0,-1)" />
<input name="s3" feed="hadoop-s3" start="now(0,-5)"
end="now(0,-1)" />
</inputs>
<outputs>
<!-- In the workflow, the output path will be available in a
variable 'outpath' -->
<output name="outpath" feed="transformedData" instance="now(0,0)"/>
</outputs>
<properties>
<!-- In the workflow, these properties will be available with
variable - key -->
<property name="queueName" value="default"/>
<!-- The schedule time available as a property in workflow -->
<property name="time" value="${instanceTime()}"/>
<property name="oozie.wf.workflow.notification.url"
value="http://hadoop-ui:8080/modataui/update/worflow/status/$jobId/$status"/>
<property name="oozie.wf.action.notification.url"
value="http://hadoop-ui:8080/modataui//update/action/status/$jobId/$nodename/$status"/>
</properties>
<workflow engine="oozie" path="/root/app/mr"/>
<!--
<late-process policy="periodic" delay="minutes(1)">
<late-input input="inpaths" workflow-path="/app/mr"/>
</late-process>
-->
</process>