Install the Oozie Package
Prerequisites
You must have at least core Hadoop on your system. See Configure the Remote Repositories for more information.
Verify the HDP repositories are available:
yum list oozie
The output should list at least one Oozie package similar to the following:
oozie.noarch <version>
If yum responds with "Error: No matching package to list" as shown below, yum cannot locate a matching RPM. This can happen if the repository hosting the HDP RPMs is unavailable, or has been disabled. Follow the instructions at Configure the Remote Repositories to configure either a public or private repository before proceeding.
Error: No matching package to list.
Installation
On the Oozie server, install the necessary RPMs.
For RHEL/CentOS/Oracle Linux:
yum install oozie oozie-client
For SLES:
zypper install oozie oozie-client
On the Oozie client (typically a gateway machine), install the oozie-client package.
For RHEL/CentOS/Oracle Linux:
yum install oozie-client
Update the default user profile to define a default value for OOZIE_URL.
Typically this is done by adding a file in
/etc/profile.d
named oozie.sh. The value should be the http url of the Oozie server. Typically, http://oozie.example.com:11000/oozie for non-secure clusters or https://oozie.example.com:11443/oozie for secure clusters.Install optional features: Oozie Web Console, Compression, and Drivers.
Set up the Oozie lib extension directory:
cd /usr/hdp/current/oozie-server
Add the Ext library to the Oozie application:
For RHEL/CentOS/Oracle Linux:
yum install extjs-2.2-1
cp /usr/share/HDP-oozie/ext-2.2.zip /usr/hdp/current/oozie-client/libext/
For SLES:
zypper install extjs-2.2-1
cp /usr/share/HDP-oozie/ext-2.2.zip /usr/hdp/current/oozie-client/libext/
Add LZO JAR files:
Note If you do not have an LZO JAR file, you must enable LZO compression first.
In
/usr/hdp/current/hadoop-client/lib/hadoop-lzo-*.jar libext
Add PostgreSQL driver.
Copy your PostgreSQL JDBC driver jar to the libext directory:
cp /usr/share/java/postgresql-jdbc.jar /usr/hdp/current/oozie-client/libext/
Add database connector JAR files.
If you did not already create a lib extension directory, create one now:
cd /usr/hdp/current/oozie-client
For MySQL:
Copy your mysql driver jar to libext directory.
yum install mysql-connector-java
In
/usr/share/java/mysql-connector-java.jar libext/
For Oracle
Copy your oracle driver jar to the libext directory.
cp ojdbc6.jar /usr/hdp/current/oozie-client/libext/
For Derby:
Copy your derby driver jar to the libext directory.
cp derby-10-10-1.1.jar /usr/hdp/current/oozie-client/libext/
Modify the
/etc/oozie/conf/oozie-env.sh
file to look like:From:
export OOZIE_CONFIG=${OOZIE_CONFIG:-/usr/hdp/current/oozie-server/conf} export OOZIE_DATA=${OOZIE_DATA:-/var/lib/oozie/data} export OOZIE_LOG=${OOZIE_LOG:-/var/log/oozie} export CATALINA_BASE=${CATALINA_BASE:-/usr/hdp/current/oozie-server/oozie-server} export CATALINA_TMPDIR=${CATALINA_TMPDIR:-/var/tmp/oozie} export CATALINA_PID=${CATALINA_PID:-/var/run/oozie/oozie.pid} export OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat export OOZIE_BASE_URL=http://oozie.example.com:11000/oozie
For secure clusters, replace the last line with the jks path and add a password to match the system configuration:
export OOZIE_CONFIG=${OOZIE_CONFIG:-/usr/hdp/current/oozie-server/conf} export OOZIE_DATA=${OOZIE_DATA:-/var/lib/oozie/data} export OOZIE_LOG=${OOZIE_LOG:-/var/log/oozie} export CATALINA_BASE=${CATALINA_BASE:-/usr/hdp/current/oozie-server/oozie-server} export CATALINA_TMPDIR=${CATALINA_TMPDIR:-/var/tmp/oozie} export CATALINA_PID=${CATALINA_PID:-/var/run/oozie/oozie.pid} export OOZIE_CATALINA_HOME=/usr/lib/bigtop-tomcat export OOZIE_BASE_URL=https://oozie.example.com:11443/oozie export OOZIE_HTTPS_KEYSTORE_FILE=/etc/security/hadoop/server.jks export OOZIE_HTTPS_KEYSTORE_PASS=changeit
Create a WAR file by running the following command as root:
cd /usr/hdp/current/oozie-client bin/oozie-setup.sh prepare-war
For secure clusters, add the "-secure" parameter to the above command.
Note If the create WAR command fails with the following error:
File/Dir does not exist: /usr/hdp/2.3.0.0-2800/oozie-server/conf/ssl/server.xml
find the path of the SSL directory that matches oozie/tomcat-deployment/ssl:
find / -name ssl
For example, if that SSL path is
/grid/0/hdp/2.3.0.0-2800/oozie/tomcat-deployment/conf/ssl
, copy over that SSL directory tousr/hdp/current/oozie-server/conf
:cp -r /grid/0/hdp/2.3.0.0-2800/oozie/tomcat-deployment/conf/ssl /usr/hdp/current/oozie-server/conf/
Then run
bin/oozie-setup.sh prepare-war
.