Special Considerations for Control System Patches or Upgrade

Patches for the Control System are handled differently from patches for cluster data nodes and CLDB nodes.

The Control System software is updated as a package rather than a patch file. While core patches typically include a prefix such as mapr-patch or mapr-patch-client, or mapr-patch-posix-client-basic, Control System software is updated as a new package and does not use the core patch mechanism.

To identify a Control System patch package, look for mapr-apiserver or mapr-webserver in the package name, and use these steps to update your currently installed packages:

  1. Stop the apiserver service on all Control System nodes:
    $ maprcli node services -filter [csvc==apiserver] -name apiserver -action stop
  2. Upgrade the existing mapr-apiserver and mapr-webserver packages. For example:
    • On RedHat or SLES:
      $ rpm -Uvh <path to new mapr-apiserver>
      $ rpm -Uvh <path to new mapr-webserver>
    • On Ubuntu:
      $ dpkg -i <path to new mapr-apiserver>
      $ dpkg -i <path to new mapr-webserver>
  3. Back up and merge configuration files from conf.new.
    IMPORTANT
    Upgrading the package stages updated default configuration files into /opt/mapr/apiserver/conf.new/ rather than overwriting your existing configuration in /opt/mapr/apiserver/conf/. Merging new configurations into /opt/mapr/apiserver/conf/ is an essential step for the patch to take effect and to ensure compatibility with updated internal components.
    1. Back up your current configuration directory:
       $ cp -r /opt/mapr/apiserver/conf /opt/mapr/apiserver/conf.bak
    2. Review and update configuration files.
      Update jetty.xml - Server library updates bundled with patches reuire the updated structure from conf.new/jetty.xml. Stale jetty.xml files can prevent the API server from starting due to constructor parameter mismatches. If you have not customized jetty.xml, replace it directly:
       $ cp /opt/mapr/apiserver/conf.new/jetty.xml /opt/mapr/apiserver/conf/jetty.xml

      If you have customized jetty.xml, merge your custom properties into the structure of the new file. Compare other modified files in /opt/mapr/apiserver/conf.new/ against /opt/mapr/apiserver/conf/. Port any custom ports, SSL keystore paths, or memory settings into the updated configurations. When upgrading across framework versions (such as Spring upgrades in newer releases), obsolete files like spring_security.xml should be removed from /opt/mapr/apiserver/conf/ if no longer present in conf.new.

  4. Verify file permissions.
    Ensure that the files in /opt/mapr/apiserver/conf/ retain the correct ownership and permissions:
    $ chown -R mapr:mapr /opt/mapr/apiserver/conf
    $ chmod 755 /opt/mapr/apiserver/conf
    $ chmod 644 /opt/mapr/apiserver/conf/*
  5. Run configure.sh to update the configuration for the new packages:
    $ /opt/mapr/server/configure.sh -R --noRecalcMem
  6. Start the apiserver service on all Control System nodes:
    $ maprcli node services -filter [csvc==apiserver] -name apiserver -action start
  7. Verify service status.
    Verify that the API server starts cleanly without initialization errors by checking the log:
    tail -n 100 /opt/mapr/apiserver/logs/apiserver.log