If you're using Cloudera Manager, you've probably installed CDH via
packages?  If so, you actually only have to copy your jar file to
/usr/lib/oozie/libext/ or /var/lib/oozie/ (they're the same location, one
of them is a symlink but I forget which) and restart Oozie; you should not
run the oozie-setup.sh command.

- Robert


On Mon, Jul 15, 2013 at 6:46 AM, Serega Sheypak <serega.shey...@gmail.com>wrote:

> Hm... function installation in production is rather tricky.
> 1. I think puppet can drop jar from nexus to ooze folder
> 2. it can stop oozie and run command
> 3. config update wouldn't be so easy in case of Cloudera Manager. We'll
> need some special stuff to update config via API (if it's possible)
>
> Thanks, I'm trying to make it work.
>
>
> 2013/7/13 Mona Chitnis <chit...@yahoo-inc.com>
>
> > Also if you feel your custom implementation can benefit others, feel free
> > to contribute to Oozie via creating a patch and uploading to a JIRA -
> > https://issues.apache.org/jira/browse/OOZIE
> >
> >
> > On 7/12/13 11:12 AM, "Robert Kanter" <rkan...@cloudera.com> wrote:
> >
> > >Hi Serega,
> > >
> > >I'm actually working on a tutorial blog post for the Cloudera website on
> > >how to make an EL function.  It's not quite done yet, but here's the
> basic
> > >steps you need to do:
> > >
> > >1) Write the function in a new Java class.  There's no interface or
> class
> > >to inherit from, you just make a new class in whatever package you want
> > >(e.g. my.package.AwesomeELFunctions).  For what you want, its signature
> > >would be:
> > >        public static int functionName(String stringWithDatetime, String
> > >pattern)
> > >If you want to create more than one function, they can all go in the
> same
> > >class as well.
> > >
> > >2) Compile your class.  You only need Oozie dependencies if you're
> > >function
> > >requires something from Oozie.  You can use javac, maven, Eclipse, etc
> to
> > >compile it.  Make sure to create a jar.
> > >
> > >3) (Shut down Oozie and) copy the jar file to
> > >/where/you/deployed/oozie/libext/ and re-run bin/oozie-setup.sh
> > >prepare-war
> > >
> > >4) In oozie-site.xml, set (or add if it doesn't exist) a property like
> > >this:
> > ><property>
> > >     <name>oozie.service.ELService.ext.functions.workflow</name>
> > >     <value>
> > >          functionName=my.package.AwesomeELFunctions#functionName
> > >     </value>
> > ></property>
> > >If you have more functions, that property takes a comma separated list
> of
> > >them.  The value on the left side of the equals is the name that you'd
> use
> > >in a workflow and the value on the right side is the name of your
> function
> > >in your Java code.  For the value on the left side, you can optionally
> put
> > >a prefix (you may have seen many built-in functions that start with
> "wf:"
> > >for example).
> > >
> > >5) Start up Oozie.  You should now be able to use the functionName
> custom
> > >EL Function you created!
> > >
> > >I believe this may only make the function available in workflows, but
> I'm
> > >not sure; if not, there should be a similar property in oozie-site you
> can
> > >set for coordinators if you need that.
> > >
> > >Once my proper tutorial blog post is posted, I'll add a link to this
> > >thread, but it may be a while.
> > >
> > >- Robert
> > >
> > >
> > >
> > >
> > >On Fri, Jul 12, 2013 at 7:26 AM, Serega Sheypak
> > ><serega.shey...@gmail.com>wrote:
> > >
> > >> Hi, I need to create custom EL function.
> > >> It accepts:
> > >> String StringWithDatetime
> > >> String Pattern (to parse Date)
> > >> It returns:
> > >> time in seconds.
> > >>
> > >> Please tell me:
> > >> 1. Where can I find example?
> > >> 2. Where do I have to put implementation of this function?
> > >>
> >
> >
>

Reply via email to