![]() | Note |
---|---|
The |
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:
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/libext-customer
directory.cd /usr/hdp/current/oozie mkdir libext-customer
Grant read/write/execute access to all users for the libext-customer directory.
chmod -R 777 /usr/hdp/current/oozie/libext-customer
Copy these files to the libext-customer directory
cp /usr/hdp/current/hadoop/lib/hadooplzo*.jar /usr/hdp/current/oozie/libext-customer
cp /usr/share/HDP-oozie/ext.zip /usr/hdp/current/oozie/libext-customer/
Extract share-lib.
/usr/hdp/current/oozie/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"
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');
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.
su - oozie -c "/usr/hdp/current/oozie/bin/oozie-setup.sh prepare-war -d /usr/hdp/current/oozie/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/bin/oozie-setup.sh prepare-war -d /usr/hdp/current/oozie/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.xml
file and add the following property:<property> <name>oozie.service.SchemaService.wf.ext.schemas</name> <value>[Comma seperated 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 "cd /grid/0/var/log/oozie; /usr/hdp/current/oozie/oozie-server/bin/catalina.sh /usr/hdp/current/oozie/oozie-server/bin/setclasspath.sh /usr/hdp/current/oozie-server/bin/oozied.sh start"
Check processes.
ps -ef | grep -i oozie