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://archive.apache.org/dist/oozie/4.3.1/>`_
* Unpack it with

  .. sourcecode:: console

      $ tar -xzvf oozie-4.3.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.3.1/DG_QuickStart.html#Building_Oozie

