Configure and Start Apache Oozie
Before you can upgrade Apache Oozie, you must have first upgraded your HDP components to the latest version (in this case, 2.4.3). This section assumes that you have already upgraded your components for HDP 2.4.3. If you have not already completed these steps, return to Getting Ready to Upgrade and Upgrade 2.1 Components for instructions on how to upgrade your HDP components to 2.4.3.
| ![[Note]](../common/images/admon/note.png) | Note | 
|---|---|
| The duration of the Oozie upgrade is dependent on the amount of job history stored in ooziedb. This history must be backed up and restored during the upgrade process. Best practice when planning for upgrade is to backup ooziedb from your production oozie server and restore it to a test or development oozie server. This can help you estimate the time that will be required to upgrade Oozie during your production upgrade. | 
| ![[Note]](../common/images/admon/note.png) | Note | 
|---|---|
| The  | 
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:
- You must restore oozie-site.xml from your backup to the conf directory on each oozie server and client. 
- Copy the JDBC jar to libext-customer: - Create the - /usr/hdp/current/oozie-server/libext-customerdirectory.- cd /usr/hdp/current/oozie-server mkdir libext-customer
- Grant read/write/execute access to all users for the libext-customer directory. - chmod -R 777 /usr/hdp/current/oozie-server/libext-customer
 
- 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/
- 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 ownership 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"
- If a previous version of Oozie was created using auto schema creation, you must run an SQL query. - Use the - oozie-site.xmlproperties:- 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');
- As the Oozie user (not root), run the upgrade. - su - oozie -c "/usr/hdp/current/oozie-server/bin/ooziedb.sh upgrade -run"
- 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 
- 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"
- 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. 
- If you have custom Oozie actions, you must define them in oozie-site.xml. Edit the - /etc/oozie/conf/oozie-site.xmlfile and add the following property:- <property> <name>oozie.service.SchemaService.wf.ext.schemas</name> <value>[Comma separated list of custom actions]</value> </property>- For example, if you have added Spark Action, enter the following: - <property> <name>oozie.service.SchemaService.wf.ext.schemas</name> <value>spark-action-0.1.xsd</value> </property>
- Upgrade the Oozie database: - su - oozie -c "bin/ooziedb.sh upgrade -run"
- Start Oozie as the Oozie user: - su - oozie -c "/usr/hdp/current/oozie-server/bin/oozied.sh start"
- Check processes. - ps -ef | grep -i oozie

