Hi all, Due to the extensive number of files involved in the Python 3 upgrade, conducting an online review has been relatively challenging. Therefore, I collaborated with the colleague who provided this PR offline, conducting extensive review, testing, and bug-fixing work. Now, the Ambari trunk Python 3 upgrade has been successfully completed. We have passed all unit tests, and there have been no issues detected during manual deployments and blueprint automation deployments.
The code changes made during the upgrade process have been organized into documentation, with reasons for the changes clearly stated to facilitate review by everyone. Additionally, the issue provides valuable information on how to compile and test this Python 3 Ambari based on CentOS 7. https://issues.apache.org/jira/browse/AMBARI-26000 <https://issues.apache.org/jira/browse/AMBARI-26000> The following repository provides packages for installing all dependencies for a cluster. Feel free to download and test it, and please report any issues you encounter. (This repository contains Ambari based on trunk with the Python 3 upgrade PR merged, and other big data component packages are from Apache Bigtop 3.2.) http://64.69.37.12:8089 Please note that the bandwidth and traffic for the repository I provided are limited. It's best to download it to your local machine and create your own repository for testing, which will significantly speed up the cluster installation process. Here are the steps to create a repository after downloading: ```bash yum install -y createrepo yum install -y yum-plugin-priorities # Create the yum directory mkdir -p /data1/custom_yum/packages # Put all the RPMs you need to install in the /data1/custom_yum/packages directory, then execute # Specify the 'basedir' as the location to store RPMs, it must be explicitly specified to avoid errors, it will default to the command execution directory createrepo /data1/custom_yum --basedir=/data1/custom_yum/packages # If you add or modify RPMs, you can update the repository with the following command createrepo --update -p /data1/custom_yum ``` Next, expose the repo using an HTTP proxy server. You can use Python's built-in server, which allows downloading one file at a time (slower): ```bash python -m SimpleHTTPServer 8089 ``` Or you can use the Node.js file server, which is faster: ```bash npm install --global http-server cd /data1/custom_yum http-server -p 8089 ``` To use the repository, create a repo configuration file: ```bash vi /etc/yum.repos.d/ambari_custom.repo ``` Add the following content, replacing `your_ip` with the actual IP address: ``` [c7-media] name=CentOS-$releasever - Media baseurl=http://your_ip:8089 gpgcheck=0 enabled=1 priority=2 ``` Then, clean the cache and run the following command for testing: ```bash yum clean all yum makecache yum install hadoop_3_2_0 ``` Happy testing!