Command Line Upgrade
Also available as:
PDF
loading table of contents...

Configure and Start Apache Oozie

Upgrading Apache Oozie is a complex process. Although the instructions are straightforward, set aside a dedicated block of time to upgrade oozie clients and servers.

Perform the following preparation steps on each oozie server host:

  1. You must restore oozie-site.xml from your backup to the conf directory on each oozie server and client.

  2. Copy the JDBC jar to libext-customer:

    1. Create the /usr/hdp/2.5.0.0-<version>/oozie-server/libext-customer directory.

      cd /usr/hdp/2.5.0.0-<version>/oozie-server

      mkdir libext-customer

    2. Grant read/write/execute access to all users for the libext-customer directory.

      chmod -R 777 /usr/hdp/2.5.0.0-<version>/oozie-server/libext-customer

  3. Copy these files to the libext-customer directory

    cp /usr/hdp/2.5.0.0-<version>/hadoop-client/lib/hadoop*lzo*.jar /usr/hdp/current/oozie-server/libext-customer

    cp /usr/share/HDP-oozie/ext.zip /usr/hdp/2.5.0.0-<version>/oozie-server/libext-customer/

    Also, copy Oozie db jar in libext-customer.

  4. If Falcon was also installed and configured before upgrade in HDP 2.5, then after upgrade you might also need to do the following:

    cp /usr/hdp/current/falcon-server/oozie/ext/falcon-oozie-el-extension-"jar /usr/hdp/current/oozie-server/libext-customer

  5. Extract share-lib.

    cd /usr/hdp/2.5.0.0-<version>/oozie-server

    tar xzvf /usr/hdp/2.5.0.0-<version>/oozie-server/oozie-sharelib.tar.gz

    su - hdfs -c "hdfs dfs -mkdir -p /user/oozie"

    su - hdfs -c "hdfs dfs -copyFromLocal /usr/hdp/current/oozie-server/share /user/oozie/."

    You can expect warnings that some files already exist. Delete any existing /oozie/share and replace it with the newly-extracted files.

    su - hdfs -c "hdfs dfs -chown oozie:hadoop /user/oozie"

    su - hdfs -c "hdfs dfs -chmod -R 755 /user/oozie"

  6. If a previous version of Oozie was created using auto schema creation, run the following SQL query:

    insert into oozie_sys (name, data) values ('db.version', '2.5');
  7. As the Oozie user (not root), run the upgrade.

    su - oozie -c "/usr/hdp/current/oozie-server/bin/ooziedb.sh upgrade -run"

  8. As root, prepare the Oozie WAR file.

    chown oozie:oozie /usr/hdp/current/oozie-server/oozie-server/conf/server.xml

    su - oozie -c "/usr/hdp/current/oozie-server/bin/oozie-setup.sh prepare-war -d /usr/hdp/current/oozie-server/libext-customer"

    Look for console output to indicate success. For example, if you are using MySQL you should see something similar to:

    INFO: Adding extension: libext-customer/mysql-connector-java.jar
    New Oozie WAR file with added 'JARs' at /var/lib/oozie/oozie-server/webapps/oozie.war 
  9. Make sure that following property is added in oozie-log4j.properties:

    log4j.appender.oozie.layout.ConversionPattern=%d{ISO8601} %5p %c{1}:%L - SERVER[${oozie.instance.id}] %m%n

    where ${oozie.instance.id} is determined by oozie, automatically.

  10. Configure HTTPS for the Oozie server.

    1. Create a self signed certificate or get certificate from a trusted CA for the Oozie Server

    2. Import the certificate to the client JDK trust store on all client nodes.

    3. In the Ambari Oozie configuration, set the following environment variables in oozie-env.sh, adding them if it does not exist:

      export OOZIE_HTTPS_PORT=11443
      export OOZIE_HTTPS_KEYSTORE_FILE=/home/oozie/.keystore
      export OOZIE_HTTPS_KEYSTORE_PASS=password
                  
    4. Change OOZIE_HTTP_PORT={{oozie_server_port}} to OOZIE_HTTP_PORT=11000.

    5. Set the oozie.base.url to the HTTPS address.

    6. Save the configuration, and restart the Oozie components.

  11. Start Oozie as the Oozie user:

    su - oozie -c "/usr/hdp/current/oozie-server/bin/oozie-start.sh"

  12. Check processes.

    ps -ef | grep -i oozie