Installing standard Python 3.8 binary on CentOS 7, CentOS 8 at a standard or custom location
Cloudera Manager agents and Hue require Python 3.8. You must install Python 3.8.12 or higher on all cluster hosts before installing Cloudera Manager and adding services to your cluster. Follow the instructions in this topic to manually download, install, and build standard Python 3.8 binaries from source on CentOS 7 and CentOS 8 at a standard or custom location.
- Python 2.7.5 is preinstalled on CentOS 7, but CDP requires Python 3.8
- Python is not distributed with CentOS 8, unlike other Linux distributions
You can install Python 3.8 in a standard location or in a custom location depending on your organization's policies. To install Python 3.8 in a custom location, replace [***CUSTOM-INSTALL-PATH***] in the instructions with the custom path.
- gcc
- make
- openssl-devel
- bzip2-devel
- libffi-devel
- zlib-devel
yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel -y
- You can install the Python 3.8 from CentOS Software Collections (SCL) by
running the following
commands:
yum install centos-release-scl ( part of the extra repository ) yum install rh-python38 rh-python38-python-pip rh-python38-python-pip-wheel
- Verify Python 3.8 is installed successfully.
- If you are unable to install Python 3.8 from CentOS Software Collections (SCL), then you can perform the following steps to build the Python 3.8 from source distribution.
- Enable Cloudera Manager to use Python 3.8 installed in a custom location
-
If you have installed Python 3.8 at a custom location, then you must either create a symbolic link using the alternatives command or by adding an environment variable to the Cloudera Manager Agent in the systemd service definition files with the full path to the Python 3.8 custom-built binary.
To use the alternatives command, get help by running the command alternatives --help. You should create symbolic links from either /usr/bin/python3.8 or /usr/local/bin/python3.8 to [***CUSTOM-INSTALL-PATH***]/bin/python3.8 where you installed the Python 3.8 package.
To add an environment variable to the Cloudera Manager Agent in the systemd service definition files perform the following steps:- SSH into the host system on which you installed Python 3.8 as a root user.
- Open the /usr/lib/systemd/system/cloudera-scm-supervisord.service file for editing.
- Add the following line in the
cloudera-scm-supervisord.service file
under the [Service]
section:
Environment=”PYTHONBIN=[***CUSTOM-INSTALL-PATH***]/bin/python3.8”
- Open the /usr/lib/systemd/system/cloudera-scm-agent.service file for editing.
- Add the following line in the
cloudera-scm-agent.service file under
the [Service]
section:
Environment=”PYTHONBIN=[***CUSTOM-INSTALL-PATH***]/bin/python3.8”
- Enable Hue to use Python 3.8 installed in a custom location
- If you have installed Python 3.8 in a custom location and you did not
configure alternatives, then you must prepend the custom path to the custom
bin directory in
Key: PATH
Value: [***CUSTOM-INSTALL-PATH***]:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
separated by colon (:) as follows:
- Install the psycopg2-binary package
- Install the
psycopg2-binary
package after installing Python 3.8 for using PostgreSQL as a backend database for Hue.