Installing the psycopg2 Python package for PostgreSQL database

If you are using PostgreSQL as a backend database for Hue on CDP Private Cloud Base 7, then you must install the 2.9.3 version of the psycopg2 package on all Hue hosts. The psycopg2 package is automatically installed as a dependency of Cloudera Manager Agent, but the version installed is often lower than 2.9.3.

Before you begin, you must disable the postgresql10 section from the cloudera-manager.repo file as follows:
  1. SSH in to the Cloudera Manager host as an Administrator.
  2. Change to the directory where you had downloaded the cloudera-manager.repo file. On RHEL, the file is present under the /etc/yum.repos.d directory.
  3. Open the file for editing and update the value of the enabled property to 0 as follows:
    [postgresql10]
    name=Postgresql 10
    baseurl=https://archive.cloudera.com/postgresql10/redhat8/
    gpgkey=https://archive.cloudera.com/postgresql10/redhat8/RPM-GPG-KEY-PGDG-10
    enabled=0 
    gpgcheck=1
    module_hotfixes=true 
  4. Save the file and exit.

The following steps apply to CentOS 7, RHEL 7, OEL 7, CentOS 8, RHEL 8, and OEL 8:

  1. SSH into the Hue server host as a root user.
  2. Install the psycopg2-binary package as follows:
    pip3.8 install psycopg2-binary
  3. Repeat these steps on all the Hue server hosts.
If you get the "Error: pg_config executable not found" error while installing the psycopg2-binary package, then run the following commands to install the postgresql, postgresql-devel, python-devel packages:
yum install postgresql postgresql-devel python-devel

The following steps apply to RHEL 9, as the minimum version of Python is 3.9:

  1. SSH into the Hue server host as a root user.
  2. Install pip for Python as follows:
    yum install python3-pip -y
  3. Add the /usr/local/bin path to the PATH environment variable:
    export PATH=$PATH:/usr/local/bin
    echo $PATH
  4. Install the psycopg2-binary package as follows:
    pip3 install psycopg2-binary
  5. Repeat these steps on all the Hue server hosts.
If you get the "Error: pg_config executable not found" error while installing the psycopg2-binary package, then run the following commands to install the postgresql, postgresql-devel, python-devel packages:
yum install postgresql postgresql-devel python-devel

The following steps apply to SLES 12 (upgrades to 7.1.8) and SLES 15 SP4 (upgrades to 7.1.9 or higher):

  1. SSH into the Hue host as a root user.
  2. Install the psycopg2 package dependencies by running the following commands:
    zypper install xmlsec1
    zypper install xmlsec1-devel
    zypper install xmlsec1-openssl-devel
  3. Install the postgresql-devel package corresponding to your database version by running the following command:
    zypper -n postgresql[***DB-VERSION***]-devel
  4. Add the location of the installed postgresql-devel package to the PATH environment variable by running the following command:
    export PATH=$PATH:/usr/local/bin
  5. Install the psycopg2 package by running the following command:
    pip3.8 install psycopg2==2.9.3 --ignore-installed

The following steps apply to Ubuntu 18 (upgrades to 7.1.8) and Ubuntu 20 (upgrades to 7.1.9 or higher):

  1. SSH into the Hue host as a root user.
  2. Install the psycopg2 package dependencies by running the following commands:
    apt-get install -y xmlsec1
    apt-get install libxmlsec1-openssl
    apt-get install libpq-dev python3-pip -y
  3. Install the python3-dev and libpq-dev packages by running the following command:
    apt install python3-dev libpq-dev
  4. Add the location of the installed postgresql-devel package to the PATH environment variable by running the following command:
    export PATH=$PATH:/usr/local/bin
  5. Install the psycopg2 package by running the following command:
    pip3.8 install psycopg2==2.9.3 --ignore-installed