Installing the psycopg2 Python package for PostgreSQL-backed Hue

If you are installing Runtime 7 and using PostgreSQL as a backend database for Hue, 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.

  1. SSH into the Hue host as a root user.
  2. Install the psycopg2 package dependencies for CentOS 7 by running the following commands:
    yum install -y centos-release
    yum install -y centos-release-scl
    yum install -y xmlsec1  xmlsec1-openssl
  3. Install the rh-postgresql-postgresql-devel package corresponding to your database version by running the following command:
    yum install -y rh-postgresql[***DB-VERSION***]-postgresql-devel
  4. Add the location of the installed rh-postgresql-postgresql-devel package to the PATH environment variable by running the following command:
    export PATH=/opt/rh/rh-postgresql[***DB-VERSION***]/root/usr/bin:$PATH
  5. Verify the database version by running the following command:
    psql -V
  6. Install the psycopg2 package by running the following command:
    pip3.8 install psycopg2==2.9.3
If you see an error such as ImportError: libpq.so.rh-postgresql10-5: cannot open shared object file: No such file or directory, then add the path where you installed the package to the LD_LIBRARY_PATH environment variable as shown in the following sample command:
export LD_LIBRARY_PATH=/opt/rh/rh-postgresql[***DB-VERSION***]/root/usr/lib64:$LD_LIBRARY_PATH
To install the centos7-extras repo, perform the following steps:
  1. Obtain the release number of the operating system and input it into the OS_RELEASE_MAJOR variable by running the following commands:
    OS_RELEASE=$(rpm -q --qf "%{VERSION}" $(rpm -q --whatprovides redhat-release))
    OS_RELEASE_MAJOR=$(echo $OS_RELEASE | cut -d. -f1)
  2. Download the GPG key and save it locally by running the following command:
    curl -s https://www.centos.org/keys/RPM-GPG-KEY-CentOS-$OS_RELEASE_MAJOR | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$OS_RELEASE_MAJOR
  3. Create the repo file named Centos-Extras.repo in the /etc/yum.repos.d directory by running the following command:
    vi /etc/yum.repos.d/Centos-Extras.repo
  4. Add the following lines in the Centos-Extras.repo file, save the file and exit:
    [extras] 
    name=CentOS-$releasever - Extras baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ 
    #baseurl=http://mirror.infra.cloudera.com/repos/centos/7/extras/\$basearch/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    priority=1
  1. SSH into the Hue host as a root user.
  2. Install the psycopg2 package dependencies for RHEL 8 by running the following commands:
    dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    yum install -y xmlsec1  xmlsec1-openssl
  3. Disable the PostgreSQL database by running the following command:
    dnf -qy module disable postgresql
  4. Install the PostgreSQL database server corresponding to your database version by running the following command:
    dnf install -y postgresql[***DB-VERSION***]-server
  5. Install the postgresql-devel package corresponding to your database version by running the following command:
    yum install -y postgresql[***DB-VERSION***]-devel
  6. Add the location of the installed postgresql-devel package to the PATH environment variable by running the following command:
    export PATH=/usr/pgsql-[***DB-VERSION***]/bin:$PATH
  7. Install the psycopg2 package by running the following command:
    pip3.8 install psycopg2==2.9.3
  1. SSH into the Hue host as a root user.
  2. Install the psycopg2 package dependencies for SLES 12 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
  1. SSH into the Hue host as a root user.
  2. Install the psycopg2 package dependencies for Ubuntu 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