Troubleshooting custom Runtime addons

Follow the instructions to overcome some potential issues you might encounter with Runtime images.

When a custom Runtime addon tries to mount in a file or folder that falls into one of the below categories and workloads might fail to work. In that case, Cloudera AI UI shows the following error messages:
  • Failed setting up runtime addons
  • Engine exited with status 33
The exact error message can help you to determine what scenario causes the issue.

The file or folder does not exist in the uploaded tarball or is not located under the proper path within the tarball archive

A possible root cause is Cloudera AI not being able to mount in files or folders from custom Runtime Addons.

Adjust the paths in the tarball or metadata file according to the details in Requirements.

The file or folder, a custom Runtime addon tries to mount, exists already in the filesystem

Either the file or folder exists on the Runtime image or is mounted in by another Runtime addon.

Due to a limitation, custom Runtime Addons cannot overwrite existing files. Customers shall change the path of the mounted files.

cdsw user has no write access in the pod’s file system to create symlinks to mounted files

Change the path of the mounted files to a location that is writable by the cdsw user. Alternatively, create a custom Runtime image with adjusted permissions and use that in all the workloads.

Cloudera AI Runtime addons support only Java 8 integrated into Hadoop

In Cloudera AI, when mounting in JAVA to workloads via Runtime addons, the only available Runtime addon is for JAVA8 (integrated into the Hadoop addon).

Run the workloads with the required JAVA version, with the help of custom Runtime Addons:

  1. Save the following Dockerfile:
    FROM ubuntu:20.04
    RUN apt-get update && apt-get install -y openjdk-11-jre-headless openjdk-11-jdk-headless
    RUN tar -czf /cml-java11-addon.tar.gz /usr/lib/jvm/java-11-openjdk-amd64 /etc/java-11-openjdk
  2. Build the Dockerfile and copy the tar file created in row 3.
    docker build --network=host -t cml_java_addon .
            
    container_id=$(docker create cml_java_addon)
    docker cp $container_id:/cml-java11-addon.tar.gz - > ./cml-java11-addon.tar.gz
    docker rm -v $container_id
  3. Upload the Tarball file as a custom addon to Cloudera AI with the following metadata file:
    {
        "name" : "java11",
        "spec" : {"paths" : ["/usr/lib/jvm/java-11-openjdk-amd64", "/etc/java-11-openjdk"]}
    }
  4. Set the following environment variables at Site Administration > Runtimes:

    JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64

    PATH: ${PATH/java-8/java-11}