The offline, manual upgrade procedure is suitable for upgrading small clusters. On large clusters, these steps are commonly performed on all nodes in parallel using scripts or remote management tools.
This procedure assumes that you have planned and prepared for the upgrade as described earlier. This procedure also assumes that the cluster meets prerequisites, including the correct JDK for the core version to which you are upgrading. For more information, see the JDK Support Matrix.
root user or with
sudo.At the end of this procedure, you use yum update or zypper
update on RHEL/CentOS or SUSE to upgrade the packages. Ignore any
warnings that certain packages are not installed. Packages will be upgraded
correctly, and no additional packages will be installed.
This procedure assumes that the cluster being upgraded is running release 6.1.0:
Notify stakeholders of the impending upgrade, and stop accepting new jobs and
applications. Terminate running jobs and applications by running
maprcli commands on appropriate nodes in the cluster.
# yarn application -list
# yarn application -kill <ApplicationId>
Disconnect NFS mounts. Unmount the NFS for the HPE Ezmeral Data Fabric share from all clients connected to it, including other nodes in the cluster. This allows all processes accessing the cluster via NFS to disconnect gracefully.
For example, if the cluster is mounted at/mapr, use
this command:# umount /mapr
Display the services on each node in the cluster, and stop ecosystem component services on the nodes.
# maprcli node list -columns hostname,csvc
# maprcli node services -multi '[{ "name": "hue", "action": "stop"}, { "name": "oozie", "action": "stop"}, { "name": "hs2", "action": "stop"}]' -nodes <hostnames>
If a POSIX client service is running, stop the service:
mapr-loopbacknfs
service:service mapr-loopbacknfs stopservice mapr-posix-client-basic stopservice mapr-posix-client-platinum stopDetermine where the CLDB and ZooKeeper services are installed.
Stop Warden on the CLDB nodes first, and then on all remaining nodes.
Stop ZooKeeper on all nodes where it is installed.
Ensure that no stale cluster processes are running. If so, stop the processes:
ps -ef | grep mapr
pkill -u mapr
Run one of the following commands to determine if a patch is installed.
rpm -qa
mapr-patchdpkg -l | grep mapr-patchIf one or more patches are installed, run one of the following commands to remove the patches:
sudo rpm -e
mapr-patchsudo apt-get -y remove
mapr-patchUpgrade core packages by installing the appropriate package key.
sudo rpm --import
https://package.mapr.com/releases/pub/maprgpg.keywget -O -
https://package.mapr.com/releases/pub/maprgpg.key | sudo apt-key add
-sudo update-alternatives --config javaUpgrade these core component and Hadoop common packages on all nodes where packages exist.
Components to upgrade are:mapr-cldb
mapr-clientmapr-core
mapr-core-internal
mapr-fileserver
mapr-gatewaymapr-hadoop-clientmapr-hadoop-coremapr-hadoop-utilmapr-historyserver
mapr-nfs
mapr-nodemanager
mapr-resourcemanager
mapr-webserver
mapr-zookeeper
mapr-zk-internalyum update or zypper
update, do not use a wildcard such as mapr-*
to upgrade all data-fabric packages, which could erroneously include Hadoop
ecosystem components such as mapr-hive and
mapr-pig.
yum update mapr-cldb mapr-core mapr-core-internal mapr-gateway mapr-fileserver mapr-hadoop-core mapr-historyserver mapr-nfs mapr-nodemanager mapr-resourcemanager mapr-webserver mapr-zookeeper mapr-zk-internal mapr-client mapr-hadoop-client mapr-hadoop-utilzypper update mapr-cldb mapr-compat-suse mapr-core mapr-core-internal mapr-gateway mapr-fileserver mapr-hadoop-core mapr-historyserver mapr-nfs mapr-nodemanager mapr-resourcemanager mapr-webserver mapr-zookeeper mapr-zk-internal mapr-client mapr-hadoop-client mapr-hadoop-utilapt-get install on the listed
packages.# dpkg --list | grep "mapr" | grep -P "^ii"| awk '{ print $2}'|tr "\n" " "
# apt-get install <package-list>Verify that packages were installed successfully on all nodes. Confirm that
there were no errors during installation, and check that
/opt/mapr/MapRBuildVersion contains the expected
value.
# cat /opt/mapr/MapRBuildVersion
6.2.0.0.xxxxxxxxxxxxxx.GA