Troubleshooting Custom Runtime addons
Follow the instructions to resolve potential issues that might arise with Runtime images.
- Failed setting up runtime addons
- Engine exited with status 33
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 files or folders from Custom Runtime addons.
Adjust the paths in the tarball or metadata file according to the details in Custom Runtime addon format requirements.
The file or folder, a custom Runtime addon tries to mount, exists already in the filesystem
The file or folder either already exists on the Runtime image or is mounted by another Runtime addon.
Due to a limitation, Custom Runtime addons cannot overwrite existing files. 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
Modify the path of the mounted files to a location writable by the cdsw user.
Alternatively, create a Custom Runtime image with adjusted permissions and use it for all the
workloads.
Cloudera AI Runtime addons support only Java 8 integrated into Hadoop
In Cloudera AI, when mounting JAVA to workloads using Runtime addons, the only available Runtime addon is for JAVA 8, which is integrated into the Hadoop addon.
The following example instructions include the [***JAVA VERSION***] placeholder. Replace this placeholder with the required Java version, as shown in the examples:
- For java 11:
openjdk-11-jre-headlessoropenjdk-11-jdk-headless - For java 17:
openjdk-17-jre-headlessoropenjdk-17-jdk-headless
- Save the following Dockerfile:
FROM ubuntu:20.04 RUN apt-get update && apt-get install -y openjdk-[***JAVA VERSION***]-jre-headless openjdk-[***JAVA VERSION***]-jdk-headless RUN tar -czf /cml-java[***VERSION***]-addon.tar.gz /usr/lib/jvm/java-[***VERSION***]-openjdk-amd64 /etc/java-[***VERSION***]-openjdk - Build the Dockerfile and copy the tar file created in Step
1.
docker build --network=host -t cml_java_addon . container_id=$(docker create cml_java_addon) docker cp $container_id:/cml-java[***VERSION***]-addon.tar.gz - > ./cml-java[***VERSION***]-addon.tar.gz docker rm -v $container_id - Upload the Tarball file as a custom addon to Cloudera AI with the
following metadata
file:
{ "name" : "java[***VERSION***]", "spec" : {"paths" : ["/usr/lib/jvm/java-[***VERSION***]-openjdk-amd64", "/etc/java-[***VERSION***]-openjdk"]} } -
Set the following environment variables at :
JAVA_HOME:
/usr/lib/jvm/java-[***VERSION***]-openjdk-amd64PATH:
${PATH/java-8/java-[***VERSION***]}
