[ 
https://issues.apache.org/jira/browse/OOZIE-1740?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13995844#comment-13995844
 ] 

Robert Kanter commented on OOZIE-1740:
--------------------------------------

Sorry for not realizing this before, but after looking at your latest patch, I 
just realized that your function has no way of knowing which Hadoop conf to 
load from HadoopAccessorService, so you're just picking the first one.  Perhaps 
instead of having null or "" load the default, the function should take a 
"{{host:port}}" pair, in which case it simply calls 
{{Services.get().get(HadoopAccessorService.class).createJobConf(hostPort)}} 
which will load and return the correct configurations for you.  If that 
{{hostPort}} doesn't exist, it returns whatever {{*=/path}} is set to.

With that in mind, I'm not sure it makes sense for the function to accept an 
arbitrary path anymore.  The idea is to allow you to modify the configs in your 
cluster, which should be available to the HadoopAccessorService, and would now 
be more easily passed to the EL function with {{host:port}} instead of a local 
path.  Remember that you can also load hadoop configuration formatted files 
(from HDFS) with the {{<job-xml>}} element.  

To clarify, the function would look like this:
{noformat}
${hadoop:conf(HOST:PORT, 'mapreduce.map.java.opts')}
{noformat}
where {{HOST:PORT}} are either the JT/RM or NN.  And because users typically 
parameterize those host:ports anyway, they can do something like this:
{noformat}
${hadoop:conf(jobTracker, 'mapreduce.map.java.opts')}
{noformat}
which I think is much easier than dealing with a local path.  What do you 
think?  Again, sorry for not seeing this sooner.


{quote}Btw, I also agree the 3rd comment: '3. It might also be helpful to make 
this EL function available in Coordinators too'. However I suggest to implement 
this feature in another jira for coordinator only and this jira will focus on 
workflow as its title. What's your opinion?{quote}
This is actually something trivial to do; you just simply add it to the 
appropriate property for coordinator EL functions in oozie-default.xml, like 
you already did for workflows.

> Add a new function hadoop:conf() that can be invoked from the workflow.xml 
> and will return a hadoop configuration option
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OOZIE-1740
>                 URL: https://issues.apache.org/jira/browse/OOZIE-1740
>             Project: Oozie
>          Issue Type: Improvement
>          Components: workflow
>    Affects Versions: trunk, 3.3.2
>            Reporter: sam liu
>            Assignee: sam liu
>         Attachments: OOZIE-1740.patch, OOZIE-1740.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to