How to build Oozie
==================

.. note::

    Apache does not make Oozie builds, so it has to be built manually.

Download
--------

 * Download tarball from `Apache mirror <http://apache-mirror.rbc.ru/pub/apache/oozie/4.0.1>`_
 * Unpack it with

   .. sourcecode:: console

       $ tar -xzvf oozie-4.0.1.tar.gz

Hadoop Versions
---------------

To build Oozie the following command can be used:

.. sourcecode:: console

    $ {oozie_dir}/bin/mkdistro.sh -DskipTests

By default it builds against Hadoop 1.1.1. To built it with 2.x Hadoop version:
 * hadoop-2 version in pom.xml files should be changed.
   It could be done manually or with following command(You should replace
   2.x.x to your hadoop version):

   .. sourcecode:: console

       $ find . -name pom.xml | xargs sed -ri 's/2.3.0/2.x.x/'

 * build command should be launched with ``-P hadoop-2`` flag

JDK Versions
------------

By default, the build configuration enforces that JDK 1.6.* is being used.

There are 2 build properties that can be used to change the JDK version requirements:

 * ``javaVersion`` specifies the version of the JDK used to compile (default 1.6)
 * ``targetJavaVersion`` specifies the version of the generated bytecode (default 1.6)

For example, to specify 1.7 JDK version, build command should contain
``-D javaVersion=1.7 -D tagetJavaVersion=1.7`` flags.



Build
-----

To build Ozzie with 2.6.0 hadoop and 1.7 JDK versions following command can be
used:

.. sourcecode:: console

    $ {oozie_dir}/bin/mkdistro.sh assembly:single -P hadoop-2 -D javaVersion=1.7 -D targetJavaVersion=1.7 -D skipTests

Also, pig version can be passed as maven property with ``-D pig.version=x.x.x``
flag.

Similar instruction to build oozie.tar.gz you may find there: http://oozie.apache.org/docs/4.0.0/DG_QuickStart.html#Building_Oozie