Step 3: Upgrading the Cloudera Manager Server

Loading Filters ... 7.7.3 7.7.1 7.6.7 7.6.1 7.5.1 7.4.4 7.3.1 7.2.4 7.1.4 7.1.3 7.1.2 7.1.1 7.0.3 6.3.4 6.3.3 6.3.1 6.3.0 6.2.1 6.2.0 6.1.1 6.1.0 6.0.1 6.0.0 7.11.3 6.3.4 6.3.3 6.3.2 6.3.1 6.3.0 6.2.1 6.2.0 6.1.1 6.1.0 6.0.2 6.0.1 7.1.9 7.1.7.2000 7.1.8 7.1.7.1000 7.1.7 7.1.6 7.1.5 7.1.4 7.1.3 7.1.2 7.1.1

You can also use the procedures on this page to install Cloudera Manager patches. You must obtain the download URL for the patch before proceeding – you will use this information later in this procedure.

This topic provides procedures for backing up the Cloudera Manager Server.

Minimum Required Role: Cluster Administrator (also provided by Full Administrator) This feature is not available when using Cloudera Manager to manage Data Hub clusters.

After you complete the steps in Step 1: Getting Started Upgrading Cloudera Manager 6 and Step 2: Backing Up Cloudera Manager 6, continue with the following:

Establish Access to the Software

Cloudera Manager needs access to a package repository that contains the updated software packages. You can choose to access the Cloudera public repositories directly, or you can download those repositories and set up a local repository to access them from within your network. If your cluster hosts do not have connectivity to the Internet, you must set up a local repository.

If you have enabled high availability for Cloudera Manager, perform the following steps on the hosts for both the active and passive instances of the Cloudera Manager server.

  1. Log in to the Cloudera Manager Server host.
    ssh my_cloudera_manager_server_host
  2. Remove any older files in the existing repository directory:
    RHEL / CentOS
    sudo rm /etc/yum.repos.d/cloudera*manager.repo*
    SLES
    sudo rm /etc/zypp/repos.d/cloudera*manager.repo*
    Ubuntu
    sudo rm /etc/apt/sources.list.d/cloudera*.list*
  3. Fill in the form at the top of this page.
  4. Create a repository file so that the package manager can locate and download the binaries.

    Do one of the following, depending on whether or not you are using a local package repository:

    • Use a local package repository. (Required when cluster hosts do not have access to the internet.) See Configuring a Local Package epository.

    • Use the Cloudera public repository

      RHEL / CentOS
      1. Create a file named /etc/yum.repos.d/cloudera-manager.repo with the following content:
        [cloudera-manager]
        name=Cloudera Manager 
        baseurl=https://archive.cloudera.com/p/cm7/<Cloudera Manager version>/redhat<OS major version>/yum/
        gpgkey =https://archive.cloudera.com/p/cm7/<Cloudera Manager version>/redhat<OS major version>/yum/RPM-GPG-KEY-cloudera
        username=changeme
        password=changeme
        gpgcheck=1
        enabled=1
        autorefresh=0
        type=rpm-md

        Replace changeme with your username and password in the /etc/yum.repos.d/cloudera-manager.repo file.

      SLES
      1. Create a file named /etc/zypp/repos.d/cloudera-manager.repo with the following content:
        [cloudera-manager]
        name=Cloudera Manager 
        baseurl=https://archive.cloudera.com/p/cm7/<Cloudera Manager version>/sles<OS major version>/yum/
        gpgkey =https://archive.cloudera.com/p/cm7/<Cloudera Manager version>/sles<OS major version>/yum/RPM-GPG-KEY-cloudera
        username=changeme
        password=changeme
        gpgcheck=1
        enabled=1
        autorefresh=0
        type=rpm-md
      2. Replace changeme with your username and password in the /etc/zypp/repos.d/cloudera-manager.repo file.

      Ubuntu

      Debian is not a supported operating system for Cloudera Manager 6.x.

      1. Create a file named /etc/apt/sources.list.d/cloudera_manager.list with the following content:
        # Cloudera Manager <Cloudera Manager version>
        deb [arch=amd64] http://username:password@archive.cloudera.com/p/cm7/<Cloudera Manager version>/ubuntu1804/apt -cm<Cloudera Manager version> contrib
      2. Run the following command:
        sudo apt-get update
      3. Replace changeme with your username and password in the /etc/apt/sources.list.d/cloudera_manager.list file.

  5. A Cloudera Manager upgrade can introduce new package dependencies. Your organization may have restrictions or require prior approval for installation of new packages. You can determine which packages may be installed or upgraded:
    RHEL / CentOS
    yum deplist cloudera-manager-agent
    SLES
    zypper info --requires cloudera-manager-agent
    Ubuntu
    apt-cache depends cloudera-manager-agent

Install Java (JDK)

Oracle JDK 1.8 is required on all cluster hosts managed by Cloudera Manager 6.0.0 or higher. If it is supported for your version of Cloudera Manager, you can also install OpenJDK 8*, OpenJDK 11*, or OpenJDK 17*. See Manually Installing OpenJDK. If OpenJDK 8* is already installed on your hosts, skip the steps in this section.

If you are upgrading to Cloudera Manager 6.0.0 or higher, you can manually install JDK 8 on the Cloudera Manager server host, and then, as part of the Cloudera Manager upgrade process, you can specify that Cloudera Manager upgrade the JDK on the remaining hosts.

A supported JDK is required on all hosts. During a Cloudera Manager upgrade, you can install OpenJDK 8* on the Cloudera Manager server host, and then Cloudera Manager can install the new JDK on the managed hosts. You can also choose to install Oracle JDK 8, OpenJDK 8*, or OpenJDK 11* manually, on all hosts before beginning the upgrade.
A supported JDK is required on all hosts. During a Cloudera Manager upgrade, you can install OpenJDK 8* on the Cloudera Manager server host, and then Cloudera Manager can install the new JDK on the managed hosts. You can also choose to install Oracle JDK 8, OpenJDK 8*, OpenJDK 11*, or OpenJDK 17* manually, on all hosts before beginning the upgrade.
  1. Log in to the Cloudera Manager Server host.
    ssh my_cloudera_manager_server_host
  2. Stop the Cloudera Manager Server.
    sudo systemctl stop cloudera-scm-server
  3. Remove the JDK:
    1. Perform the following steps on all hosts managed by Cloudera Manager:
      1. Run the following command to remove the JDK, using the package names from Step 1: (If you do not delete these files, Cloudera Manager and other components may continue to use the old version of the JDK.)
        RHEL
        yum remove <JDK package name>
        Ubuntu
        apt-get remove <JDK package name>
        SLES
        zypper rm <JDK package name>
      2. Confirm that the package has been removed:
        RHEL
        yum list installed |grep -i java
        Ubuntu
        apt list --installed | grep -i java
        SLES
        zypper search --installed-only |grep -i java
  4. Install OpenJDK
    RHEL
    OpenJDK 8*
    sudo yum install java-1.8.0-openjdk-devel
    OpenJDK 11*
    sudo yum install java-11-openjdk-devel
    OpenJDK 17*
    sudo yum install java-17-openjdk-devel
    Ubuntu
    OpenJDK 8*
    sudo apt-get install openjdk-8-jdk
    OpenJDK 11*
    sudo apt install openjdk-11-jdk
    OpenJDK 17*
    sudo apt install openjdk-17-jdk
    SLES
    OpenJDK 8*
    sudo zypper install java-1_8_0-openjdk-devel
    OpenJDK 11*
    zypper install java-11-openjdk-devel
    OpenJDK 17*
    sudo zypper --non-interactive install java-17-openjdk-devel
  5. Start the Cloudera Manager Server.
    sudo systemctl start cloudera-scm-server

Upgrade the Cloudera Manager Server

  1. Log in to the Cloudera Manager server host.
  2. Stop the Cloudera Manager Server.
    sudo systemctl stop cloudera-scm-server
  3. Open the CLI for the Cloudera Manager database using one of the following commands:
    • MySQL/MariaDB: mysql -u root -p
    • PostgreSQL: sudo -u postgres psql
    • Oracle: sqlplus system@localhost
  4. Run the following SQL queries:
    1. select ROLE_ID from ROLES where ROLE_TYPE='STORAGEOPERATIONS';
      The query returns a set of ROLD_ID values. For each ROLE_ID, run the following SQL commands:
      delete from CONFIGS where ROLE_ID=<ROLE_ID>;
      delete from ROLE_STALENESS_STATUS where ROLE_ID=<ROLE_ID>;
      delete from ROLES where ROLE_TYPE='STORAGEOPERATIONS';
      
    2. The Core Configuration service commonly has the default name 'core_settings'. Validate this by checking the NAME returned by the following query:ne
      select NAME,DISPLAY_NAME from SERVICES where SERVICE_TYPE='CORE_SETTINGS'
      In the next two steps, substitute the NAME returned from the above query for '[***core_settings***]' in the queries.
    3. The following query returns a list of services that are dependent on the Core Configuration service. Note the services listed. You will need this information later in the Cloudera Manager upgrade process to reset the dependent services, after the Cloudera Manager agents are installed. (See Step 5: After You Upgrade Cloudera Manager.)
      select c.SERVICE_ID,NAME from CONFIGS c join SERVICES s on c.SERVICE_ID=s.SERVICE_ID where value='[***core_settings***]';
      
    4. delete from CONFIGS where value='[***core_settings***]';
  5. Start the Cloudera Manager Server.
    sudo systemctl start cloudera-scm-server
  6. If your cluster is running the embedded PostgreSQL database, stop all services that are using the embedded database. These can include:
    • Hive service and all services such as Impala and Hue that use the Hive metastore
    • Oozie
    • Sentry
    • Sqoop
  7. Stop the Cloudera Management Service.
    1. Log in to the Cloudera Manager Admin Console.
    2. Select Clusters > Cloudera Management Service.
    3. Select Actions > Stop.
  8. Ensure that you have disabled any scheduled replication or snapshot jobs and wait for any running commands from the Cloudera Manager Admin Console to complete before proceeding with the upgrade.
  9. If you have any Hive Replication Schedules that replicate to a cloud destination, delete these replication clusters before continuing with the upgrade. You can re-create these Replication Schedules after the Cloudera Manager upgrade is complete.
  10. If your cluster is running Ubuntu version 18, stop all clusters before upgrading Cloudera Manager. (For each cluster, go to Cluster Name > Actions > Stop.)
  11. Stop the Cloudera Manager server host, agent, and embedded database (if installed). If you have enabled high availability for Cloudera Manager, perform the following steps on the hosts for both the active and passive instances of Cloudera Manager:
    1. Log in to the Cloudera Manager Server host:
      ssh my_cloudera_manager_server_host
    2. Stop the Cloudera Manager Server.
      sudo systemctl stop cloudera-scm-server
    3. If you are using the embedded PostgreSQL database, stop the Cloudera Manager Embedded PostgreSQL database:
      RHEL 7, SLES 12, Ubuntu 18.04 and higher
      sudo systemctl stop cloudera-scm-server-db
      RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
      sudo service cloudera-scm-server-db stop

      If you are not using the embedded PostgreSQL database and you attempt to stop it, you might see a message indicating that the service cannot be found. If you see a message that the shutdown failed, then the embedded database is still running, probably because services are connected to the Hive metastore. If the database shutdown fails due to connected services, issue the following command:

      RHEL-compatible 7 and higher, Ubuntu 16.04
      sudo service cloudera-scm-server-db next_stop_fast
      sudo service cloudera-scm-server-db stop
      All other Linux distributions
      sudo service cloudera-scm-server-db fast_stop
    4. Stop the Cloudera Manager Agent.
      RHEL 7, SLES 12, Ubuntu 18.04 and higher
      sudo systemctl stop cloudera-scm-agent
      RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
      sudo service cloudera-scm-agent stop
  12. Upgrade the Cloudera Manager software. If you have enabled high availability for Cloudera Manager, perform the following steps on the hosts for both the active and passive instances of the Cloudera Manager server.
    1. Upgrade the packages. Include the cloudera-manager-server-db-2 package in the command only if you are using the embedded PostgreSQL database.
      RHEL / CentOS
      sudo yum clean all
      sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server-db-2
      SLES
      sudo zypper clean --all
      sudo zypper up cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server-db-2
      Ubuntu
      sudo apt-get clean
      sudo apt-get update
      sudo apt-get dist-upgrade
      sudo apt-get install cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server-db-2

      You might be prompted about your configuration file version:

      
      Configuration file '/etc/cloudera-scm-agent/config.ini'
      ==> Modified (by you or by a script) since installation.
      ==> Package distributor has shipped an updated version.
      What would you like to do about it ? Your options are:
      Y or I : install the package maintainer's version
      N or O : keep your currently-installed version
      D : show the differences between the versions
      Z : start a shell to examine the situation
      The default action is to keep your current version.

      You may receive a similar prompt for /etc/cloudera-scm-server/db.properties. Answer N to both prompts.

      You may be prompted to accept the GPG key. Answer y.

      
      Retrieving key from https://archive.cloudera.com/.../cm/RPM-GPG-KEY-cloudera
      Importing GPG key ...
       Userid     : "Yum Maintainer <webmaster@cloudera.com>"
       Fingerprint: ...
       From       : https://archive.cloudera.com/.../RPM-GPG-KEY-cloudera
    2. If you customized the /etc/cloudera-scm-agent/config.ini file, your customized file is renamed with the extension .rpmsave or .dpkg-old. Merge any customizations into the /etc/cloudera-scm-agent/config.ini file that is installed by the package manager.
    3. Verify that you have the correct packages installed.

      Ubuntu
      dpkg-query -l 'cloudera-manager-*'
      
      Desired=Unknown/Install/Remove/Purge/Hold
      | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
      |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
      ||/ Name                   Version                Description
      +++-======================-======================-============================================================
      ii  cloudera-manager-agent 5.15.0-0.cm...~sq The Cloudera Manager Agent
      ii  cloudera-manager-daemo 5.15.0-0.cm...~sq Provides daemons for monitoring Hadoop and related tools.
      ii  cloudera-manager-serve 5.15.0-0.cm...~sq The Cloudera Manager Server
      
      RHEL / CentOS / SLES
      rpm -qa 'cloudera-manager-*'
      
      cloudera-manager-server-5.15.0-...
      cloudera-manager-agent-5.15.0-...
      cloudera-manager-daemons-5.15.0-...
      cloudera-manager-server-db-2-5.15.0-...
    4. If you are using the embedded PostgreSQL database, start the database:
      sudo systemctl start cloudera-scm-server-db
  13. Start the Cloudera Manager agent and server. If you have enabled high availability for Cloudera Manager, start only the host for the active instance of Cloudera Manager:
    1. Start the Cloudera Manager Agent.
      RHEL 7, SLES 12, Ubuntu 18.04 and higher
      sudo systemctl start cloudera-scm-agent
      If the agent starts without errors, no response displays.
      RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
      sudo service cloudera-scm-agent start
      You should see the following:
      Starting cloudera-scm-agent: [ OK ]
    2. The Cloudera Manager server now requires 4GB of heap. On the Cloudera Manager server host, edit the /etc/default/cloudera-scm-server file and change the line that begins with export CMF_JAVA_OPTS=. Change the -Xmx2G parameter to -Xmx4G.
    3. Start the Cloudera Manager Server.
      sudo systemctl start cloudera-scm-server
    4. If you have problems starting the server or the agent, such as database permissions problems, you can use log files to troubleshoot the problem:

      Server log:

      tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

      Agent log:

      tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
      or
      tail -f /var/log/messages
  14. Verify that all cluster hosts appear in the Cloudera Manager Admin Console.
    1. Use a Web browser to open the Cloudera Manager Admin Console using the following URL:
      http://cloudera_Manager_server_hostname:7180/cmf/upgrade
      It can take several minutes for the Cloudera Manager Server to start, and the Cloudera Manager Admin Console is unavailable until the server startup is complete and the Upgrade Cloudera Manager page displays.
    2. Verify that all cluster hosts are visible. (Go to Hosts > All Hosts.)
  15. If you have enabled high availability for Cloudera Manager, start the host for the passive instance of Cloudera Manager:
    1. Start the Cloudera Manager Agent.
      RHEL 7, SLES 12, Ubuntu 18.04 and higher
      sudo systemctl start cloudera-scm-agent
      If the agent starts without errors, no response displays.
      RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
      sudo service cloudera-scm-agent start
      You should see the following:
      Starting cloudera-scm-agent: [ OK ]
    2. The Cloudera Manager server now requires 4GB of heap. On the Cloudera Manager server host, edit the /etc/default/cloudera-scm-server file and change the line that begins with export CMF_JAVA_OPTS=. Change the -Xmx2G parameter to -Xmx4G.
    3. Start the Cloudera Manager Server.
      sudo systemctl start cloudera-scm-server
    4. If you have problems starting the server or the agent, such as database permissions problems, you can use log files to troubleshoot the problem:

      Server log:

      tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

      Agent log:

      tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
      or
      tail -f /var/log/messages

To complete the Cloudera Manager upgrade, continue with Step 4: Upgrading the Cloudera Manager Agents.

* Azul OpenJDK, OpenJDK 8, OpenJDK 11, and OpenJDK 17 are TCK certified for CDP.