Support Questions

Find answers, ask questions, and share your expertise

Falcon Tutorial : EL function issue in Oozie via Falcon - HDP 2.3.2

avatar

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

1 ACCEPTED SOLUTION

avatar
Expert Contributor

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.

View solution in original post

14 REPLIES 14

avatar

avatar
Master Mentor
@bsaini

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

avatar
Expert Contributor

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?

avatar

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)

avatar
Expert Contributor

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.

avatar

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.

avatar

@Balu

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

1469-screen-shot-2016-01-19-at-105602-pm.png

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)

avatar

avatar

@Balu

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')}:"