Follow the below steps to upgrade the Ambari version.
Stop Infra-solr Service
Stop the Infra-solr Service from Ambari-UI.

Stop Ambari Server and Agents
Stop Ambari Server
Take the backup of ambari-server configs.
/etc/ambari-server/conf/
ambari-server stopStop Agents
Stop Ambari-agent on every cluster node.
ambari-agent stopBack up Ambari Database
Take the ambari-server backend database backup from the server host.
DB Backup Commands
mkdir /tmp/ambari-server_db_bckpmysqldump --databases ambari > /tmp/ambari-server_db_bckp/ambari_mysql_bckp.sqlThe upgraded version Ambari-2.7.8.2-3 supports only Python 3.11. Ensure that Python 3.11 is installed and configured on all the cluster nodes before proceeding with the upgrade.
Add Ambari Repo on Cluster Nodes
Back up the Old Ambari Repository
Run the following command:
mv /etc/yum.repos.d/ambari.repo /tmp/Retrieve the latest Ambari repository details from Accessing Acceldata Repositories and add it to all cluster nodes.
List the existing Ambari packages
On RHEL:
rpm -qa | grep ambariOn Ubuntu:
apt list ambari-*Example Output (if the current Ambari version is 3.0.0.0-1):
ambari-infra-solr-3.0.0.0-1.noarchambari-agent-3.0.0.0-1.x86_64ambari-server-3.0.0.0-1.x86_64ambari-infra-solr-client-3.0.0.0-1.noarchRemove existing Ambari rpm’s
From the Ambari Server node, remove the installed packages before upgrading:
On RHEL:
yum remove ambari-serverOn Ubuntu:
apt remove ambari-server- Adjust the package names based on the installed versions on each node.
- You can verify the installed packages before removing them using:
On RHEL:
rpm -qa | grep ambariOn Ubuntu:
apt list ambari-*Make sure the Amabri packages are not installed.
Install Ambari packages
If you are upgrading from any Python 2 based ODP version, make sure to perform the below additional steps to install Python 3.11 and its dependencies on all the hosts before proceeding with the next step.
For Ubuntu 20/22:
apt install software-properties-commonadd-apt-repository ppa:deadsnakes/ppaapt updateapt-get install python3.11 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py/usr/bin/python3.11 get-pip.pypip3.11 install distro lxml rpmFor RHEL 8:
yum install python3.11 python3.11-pip pip3.11 install distro lxml rpmInstall the latest Ambari-server only on ambari-server node.
Server Node
On RHEL:
yum clean allyum install ambari-server -yOn Ubuntu:
apt cleanapt updateapt install ambari-server -ySet up Java 17
Make sure to install and update the default Java version as 17 on all the cluster nodes.
For RHEL:
yum install java-17-openjdk.x86_64yum install java-17-openjdk-devel.x86_64For Ubuntu:
apt-get install openjdk-17-jdk openjdk-17-jdk-headlessEnsure not to remove the jdk8 packages at this state.
update-alternatives --config javaThere are 2 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status------------------------------------------------------------* 0 /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1111 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode 2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual modePress <enter> to keep the current choice[*], or type selection number: 1Set up Python 3.11
yum install python3.11Make sure to install and update the default Python version as 3.11 on all the cluster nodes.
update-alternatives --config pythonThere are 4 programs which provide 'python'. Selection Command-----------------------------------------------* 1 /usr/libexec/no-python 2 /usr/bin/python3 3 /usr/bin/python2 + 4 /usr/bin/python3.11Enter to keep the current selection[+], or type selection number: 4Update JSVC
Make sure to Instal the latest version of the bigtop-jsvc-1.2.4 on all the cluster nodes.
For RHEL:
yum install bigtop-jsvc* -yFor Ubuntu:
apt install bigtop-jsvcRestore Config Files
Restore the ambari.properties and password.dat files, which are backed up at this step: Configuration Backup on this page.
Restore the ambari.properties file
cp /etc/ambari-server/conf_bkp/ambari.properties /etc/ambari-server/conf/Please override the file by prompting 'y'.
Restore the password.dat file
cp /etc/ambari-server/conf_bkp/password.dat /etc/ambari-server/conf/Update the java.home and stack.java.home
In this case, set JAVA_HOME to /usr/lib/jvm/java-17-openjdk
File path - /etc/ambari-server/conf/ambari.properties | grep -i java.home
java.home=/usr/lib/jvm/java-17-openjdkstack.java.home=/usr/lib/jvm/java-17-openjdkambari.java.home=/usr/lib/jvm/java-17-openjdkmpacks-v2.staging.path=/var/lib/ambari-server/resources/mpacks-v2Ambari Server Schema Upgrade
Before upgrading, ensure a database backup has been taken (as mentioned in Step 6).
Run the Ambari Server upgrade command:
ambari-server upgrade -vIf you encounter the following error:
python version after sym links /usr/bin/python3.11Using python /usr/bin/python3.11Upgrading ambari-serverTraceback (most recent call last): File "/usr/sbin/ambari-server.py", line 28, in <module> from ambari_commons.exceptions import FatalException, NonFatalException File "/usr/lib/ambari-server/lib/ambari_commons/__init__.py", line 21, in <module> from ambari_commons.os_check import OSCheck, OSConst File "/usr/lib/ambari-server/lib/ambari_commons/os_check.py", line 25, in <module> import distroModuleNotFoundError: No module named 'distro'Set up the Distro Module
Install the required dependencies on the ambari-server and ambari-agent nodes.
On RHEL:
yum install python3.11-pip -ypip3.11 install distro lxmlOn Ubuntu:
apt-get updateapt-get install python3-pippip3 install distroRetry the Upgrade again
ambari-server upgrade -vResponse when prompted:
Ambari Server configured for MySQL. Confirm you have made a backup of the Ambari Server database [y/n] (n)? yEnter 'y' to confirm.After the successful completion, you must see the following message.
Ambari Server 'upgrade' completed successfully.Start Ambari-server
ambari-server startOnce started, verify that the Ambari UI is accessible using the same URL as before.
Verify Ambari Version
Verify the upgraded Ambari version in admin->about on top right corner in Ambari UI.

The Ambari version is upgraded successfully.
Upgrade Known Issues
During the migration, the existing GROUPS table in the Ambari database might cause conflicts due to its name. As a result, the Ambari UI might fail to start and throw the following error when attempting to log in.
Internal Exception: java.sql.SQLSyntaxErrorException: Table 'ambari.groups_info' doesn't existError Code: 1146Call: SELECT group_id, group_name, group_type, ldap_group, principal_id FROM groups_info WHERE (group_id = ?) bind => [1 parameter bound]Query: ReadObjectQuery(name="group" referenceClass=GroupEntity )To resolve this issue, rename the GROUPS table to groups_info in the Ambari backend database.
For MySQL
- Log in to the MySQL server hosting the Ambari database.
mysql> use ambari;mysql> show tables lIKE 'groups';- The response is as follows.
+---------------------------+| Tables_in_ambari (groups) |+---------------------------+| groups |+---------------------------+- Verify the data.
mysql> select * from `groups`;- Rename the table
groupstogroups_infousing the following command.
mysql> RENAME TABLE `groups` TO groups_info;- Verify the same data as it was in groups table earlier. It must have the same data as it was earlier in groups table.
mysql> select * from groups_info;For Oracle
- Log into the Oracle server hosting the Ambari database.
- Verify the existing GROUPS table.
SELECT table_nameFROM user_tablesWHERE table_name LIKE '%GROUPS%';- The response is as follows.
TABLE_NAME--------------------------------------------------------------------------------------------------------------------------------GROUPS- Rename the table
groupstogroups_infousing the following command.
SQL> RENAME GROUPS TO GROUPS_INFO ;The successful rename operation results the output as TABLE Renamed.
- Verify the data once renaming is completed.
For Postgres
- Log in to the Postgres server hosting the Ambari database.
- Verify the existing GROUPS table.
ambari=> \dt+- The response is as follows.
.. public | extensionlink | table | ambari | 0 bytes | public | groups | table | ambari | 16 kB | ..- Rename the table
groupstogroups_infousing the following command.
ambari=> ALTER TABLE groups RENAME TO groups_info;