Install on RHEL

This section describes how to install the Driverless AI Docker image on RHEL. The installation steps vary depending on whether your system has GPUs or if it is CPU only.

Environment

Operating System GPUs? Min Mem
RHEL with GPUs Yes 64 GB
RHEL with CPUs No 64 GB

Install on RHEL with GPUs

This section describes how to install and start the Driverless AI Docker image on RHEL systems with GPUs. Note that the provided nvidia-docker rpm is for x86_64 machines. nvidia-docker has limited support for ppc64le machines. More information about nvidia-docker support for ppc64le machines is available here.

Watch the installation video here. Note that some of the images in this video may change between releases, but the installation steps remain the same.

Note: As of this writing, Driverless AI has only been tested on RHEL version 7.4.

Open a Terminal and ssh to the machine that will run Driverless AI. Once you are logged in, perform the following steps.

  1. Retrieve the Driverless AI package from https://www.h2o.ai/driverless-ai-download/.

    Note: You can optionally run the following to retrieve the latest tagged version. In this case, you will not know the actual Driverless AI version until you start the software.

    wget https://s3-us-west-2.amazonaws.com/h2o-internal-release/docker/driverless-ai-docker-runtime-latest-release.gz
    
  2. Install and start Docker EE on RHEL (if not already installed). Follow the instructions on https://docs.docker.com/engine/installation/linux/docker-ee/rhel/.

Alternatively, you can run on Docker CE, which works even though it’s not officially supported.

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker
  1. Tag the Driverless AI version with latest. For example, the command below tags driverless-ai-docker-cuda9-runtime-rel-1.1.3.cuda9.gz as latest. Why do I have to tag this as latest? Refer to the FAQ. (Note: If you downloaded driverless-ai-docker-runtime-latest-release.gz, then you do not need to perform this step. That version is already tagged as latest.)
docker tag opsh2oai/h2oai-runtime:1.1.3.cuda9 opsh2oai/h2oai-runtime:latest
  1. Install nvidia-docker and the nvidia-docker plugin on RHEL (if not already installed):
# Install nvidia-docker and nvidia-docker-plugin
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker-1.0.1-1.x86_64.rpm
sudo rpm -i /tmp/nvidia-docker*.rpm && rm /tmp/nvidia-docker*.rpm
sudo systemctl start nvidia-docker

Note: If you would like the nvidia-docker service to automatically start when the server is rebooted then run the following command. If you do not run this commend, you will have to remember to start the nvidia-docker service manually; otherwise the GPUs will not appear as available.

sudo systemctl enable nvidia-docker

Alternatively, if you have installed Docker CE above you can install nvidia-docker with:

curl -s -L https://nvidia.github.io/nvidia-docker/centos7/x86_64/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
sudo yum install nvidia-docker2
  1. Verify that the NVIDIA driver is up and running. If the driver is not up and running, log on to http://www.nvidia.com/Download/index.aspx?lang=en-us to get the latest NVIDIA Tesla V/P/K series driver.
nvidia-docker run --rm nvidia/cuda nvidia-smi
  1. Enable persistence of the GPU. Note that this only needs to be run once. Refer to the following for more information: http://docs.nvidia.com/deploy/driver-persistence/index.html.
nvidia-persistenced --user <USER>
nvidia-smi -pm 1
  1. Set up a directory for the version of Driverless AI on the host machine, replacing VERSION below with your Driverless AI Docker image version (for example, 1.1.3):
# Set up directory with the version name
mkdir dai_rel_VERSION
  1. Load the Driverless AI Docker image inside the new directory, replacing VERSION below with your Driverless AI Docker image version (for example, 1.1.3).
# cd into the new directory
cd dai_rel_VERSION

# Load the Driverless AI docker image
docker load < driverless-ai-docker-runtime-rel-VERSION.gz
  1. Set up the data, log, and license directories on the host machine (within the new directory):
# Set up the data, log, license, and tmp directories on the host machine
mkdir data
mkdir log
mkdir license
mkdir tmp
  1. At this point, you can copy data into the data directory on the host machine. The data will be visible inside the Docker container.
  2. Start the Driverless AI Docker image with nvidia-docker:
# Start the Driverless AI Docker image
nvidia-docker run \
    --pid=host \
    --init \
    --rm \
    -u `id -u`:`id -g` \
    -p 12345:12345 \
    -p 54321:54321 \
    -p 8888:8888 \
    -v `pwd`/data:/data \
    -v `pwd`/log:/log \
    -v `pwd`/license:/license \
    -v `pwd`/tmp:/tmp \
    opsh2oai/h2oai-runtime

Driverless AI will begin running:

---------------------------------
Welcome to H2O.ai's Driverless AI
---------------------------------
   version: X.Y.Z

- Put data in the volume mounted at /data
- Logs are written to the volume mounted at /log/YYYYMMDD-HHMMSS
- Connect to Driverless AI on port 12345 inside the container
- Connect to Jupyter notebook on port 8888 inside the container
  1. Connect to Driverless AI with your browser at http://Your-Driverless-AI-Host-Machine:12345.

Install on RHEL with CPUs

This section describes how to install and start the Driverless AI Docker image on RHEL. Note that this uses Docker EE and not NVIDIA Docker. GPU support will not be available.

Watch the installation video here. Note that some of the images in this video may change between releases, but the installation steps remain the same.

Note: As of this writing, Driverless AI has only been tested on RHEL version 7.4.

Open a Terminal and ssh to the machine that will run Driverless AI. Once you are logged in, perform the following steps.

  1. Retrieve the Driverless AI package from https://www.h2o.ai/driverless-ai-download/.

    Note: You can optionally run the following to retrieve the latest tagged version. In this case, you will not know the actual Driverless AI version until you start the software.

    wget https://s3-us-west-2.amazonaws.com/h2o-internal-release/docker/driverless-ai-docker-runtime-latest-release.gz
    
  2. Install and start Docker EE on RHEL (if not already installed). Follow the instructions on https://docs.docker.com/engine/installation/linux/docker-ee/rhel/.

  3. Tag the Driverless AI version with latest. For example, the command below tags driverless-ai-docker-cuda9-runtime-rel-1.1.3.cuda9.gz as latest. Why do I have to tag this as latest? Refer to the FAQ. (Note: If you downloaded driverless-ai-docker-runtime-latest-release.gz, then you do not need to perform this step. That version is already tagged as latest.)

docker tag opsh2oai/h2oai-runtime:1.1.3.cuda9 opsh2oai/h2oai-runtime:latest
  1. On the machine that is running Docker EE, retrieve the Driverless AI package from https://www.h2o.ai/driverless-ai-download/.

Alternatively, you can run on Docker CE, which works even though it’s not officially supported.

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo systemctl start docker
  1. Set up a directory for the version of Driverless AI on the host machine, replacing VERSION below with your Driverless AI Docker image version (for example, 1.1.3):
# Set up directory with the version name
mkdir dai_rel_VERSION
  1. Load the Driverless AI Docker image inside the new directory, replacing VERSION below with your Driverless AI Docker image version (for example, 1.1.3):
# Load the Driverless AI Docker image
docker load < driverless-ai-docker-runtime-rel-VERSION.gz
  1. Set up the data, log, license, and tmp directories (within the new directory):
# cd into the directory associated with the selected version of Driverless AI
cd dai_rel_VERSION

# Set up the data, log, license, and tmp directories on the host machine
mkdir data
mkdir log
mkdir license
mkdir tmp
  1. Copy data into the data directory on the host. The data will be visible inside the Docker container at /<user-home>/data.
  2. Start the Driverless AI Docker image with docker. GPU support will not be available.
$ docker run \
   --pid=host \
   --init \
   --rm \
   -u `id -u`:`id -g` \
   -p 12345:12345 \
   -p 54321:54321 \
   -p 8888:8888 \
   -v `pwd`/data:/data \
   -v `pwd`/log:/log \
   -v `pwd`/license:/license \
   -v `pwd`/tmp:/tmp \
   opsh2oai/h2oai-runtime
  1. Connect to Driverless AI with your browser at http://Your-Driverless-AI-Host-Machine:12345.

Stopping the Docker Image

To stop the Driverless AI Docker image, type Ctrl + C in the Terminal (Mac OS X) or PowerShell (Windows 10) window that is running the Driverless AI Docker image.

Upgrading the Docker Image

This section provides instructions for upgrading Driverless AI so that existing experiments are saved. The instructions show an example of upgrading Driverless AI from version 1.0.18 to version 1.1.3.

WARNING: Experiments, MLIs, and MOJOs are not automatically upgraded when Driverless AI is upgraded.

  • Build MLI models before upgrading.
  • Build MOJO pipelines before upgrading.

If you did not build MLI on a model before upgrading Driverless AI, then you will not be able to view MLI on that model after upgrading. Before upgrading, be sure to run MLI jobs on models that you want to continue to interpret in future releases. If that MLI job appears in the list of Interpreted Models in your current version, then it will be retained after upgrading.

If you did not build a MOJO pipeline on a model before upgrading Driverless AI, then you will not be able to build a MOJO pipeline on that model after upgrading. Before upgrading, be sure to build MOJO pipelines on all desired models.

Note: Stop Driverless AI if it is still running.

  1. SSH into the IP address of the machine that is running Driverless AI.
  2. Set up a directory for the version of Driverless AI on the host machine:
# Set up directory with the version name
mkdir dai_rel_1.1.3

# cd into the new directory
cd dai_rel_1.1.3
  1. Retrieve the Driverless AI package from https://www.h2o.ai/driverless-ai-download/ and add it to the new directory.

Note: You can optionally run the following to retrive the latest tagged version. In this case, you will not know the actual Driverless AI version until you start the software.

# Download latest release
wget https://s3-us-west-2.amazonaws.com/h2o-internal-release/docker/driverless-ai-docker-runtime-latest-release.gz
  1. Tag the Driverless AI version with latest. For example, the command below tags driverless-ai-docker-cuda9-runtime-rel-1.1.3.cuda9.gz as latest. Why do I have to tag this as latest? Refer to the FAQ. (Note: If you downloaded driverless-ai-docker-runtime-latest-release.gz, then you do not need to perform this step. That version is already tagged as latest.)
docker tag opsh2oai/h2oai-runtime:1.1.3.cuda9 opsh2oai/h2oai-runtime:latest
  1. Load the Driverless AI Docker image inside the new directory:
# Load the Driverless AI docker image
docker load < driverless-ai-docker-runtime-rel-VERSION.gz
  1. Copy the data, log, license, and tmp directories from the previous Driverless AI directory to the new Driverless AI directory:
# Copy the data, log, license, and tmp directories on the host machine
cp -r dai_rel_1.0.18/data dai_rel_1.1.3/data
cp -r dai_rel_1.0.18/log dai_rel_1.1.3/log
cp -r dai_rel_1.0.18/license dai_rel_1.1.3/license
cp -r dai_rel_1.0.18/tmp dai_rel_1.1.3/tmp

At this point, your experiments from the previous versions will be visible inside the Docker container.

  1. Start the Driverless AI Docker image.
  2. Connect to Driverless AI with your browser at http://Your-Driverless-AI-Host-Machine:12345.