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 Hadoop version
2.x:

 * The hadoop-2 version should be changed in pom.xml.
   This can be done manually or with the following command (you should
   replace 2.x.x with your hadoop version):

   .. sourcecode:: console

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

 * The build command should be launched with the ``-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 JDK version 1.7, the build command should contain the
``-D javaVersion=1.7 -D tagetJavaVersion=1.7`` flags.



Build
-----

To build Oozie with Hadoop 2.6.0 and JDK version 1.7, the 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, the pig version can be passed as a maven property with the flag
``-D pig.version=x.x.x``.

You can find similar instructions to build oozie.tar.gz here:
http://oozie.apache.org/docs/4.0.0/DG_QuickStart.html#Building_Oozie

