5. Upgrading the Stack (from 1.3.0 to 1.3.3)

  1. Update the stack version in the Server database, depending on if you are using a local repository:

    ambari-server upgradestack HDP-1.3.3
  2. Upgrade the HDP repository on all hosts and replace the old repository file with the new file:

    [Important]Important

    The file you download is named hdp.repo. To function properly in the system, it must be named HDP.repo. After you have completed the "mv" of the new repository file to the repos.d folder, make sure there is no file named hdp.repo anywhere in your repos.d folder.

    • For RHEL/CentOS/Oracle Linux 5

      wget  http://public-repo-1.hortonworks.com/HDP/centos5/1.x/updates/1.3.3.0/hdp.repo 
      mv hdp.repo /etc/yum.repos.d/HDP.repo
    • For RHEL/CentOS/Oracle Linux 6

      wget http://public-repo-1.hortonworks.com/HDP/centos6/1.x/updates/1.3.3.0/hdp.repo 
      mv hdp.repo /etc/yum.repos.d/HDP.repo
    • For SLES 11

      wget  http://public-repo-1.hortonworks.com/HDP/suse11/1.x/updates/1.3.3.0/hdp.repo 
      
      mv hdp.repo /etc/zypp/repos.d/HDP.repo
  3. Upgrade the stack on all Agent hosts. Skip any components your installation does not use:

    • For RHEL/CentOS/Oracle Linux

      1. Upgrade the following components:

        yum upgrade "collectd*" "epel-release*" "gccxml*" "pig*" "hadoop*" "sqoop*" "zookeeper*" "hbase*" "hive*" "hcatalog*" "webhcat-tar*" "oozie*" hdp_mon_nagios_addons
      2. Check to see if those components have been upgraded:

        yum list installed | grep HDP-$old-stack-version-number

        The only non-upgraded component you may see in this list is extjs, which does not need to be upgraded.

    • For SLES

      1. Upgrade the following components:

        zypper up collectd gccxml* pig* hadoop* sqoop* hive* hcatalog* webhcat-tar* zookeeper* oozie* hbase* hdp_mon_nagios_addons*
        yast --update hadoop hcatalog hive
  4. Start the Ambari Server. On the Server host:

    ambari-server start
  5. Start each Ambari Agent. On all Agent hosts:

    ambari-agent start
  6. Because the file system version has now changed you must start the NameNode manually. On the NameNode host:

    sudo su -l $HDFS_USER -c "/usr/lib/hadoop/bin/hadoop-daemon.sh start namenode -upgrade"

    Depending on the size of your system, this step may take up to 10 minutes.

  7. Track the status of the upgrade:

    hadoop dfsadmin -upgradeProgress status

    Continue tracking until you see:

    Upgrade for version -44 has been completed.
    Upgrade is not finalized.
    [Note]Note

    You finalize the upgrade later.

  8. Open the Ambari Web GUI. If you have continued to run the Ambari Web GUI, do a hard reset on your browser. Use Services View to start the HDFS service. This starts the SecondaryNameNode and the DataNodes.

  9. After the DataNodes are started, HDFS exits safemode. To monitor the status:

    hadoop dfsadmin -safemode get

    Depending on the size of your system, this may take up to 10 minutes or so. When HDFS exits safemode, this is displayed as a response to the command:

    Safe mode is OFF
  10. Make sure that the HDFS upgrade succeeded. Go through steps 2 and 3 in Preparing for the Upgrade to create new versions of the logs and reports. Substitute "new" for "old" in the file names as necessary

  11. Compare the old and new versions of the following files:

    • dfs-old-fsck-1.log versus dfs-new-fsck-1.log.

      The files should be identical unless the hadoop fsck reporting format has changed in the new version.

    • dfs-old-lsr-1.log versus dfs-new-lsr-1.log.

      The files should be identical unless the format of hadoop fs -lsr reporting or the data structures have changed in the new version.

    • dfs-old-report-1.log versus fs-new-report-1.log

      Make sure all DataNodes previously belonging to the cluster are up and running.

  12. Use the Ambari Web Services view-> Services Navigation->Start All to start services back up.

  13. The upgrade is now fully functional but not yet finalized. Using the finalize command removes the previous version of the NameNode and DataNode storage directories.

    [Important]Important

    After the upgrade is finalized, the system cannot be rolled back. Do not take this step until you perform thorough testing of the upgrade.

    The upgrade must be finalized, however, before another upgrade can be performed.

    [Note]Note

    Directories used by Hadoop 1 services set in /etc/hadoop/conf/taskcontroller.cfg are not automatically deleted after upgrade. Administrators can choose to delete these directories after the upgrade.

    To finalize the upgrade:

    sudo su -l $HDFS_USER -c "hadoop dfsadmin -finalizeUpgrade"

    where $HDFS_USER is the HDFS Service user (by default, hdfs).