3.3. For PostgreSQL

(See "Metastore Database Requirements" and "Installing and Configuring PostgreSQL" in Chapter 1 of this guide.)

  1. Create the Oozie user and Oozie database. For example, using the PostgreSQL psql command-line tool:

    $ psql -U postgres
    Password for user postgres: *****
    postgres=# CREATE ROLE oozie LOGIN ENCRYPTED PASSWORD 'oozie'
    NOSUPERUSER INHERIT CREATEDB NOCREATEROLE;
    CREATE ROLE
     
    postgres=# CREATE DATABASE "oozie" WITH OWNER = oozie
    ENCODING = 'UTF8'
    TABLESPACE = pg_default
    LC_COLLATE = 'en_US.UTF8'
    LC_CTYPE = 'en_US.UTF8'
    CONNECTION LIMIT = -1;
    CREATE DATABASE
     
    postgres=# \q 
  2. Configure PostgreSQL to accept network connections for the oozie user. Edit the PostgreSQL data/pg_hba.conf file as follows:

    host oozie oozie 0.0.0.0/0 md5

  3. Reload the PostgreSQL configuration.

    $ sudo -u postgres pg_ctl reload -s -D /opt/PostgresSQL/8.4/data

  4. Configure Oozie to use PostgreSQL.

    Edit the oozie-site.xml file as follows:

    ... 
    <property>
         <name>oozie.service.JPAService.jdbc.driver</name>
         <value>org.postgresql.Driver</value>
    </property>
    
    <property>
         <name>oozie.service.JPAService.jdbc.url</name>
         <value>jdbc:postgresql://localhost:5432/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> 
[Note]Note

In the JDBC URL property, replace localhost with the hostname where PostgreSQL is running. For PostgreSQL it is unnecessary to download and install the JDBC driver separately because the driver is license-compatible and bundled with Oozie.


loading table of contents...