Configure a MySQL Data Store for Oozie

About this task

IMPORTANT This component is deprecated. Hewlett Packard Enterprise recommends using an alternate product. For more information, see Discontinued Ecosystem Components.
Follow these steps to configure Oozie to use a MySQL database as the Oozie data store (instead of the default Apache Derby database). The MySQL database can also be used to support high availability (HA).

Procedure

  1. Using the mysql command-line tool, create a MySQL database, user, and password for the Oozie user. For example:
    mysql> create database oozie;
    mysql> grant all privileges on oozie.* to '<oozie-user>'@'%' identified by '<oozie-passwd>';
  2. Stop the Oozie server:
    maprcli node services -name oozie -action stop -nodes <node-list>
  3. Set the following JPAService properties in the oozie-site.xml file: Note: In the JDBC URL property, use the correct hostname (where MySQL is running).
    <property>
        <name>oozie.service.JPAService.jdbc.driver</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.url</name>
        <value>jdbc:mysql://localhost:3306/oozie</value>
        </property>
    <property>
        <name>oozie.service.JPAService.jdbc.username</name>
        <value>oozie</value>
    </property>
    <property>
        <name>oozie.service.JPAService.jdbc.password</name>
        <value>oozie</value>
    </property>
  4. For earlier EEP 4.1.0 versions, copy the MySQL JDBC driver mysql-connector-java-<version>-bin.jar file to the following directory.
    /opt/mapr/oozie/oozie-<oozieversion>/libext

    For EEP 4.1.0 and later, the JDBC driver file mysql-connector-java-<version>-bin.jar is automatically copied from the /opt/mapr/lib/ directory to the /opt/mapr/oozie/oozie-<oozieversion>/libext directory.

    See the repository to confirm default MySQL JDBC driver in /opt/mapr/oozie/oozie-<oozieversion>/libext directory is compatible with your MySQL or MariaDB version. Download and update the default JDBC driver file with the driver file that is compatible with your MySQL or Maria DB version.

  5. Start the Oozie server:
    maprcli node services -name oozie -action start -nodes <node-list>
  6. Check that MySQL is now in use by looking at the contents of the oozie.log file. For example:
    cat /opt/mapr/oozie/oozie-<version>/logs/oozie.log |grep mysql
    2015-07-24 06:10:07,023  INFO JPAService:541 - SERVER[local.novalocal] USER[-]
    GROUP[-] TOKEN[-] APP[-] JOB[-] ACTION[-] JPA configuration:
    DriverClassName=com.mysql.jdbc.Driver,Url=jdbc:mysql://localhost:3306/oozie,Username=oozie,...
  7. To encrypt the Oozie database user password, see Encrypt the Oozie Database User Password.