Linux DEBs

For Linux machines that will not use the Docker image or RPM, a DEB installation is available for x86_64 Ubuntu 16.04.

The installation steps assume that you have a license key for Driverless AI. For information on how to obtain a license key for Driverless AI, visit https://www.h2o.ai/products/h2o-driverless-ai/. Once obtained, you will be promted to paste the license key into the Driverless AI UI when you first log in, or you can save it as a .sig file and place it in the license folder that you will create during the installation process.

Environment

Operating System Min Mem
Ubuntu with GPUs 64 GB
Ubuntu with CPUs 64 GB

Requirements

  • Ubuntu 16.04
  • Driverless AI DEB

About the Install

  • The ‘dai’ service user is created locally (in /etc/passwd) if it is not found by ‘getent passwd’. You can override the user by providing the DAI_USER environment variable during rpm or dpkg installation.
  • The ‘dai’ service group is greated locally (in /etc/group) if it is not found by ‘getent group’. You can override the group by providing the DAI_GROUP environment variable during rpm or dpkg installation.
  • Configuration files are put in /etc/dai and owned by the ‘root’ user:
    • /etc/dai/config.toml: Driverless AI config file (See Using the config.toml File section for details)
    • /etc/dai/User.conf: Systemd config file specifying the service user
    • /etc/dai/Group.conf: Systemd config file specifying the service group
    • /etc/dai/EnvironmentFile.conf: Systemd config file specifying (optional) environment variable overrides
  • Software files are put in /opt/h2oai/dai and owned by the ‘root’ user
  • The following directories are owned by the service user so they can be updated by the running software:
    • /opt/h2oai/dai/home: The application’s home directory (license key files are stored here)
    • /opt/h2oai/dai/tmp: Experiments and imported data are stored here
    • /opt/h2oai/dai/log: Log files go here if you are not using systemd (if you are using systemd, then the use the standard journalctl tool)
  • By default, Driverless AI looks for a license key in /opt/h2oai/dai/home/.driverlessai/license.sig. If you are installing Driverless AI programmatically, you can copy a license key file to that location. If no license key is found, the application will interactively guide you to add one from the Web UI.
  • systemd unit files are put in /usr/lib/systemd/system
  • Symbolic links to the configuration files in /etc/dai files are put in /etc/systemd/system

If your environment is running an operational systemd, that is the preferred way to manage Driverless AI. The package installs three systemd services and a wrapper service:

  • dai: Wrapper service that starts/stops the other three services
  • dai-dai: Main Driverless AI process
  • dai-h2o: H2O-3 helper process used by Driverless AI
  • dai-procsy: Procsy helper process used by Driverless AI

If you don’t have systemd, you can also use the provided run script to start Driverless AI.

Installing the Driverless AI Linux DEB

Run the following commands to install the Driverless AI DEB. Replace <VERSION> with your specific version.

# Optionally install libraries to enable PDF documentation generation.
sudo apt-get update
sudo apt-get install -y libcairo2 libpango1.0-0

# Install Driverless AI.
sudo dpkg -i dai_VERSION.deb

By default, the Driverless AI processes are owned by the ‘dai’ user and ‘dai’ group. You can optionally specify a different service user and group as shown below. Replace <myuser> and <mygroup> as appropriate.

# Temporarily specify service user and group when installing Driverless AI.
# dpkg saves these for systemd in the /etc/dai/User.conf and /etc/dai/Group.conf files.
sudo DAI_USER=myuser DAI_GROUP=mygroup dpkg -i dai_VERSION.deb

You may now optionally make changes to /etc/dai/config.toml.

Starting NVIDIA persistence Mode

If you have NVIDIA GPUs, perform the following two NVIDIA commands to improve performance. For more information: http://docs.nvidia.com/deploy/driver-persistence/index.html.

sudo nvidia-persistenced --user dai
sudo nvidia-smi -pm 1

Starting Driverless AI

If you have systemd (preferred):

# Start Driverless AI.
sudo systemctl start dai

If you do not have systemd:

# Start Driverless AI.
sudo -H -u dai /opt/h2oai/dai/run-dai.sh

Looking at Driverless AI log files

If you have systemd (preferred):

sudo systemctl status dai-dai
sudo systemctl status dai-h2o
sudo systemctl status dai-procsy
sudo journalctl -u dai-dai
sudo journalctl -u dai-h2o
sudo journalctl -u dai-procsy

If you do not have systemd:

sudo less /opt/h2oai/dai/log/dai.out
sudo less /opt/h2oai/dai/log/h2o.out
sudo less /opt/h2oai/dai/log/procsy.out

Stopping Driverless AI

If you have systemd (preferred):

# Stop Driverless AI.
sudo systemctl stop dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

If you do not have systemd:

# Stop Driverless AI.
sudo pkill -U dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

Upgrading Driverless AI

WARNING: This is currently alpha software status. Back up your data (especially the Driverless AI tmp directory) before attempting.

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.

The upgrade process inherits the service user and group from /etc/dai/User.conf and /etc/dai/Group.conf. You do not need to manually specify the DAI_USER or DAI_GROUP environment variables during an upgrade.

If you have systemd (preferred):

# Stop Driverless AI.
sudo systemctl stop dai

# Back up your /opt/h2oai/dai/tmp directory at this time. If you do not, all previous data will be lost.

# Upgrade Driverless AI.
sudo dpkg -i dai_NEWVERSION.deb
sudo systemctl daemon-reload
sudo systemctl start dai

If you do not have systemd:

# Stop Driverless AI.
sudo pkill -U dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Back up your /opt/h2oai/dai/tmp directory at this time. If you do not, all previous data will be lost.

# Upgrade and restart.
sudo dpkg -i dai_NEWVERSION.deb
sudo -H -u dai /opt/h2oai/dai/run-dai.sh

Uninstalling Driverless AI

If you have systemd (preferred):

# Stop Driverless AI.
sudo systemctl stop dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Uninstall Driverless AI.
sudo dpkg -r dai

# Purge Driverless AI.
sudo dpkg -P dai

If you do not have systemd:

# Stop Driverless AI.
sudo pkill -U dai

# The processes should now be stopped.  Verify.
sudo ps -u dai

# Uninstall Driverless AI.
sudo dpkg -r dai

# Purge Driverless AI.
sudo dpkg -P dai

CAUTION! At this point you can optionally completely remove all remaining files, including the database (this cannot be undone):

sudo rm -rf /opt/h2oai/dai
sudo rm -rf /etc/dai