Setting up CMA server

You can deploy the Cloudera Migration Assistant (CMA) server (cma-server) to any of your source CDH cluster nodes, or preferably to an external node that has visibility to the cluster. It requires 1.5 GB of extra memory. You can install CMA with or without internet connection.

When setting up CMA without internet connection, the installation script ensures to install the required Python dependencies without using internet connection, and creates the Python Package Index (pypi) repository locally.

You can view the list of components installed with CMA under the following directory:

cma-[***VERSION NUMBER***]/am2cm-ansible/python_requirements/
The Python requirements file details the Python packages that are needed to set up the virtual environment to run CMA. No internet connection is used to download these components when setting up CMA in an air-gapped network.
  1. Download the binaries of the CMA tool from https://archive.cloudera.com/cma/3.3/tars/ with one of the following commands:
    • wget https://archive.cloudera.com/cma/3.3/tars/cma-3.3.0.0-38-bin.tar.gz
    • curl https://archive.cloudera.com/cma/3.3/tars/cma-3.3.0.0-38-bin.tar.gz
    • mkdir cma-3.3
      cd cma-3.3
      wget https://archive.cloudera.com/cma/3.3/tars/cma-3.3.0.0-38-bin.tar.gz
      wget https://archive.cloudera.com/cma/3.3/tars/cma-extras-gpl-3.3.0.0-38-bin.tar.gz-bin.tar.gz
    • mkdir cma-3.3
      cd cma-3.3
      curl https://archive.cloudera.com/cma/3.3/tars/cma-3.3.0.0-38-bin.tar.gz
      curl https://archive.cloudera.com/cma/3.3/tars/cma-extras-gpl-3.3.0.0-38-bin.tar.gz-bin.tar.gz
    When the required binaries are downloaded successfully, the directory structure should look like the following example:
    drwxr-xr-x 14 testuser testuser 4096 febr 27 13:21 cma-3.3.0.0-38/
    -rw-rw-r-- 1 testuser testuser 518140466 febr 27 13:28 cma-3.3.0.0-38-bin.tar.gz
    -rw-rw-r-- 1 testuser testuser 85089637 febr 27 13:28 cma-extras-gpl-3.3.0.0-38.tar.gz
    The supported version of CMA is 2.8.0 and higher.
  2. Extract the downloaded file using the following command:
    tar xzf cma-3.3.0.0-38-bin.tar.gz
  3. Start the CMA server locally or in a Docker container. The preferred method is the Docker mode.
    Ensure that Python 3.8.12 or a higher version is installed on the host. In case you do not define the python executable when running the script, you will be prompted to enter the python executable path.
    • Docker
      Run the cma-docker.sh script in the untarred top-level folder to launch the CMA server in a Docker container. cma-[***VERSION NUMBER***]/bin/cma-docker.sh --start
      cd cma-[***VERSION NUMBER***]/
      bin/cma-docker.sh --start --airgapped --python-executable=python3
      Check that the local pypi repository is installed correctly.
      netstat -atnp | grep 9003
      (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
      tcp        0      0 0.0.0.0:9003            0.0.0.0:*            LISTEN      201503/python3
    • Locally
      Run the cma-local.sh script in the untarred top-level folder and follow its instructions to launch the CMA server locally. cma-[***VERSION NUMBER***]/bin/cma-local.sh --start
      cd cma-[***VERSION NUMBER***]/
      bin/cma-local.sh --start --airgapped --python-executable=python3
      Check that the local pypi repository is installed correctly.
      netstat -atnp | grep 9003
      (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)
      tcp        0      0 0.0.0.0:9003            0.0.0.0:*            LISTEN      201503/python3
  4. Access http://localhost:8090 in a browser to open the CMA tool.

    This confirms that the CMA server is successfully installed.