Upgrading HDP Manually
Also available as:
loading table of contents...

Configure and Start Apache Oozie


The su commands in this section use "hdfs" to represent the HDFS Service user and "oozie" to represent the Apache Oozie Service user. If you are using another name for your HDFS Service user or your Oozie Service user, you will need to substitute your Service user names for "hdfs" or "oozie" in each of the su commands.

Upgrading 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/current/oozie-server/libext-customer directory.

      cd /usr/hdp/current/oozie-server mkdir libext-customer

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

      chmod -R 777 /usr/hdp/current/oozie-server/libext-customer

  3. Copy these files to the libext-customer directory

    cp /usr/hdp/current/hadoop/lib/hadooplzo*.jar /usr/hdp/current/oozie-server/libext-customer

    cp /usr/share/HDP-oozie/ext.zip /usr/hdp/current/oozie-server/libext-customer/

  4. Extract share-lib.

    /usr/hdp/current/oozie-server/bin/oozie-setup.sh sharelib create -fs hdfs://<namenode>:8020

    To verify that the sharelibs extracted correctly, run the following command:

    oozie admin -oozie http://<oozie server host address>:11000/oozie -shareliblist

    There should be:

    • Available ShareLib

    • oozie

    • hive

    • distcp

    • hcatalog

    • sqoop

    • mapreduce-streaming

    • pig

    Change the ownershop and permissions of the oozie directory:

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

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

  5. If a previous version of Oozie was created using auto schema creation, you must run an SQL query.

    Use the oozie-site.xml properties:

    • oozie.service.JPAService.jdbc.username

    • oozie.service.JPAService.jdbc.username

    • oozie.service.JPAService.jdbc.url

    to obtain the password, username and db to run the query.

    Run the SQL query:

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

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

  7. 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 
  8. Replace the content of /user/oozie/share in HDFS. On the Oozie server host:

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

  9. Add the following property to 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. Upgrade the Oozie database:

    su - oozie -c "bin/ooziedb.sh upgrade -run"

  11. Start Oozie as the Oozie user:

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

  12. Check processes.

    ps -ef | grep -i oozie