Created 01-20-2016 03:17 AM
Unable to use expression language functions in oozie workflow with Falcon. It seems some jar files are missing but unsure what.
Here is the exception when using - http://hortonworks.com/hadoop-tutorial/defining-processing-data-end-end-data-pipeline-apache-falcon/
The error occurs at this step -
falcon entity -type process -schedule -name rawEmailIngestProcess
2016-01-19 21:08:31,969 ERROR CoordSubmitXCommand:517 - SERVER[sandbox.hortonworks.com] USER[-] GROUP[-] TOKEN[-] APP[-] JOB[-] ACTION[-] XException, org.apache.oozie.command.CommandException: E1004: Expression language evaluation error, Unable to evaluate :${now(0,0)}: at org.apache.oozie.command.coord.CoordSubmitXCommand.submitJob(CoordSubmitXCommand.java:259) at org.apache.oozie.command.coord.CoordSubmitXCommand.submit(CoordSubmitXCommand.java:203) at org.apache.oozie.command.SubmitTransitionXCommand.execute(SubmitTransitionXCommand.java:82) at org.apache.oozie.command.SubmitTransitionXCommand.execute(SubmitTransitionXCommand.java:30) at org.apache.oozie.command.XCommand.call(XCommand.java:286) at org.apache.oozie.CoordinatorEngine.dryRunSubmit(CoordinatorEngine.java:561) at org.apache.oozie.servlet.V1JobsServlet.submitCoordinatorJob(V1JobsServlet.java:228) at org.apache.oozie.servlet.V1JobsServlet.submitJob(V1JobsServlet.java:95) at org.apache.oozie.servlet.BaseJobsServlet.doPost(BaseJobsServlet.java:102) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.oozie.servlet.JsonRestServlet.service(JsonRestServlet.java:304) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.oozie.servlet.AuthFilter$2.doFilter(AuthFilter.java:171) at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:595) at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:554) at org.apache.oozie.servlet.AuthFilter.doFilter(AuthFilter.java:176) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.oozie.servlet.HostnameFilter.doFilter(HostnameFilter.java:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.oozie.coord.CoordinatorJobException: E1004: Expression language evaluation error, Unable to evaluate :${now(0,0)}: at org.apache.oozie.command.coord.CoordSubmitXCommand.resolveTagContents(CoordSubmitXCommand.java:1003) at org.apache.oozie.command.coord.CoordSubmitXCommand.resolveIOEvents(CoordSubmitXCommand.java:889) at org.apache.oozie.command.coord.CoordSubmitXCommand.resolveInitial(CoordSubmitXCommand.java:797) at org.apache.oozie.command.coord.CoordSubmitXCommand.basicResolveAndIncludeDS(CoordSubmitXCommand.java:606) at org.apache.oozie.command.coord.CoordSubmitXCommand.submitJob(CoordSubmitXCommand.java:229) ... 32 more Caused by: java.lang.Exception: Unable to evaluate :${now(0,0)}: at org.apache.oozie.coord.CoordELFunctions.evalAndWrap(CoordELFunctions.java:723) at org.apache.oozie.command.coord.CoordSubmitXCommand.resolveTagContents(CoordSubmitXCommand.java:999) ... 36 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:204) at org.apache.oozie.coord.CoordELFunctions.evalAndWrap(CoordELFunctions.java:714) ... 37 more
Created 01-20-2016 03:22 AM
This looks like a configuration issue where Oozie is probably not setup correctly for Falcon in the sandbox (Assuming you are using sandbox). Please refer to http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_installing_manually_book/content/configur... This document should explain all the configs Oozie should have for Falcon to work successfully. My guess is that the Coord EL Functions Properties are missing.
Created 01-20-2016 03:18 AM
Created 01-20-2016 03:21 AM
I think you just shed the light on my issues going through the falcon tutorial. I've been failing at it and won't be surprised it's due to this error. All along it was a bug in Sandbox :(. @azeltov @zblanco @Rafael Coss
Created 01-20-2016 03:35 AM
We tested the 2.3 sandbox to make sure Oozie was configured correctly for Falcon. This seems to be a regression in latest Sandbox. Let me follow up with the team. Can you please share the Sandbox build you are using?
Created 01-20-2016 03:47 AM
Balu - I am using the latest build -
[root@sandbox ~]# cat sandbox.info Sandbox information: Created on: 27_10_2015_15_18_06 for vmware Hadoop stack version: Hadoop 2.7.1.2.3.2.0-2950 Ambari Version: 2.1.2 Ambari Hash: 0ef0b7b62cf14eaaff3c5c3f416253f568f323f9 Ambari build: Release : 377 OS Version: CentOS release 6.7 (Final)
Created 01-20-2016 03:22 AM
This looks like a configuration issue where Oozie is probably not setup correctly for Falcon in the sandbox (Assuming you are using sandbox). Please refer to http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_installing_manually_book/content/configur... This document should explain all the configs Oozie should have for Falcon to work successfully. My guess is that the Coord EL Functions Properties are missing.
Created 01-20-2016 03:48 AM
I agree that Coord El function props are missing but I wasnt sure about the steps to add those. Let me try http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_installing_manually_book/content/configur... and will update this thread.
Created on 01-20-2016 04:10 AM - edited 08-19-2019 05:03 AM
Following 3 properties were missing in the sandbox, that I think should be there because we dont want folks using Sandbox to get stuck with this issue. However the issue is not yet resolved.. Previously, I was misisng the function "now" which got added with the properties detailed at that link but now I am missing another function - dataIn
Missing Properties
New Exception -
Caused by: E1004 : E1004: Expression language evaluation error, Unable to evaluate :${dataIn('eventData', 'null')}: at org.apache.oozie.client.OozieClient.handleError(OozieClient.java:612)
Created on 01-20-2016 04:13 AM - edited 08-19-2019 05:03 AM
Does this look okay to you? This is from the documentation - http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.0/bk_installing_manually_book/content/configur...
Created 01-20-2016 04:23 AM
Some more updates -
Tried couple of things but still having issue
A) Tried changing
dataIn=org.apache.oozie.extensions.OozieELExtensions#ph3_dataIn, =org.apache.oozie.coord.CoordELFunctions#ph3_coord_nominalTime,
To
dataIn=org.apache.oozie.extensions.OozieELExtensions#ph3_dataIn,
nominalTime=org.apache.oozie.coord.CoordELFunctions#ph3_coord_nominalTime,
B) Also added dataIn to the "oozie.service.ELService.ext.functions.coord-job-submit-instances"
Still getting error --- "Caused by: E1004 : E1004: Expression language evaluation error, Unable to evaluate :${dataIn('eventData', 'null')}:"