Kudu Installation

Before you proceed with installation, review Product Compatibility Matrix - Apache Kudu.

Follow these steps on each node in your Kudu cluster.

  1. Cloudera recommends installing the Kudu repositories for your operating system. Use the links in the following table to download the appropriate repository installer. Save the repository installer to /etc/yum.repos.d/ for RHEL, /etc/apt/sources.list.d/ for Ubuntu/Debian, or /etc/zypp/repos.d for SLES.
    Kudu Repository and Package Links
    Operating System Repository Package Individual Packages
    RHEL RHEL 6 or RHEL 7 RHEL 6
    Ubuntu Trusty, Xenial Trusty, Xenial
    SLES SLES 12 SLES 12
    Debian Jessie Jessie
  2. Install the kudu package, using the appropriate commands for your operating system. Also install the kudu-master and kudu-tserver packages. They provide operating system start-up scripts for the Kudu master and tablet servers.
    Operating System Install Commands
    RHEL/CentOS
    sudo yum install kudu                         # Base Kudu files
    sudo yum install kudu-master                  # Kudu master init.d service script and default configuration
    sudo yum install kudu-tserver                 # Kudu tablet server init.d service script and default configuration
    sudo yum install kudu-client0                 # Kudu C++ client shared library
    sudo yum install kudu-client-devel            # Kudu C++ client SDK
    Ubuntu/Debian
    sudo apt-get install kudu                     # Base Kudu files
    sudo apt-get install kudu-master              # Service scripts for managing kudu-master
    sudo apt-get install kudu-tserver             # Service scripts for managing kudu-tserver
    sudo apt-get install libkuduclient0           # Kudu C++ client shared library
    sudo apt-get install libkuduclient-dev        # Kudu C++ client SDK
    SLES
    sudo zypper install kudu                      # Base Kudu files
    sudo zypper install kudu-master               # Kudu master init.d service script and default configuration
    sudo zypper install kudu-tserver              # Kudu tablet server init.d service script and default configuration
    sudo zypper install kudu-client0              # Kudu C++ client shared library
    sudo zypper install kudu-client-devel         # Kudu C++ client SDK
  3. The packages create a kudu-conf entry in the operating system's alternatives database, and they ship the built-in conf.dist alternative. To adjust your configuration, you can either edit the files in /etc/kudu/conf/ directly, or create a new alternative using the operating system utilities. If you create a new alternative, make sure the alternative is the directory pointed to by the /etc/kudu/conf/ symbolic link, and create custom configuration files there. Some parts of the configuration are configured in /etc/default/kudu-master and /etc/default/kudu-tserver files as well. You must include or duplicate these configuration options if you create custom configuration files.

    Review the configuration, including the default WAL and data directory locations, and adjust them according to your requirements.

  4. Configure the Kudu services to start automatically when the server starts, by adding them to the default runlevel.
    sudo chkconfig kudu-master on            # RHEL / CentOS 
    sudo chkconfig kudu-tserver on           # RHEL / CentOS 
    
    sudo update-rc.d kudu-master defaults    # Ubuntu / Debian 
    sudo update-rc.d kudu-tserver defaults   # Ubuntu / Debian
  5. Verify the Installation.

Verify the Installation

  1. Verify that the Kudu master and tablet servers are running using one of the following methods:
    • Examine the output of the ps command on servers to verify that the kudu-master and kudu-tserver processes are running.

    • Access the master or tablet server web UI by going to http://<_host_name_>:8051/ for masters, or http://<_host_name_>:8050/ for tablet servers.

  2. If Kudu isn’t running, look at the log files in /var/log/kudu, and if there’s a file ending with .FATAL, that means Kudu did not start.
    • If the error is related to a failed hole punch test or the file block manager, it might be a problem with your operating system.

    • If the error is related to clock synchronization, it is most likely a problem with the Network Time Protocol.