Introduction

KNIME Server is an enterprise-grade solution for Advanced Analytics workloads such as sharing workflows, and executing workflows. The Server is based on the Tomcat application server, and uses a core of KNIME Analytics Platform in order to execute workflows. The KNIME Server installer can install both of these components that make up KNIME Server. This document aims to give a quick overview of the steps needed to perform the installation, and a short description of the options that can be changed at install time. After installation, you can refer to the KNIME Server Administration Guide for detailed information about the Server architecture, configuration options and general administration tasks. More details about the functionality of KNIME Server are listed in the following paragraphs.

KNIME Server provides KNIME software users with a shared remote workflow repository. Workflows can be uploaded to and stored on the server or retrieved from it to a local KNIME workspace. Workflows on the server can be executed as jobs either as needed or as part of a one time or periodically scheduled event. Additionally, workflows may be executed through a web browser using the KNIME WebPortal or via generic SOAP or RESTful web service interfaces which allow control from 3rd party applications. The KNIME Explorer view, which is built into KNIME Analytics Platform can be used to log into remote repositories, control user access permissions and schedule workflow execution tasks.

KNIME Server consists of two components: a server side component and a client interface. The server side component is installed on an application server (Tomcat) together with a KNIME Analytics Platform installation which will be responsible for executing workflows. The latter is referred to as "Executor". The client interface allows interaction with the server repository and is integrated in KNIME Analytics Platform (via the KNIME ServerSpace extension), and KNIME WebPortal, or accessible via the REST API.

Prerequisites

Server

  • The operating system on the server can be either Windows, Linux, or macOS. The following operating systems are officially supported:

    • Windows Server 2016, 2019

    • Ubuntu 16.04 LTS, and 18.04 LTS and derivatives

    • RHEL/CentOS 6.7+ and 7.x

    The server may also run on other operating systems, however, we neither test nor support them through the KNIME Server standard support package.

  • We strongly recommend a 64bit operating system with at least 16GB RAM and 8 CPU cores

  • Java Development Kit (JDK) 8, Hotspot, 64bit

    A recent update of Java to version 8u272 will cause KNIME Server installations to no longer be able to connect to a secured LDAP authentication system. we recommend not updating the Java installation to version 8u272 on your KNIME Server. If you have already done this, we suggest you revert it. If you run into any issues or need further information please contact the KNIME support team at support@knime.com.
    • Ubuntu 16.04 / 18.04: sudo apt-get install -y openjdk-8-jdk

    • RHEL/CentOS 6.7+ & 7: install java-1.8.0-openjdk-devel via the package manager

    • For all other OS please download and install the latest Hotspot OpenJDK 8 (LTS) from the AdoptOpenJDK Website

    • Note that JDK >= 9 and OpenJ9 JVM is not supported at this time.

02 windows openjdk
  • Local hard disk for workflow repository partition (SSD class — or equivalent)

  • 250GB disk space on the workflow repository partition

For generation of images using the Chromium extension the following additional extensions are required under Linux:

  • Ubuntu: sudo apt install -y libgtk-3-0

  • RHEL 7/CentOS: sudo yum install libXScrnSaver

Client

  • Operating system Windows, Linux, or macOS (independent from the server OS)

The installation owner

We recommend that both the Tomcat server as well as the KNIME Server Executor are installed by the same user. This user does not need administration privileges. The recommended user name is knime. No other user requires write access to any files created during the installation.

This user must do the entire KNIME Server Executor installation including unpacking of KNIME Analytics Platform and installation of all desired additional features. If additional features are added later with a user that cannot write to the installation folder, the installation may appear to work normally, but causes problems some time later which can be difficult to track down.

Installation

It is recommended that the entire installation process is performed by the same user, e.g knime (see The installation owner above). Don’t install the server as Administrator or root user! Follow the installation instructions step by step. Don’t skip anything unless it is marked as optional.

The KNIME Server installer is a single JAR file that works on all supported platforms (Windows, Linux, macOS). Use of the JAR file is described in the following sections.

Summary

We briefly describe the installation options available in this guide. For full details about any of the options see the KNIME Server Administration Guide.

Before you start, make sure that the Java 8 JDK is installed (see Prerequisites).

Launch the installer

The installer is called knime-server-installer-4.x.y.jar (where x.y is the current release number). The installer can be run by issuing the command (at the Linux terminal, or cmd.exe prompt):

java -jar knime-server-installer-4.x.y.jar

Issuing the command will launch the installer GUI:

03 installer gui

It is also possible to step through the installation via the command line. In this case issue the command:

java -jar knime-server-installer-4.x.y.jar -console

Path to the system’s JDK location

The Java JDK version must be 1.8.x, and you should use the browse button to the select the folder that contains the bin folder.

Path to the installation folder

The installation folder will (by default) contain all of the files that KNIME requires, which includes Tomcat, the KNIME Server Executor and the KNIME Server repository. The installation folder should be empty, and if it does not exist will be created. If prompted choose OK.

KNIME Server Executor configuration

There are three options to choose from:

    1. Select existing KNIME Server Executor (default): This means that you need to have previously installed a compatible KNIME Server Executor using one of the downloads from the KNIME Website. Note that the downloadable KNIME Server Executor build contains the required extension, but a standard KNIME Analytics Platform build will not be sufficient. In the latter case the "KNIME Executor Connector" (in category "KNIME Server Executor (server-side extension)") must be installed. The extension is available from the pre-registered KNIME Analytics Platform update site. To install it run the KNIME Analytics Platform instance that is intended to be the executor and navigate to File → Install KNIME Extensions…​ and select KNIME Executor connector under KNIME Server Executor (server-side extension). Finally, click on "next" and follow the instructions.

    2. Install KNIME Server Executor: This will install a new KNIME Server Executor, and will result in several additional steps that must be followed.

    3. Disable server-side workflow execution: This option means that workflows cannot be executed on KNIME Server.

KNIME Server Workflow Repository

KNIME Server stores all workflows, and related configuration information in the KNIME Server Workflow Repository. The folder should exist on a local drive and have enough free space to store the workflows and jobs. We recommend a minimum of 100 GB, although this may need to be increased considerably depending on the intended use case.

By default, the KNIME Server Workflow Repository is created within the KNIME Server installation folder. It is possible to use a different location (e.g. on another hard drive) or an existing folder. In case the folder exists, the installer will not modify the folder, assuming that you pointed it to the workflow repository of a previous installation.

KNIME Server license file

The KNIME Server application works only as expected if a valid license file is provided. If you have not received a license file, please contact KNIME (contact@knime.org), or get in touch with your local KNIME representative.

If you performed the installation without the license file, you can simply copy the KNIME Server license file into the <knime-server-repository>/licenses folder. The file name must end with .xml, and there is no need to restart the server after adding the license file.

KNIME Server port configuration

KNIME Server and its clients communicate by either HTTP, or HTTPS. Default ports are 8080, and 8443. These ports can be changed in the range: 1024-49151.

KNIME Server mountpoint and Context Root

The KNIME Server mountpoint is used to describe the KNIME Server to the clients that connect to it. For simple installations, the default name, or a simple name e.g. mycompany-knime is usually appropriate. For an environment with multiple KNIME Servers, mountpoints such as knime-server-prod or knime-server-dev would allow users to distinguish between development and production environments. For a full description of the mountpoint see the KNIME Server Administration Guide.

The Context Root (CONTEXT) is used to define the KNIME WebPortal URL. All WebPortal functionality will be available at:

http://HOSTNAME:PORT/CONTEXT

KNIME Server admin user configuration

Many administrative tasks on KNIME Server can be performed by the administrator user, e.g. setting workflow/file permissions, adding/removing users. The default username is knimeadmin, and the password is set to the hostname of the machine. It is strongly recommended that you change this password. If using LDAP authentication changes are required to the server.xml file in <installation-path>/apache-tomee*/conf. Please refer to the KNIME Server Advanced Setup Guide for full information.

KNIME Server email resource

The SMTP server, SMTP user, and 'from'-address can be altered. For advanced configuration options consult the KNIME Server Administration Guide.

Installing and launching KNIME Server, and final configuration steps

The final four steps will install, and if successful launch KNIME Server. Under Windows a new command prompt window will appear, closing this window will shutdown KNIME Server. The penultimate page displays information about the installation, such as the URLs required to connect to the server. The final page is able to generate an automatic installation script that can be used to automate future installations.

Autoinstall file

Once successfully executed, the KNIME Server installer generates a file that can be saved. The xml file is called auto-install.xml and describes all parameters that were set during the installation process. In case you want to perform an installation using the same parameters you can simply run:

java -jar knime-server-installer-4.x.y.jar <path-to>/auto-install.xml

Additional installer command-line flags

The installer reads out system properties specified on command-line, which are usually not required in a standard installation but can be useful for automated (update) scripts.

  • -Dknime.server.executor.memory=<value> (<value> is for instance 4G or 2500M)
    The value specified is added to the KNIME Server Executor’s knime.ini file and specifies how much memory a KNIME Server Executor is allowed to use at most. If not given, a default is used, which is based on the system’s available main memory.

  • -Dknime.server.nostart=true
    If specified, KNIME Server is not started after the installation.

Starting/stopping KNIME Server

KNIME Server can be started and stopped using scripts in the <tomee folder>/bin folder. It is highly recommended that you follow the steps in the following section Automatically starting KNIME Server, this ensures that KNIME Server can be quickly and easily restarted.

For Linux/macOS restart with

<tomee folder>/bin/shutdown.sh
<tomee folder>/bin/startup.sh

and for Windows use

<tomee folder>/bin/shutdown.bat
<tomee directory>/bin/startup.bat

or

apache-tomee.bat stop
apache-tomee.bat start

After restarting you should be able to access KNIME Server from both KNIME Analytics Platform and KNIME WebPortal (in your web browser). More details can be found in the KNIME Explorer User Guide and KNIME WebPortal User Guide.

The URL entered in the KNIME Analytics Platform mount point dialog is the same as for the WebPortal and defaults to

http://<server>:8080/knime/

If you encounter problems please have a look at the log files (see section Log Files in the KNIME Server Administration Guide for details).

In some cases it may take quite some time (up to several minutes) until the server responds to requests on Linux systems. This is usually caused by insufficient entropy for the random number generator used by Tomcat. A description on how to remedy this issue is included in the KNIME Server Administration Guide

Automatically starting KNIME Server

In order to start KNIME Server after a reboot, you need to define a service (Windows) or a runlevel script (Linux) that starts TomEE and brings it down at a machine shut down.

Defining a Linux runlevel script

Depending on your Linux distribution you can define a SysVinit start script or systemd service as follows (as root user):

Ubuntu >=16.04, Redhat 7.x, and derivatives (Systemd)

  1. Copy the whole folder to the root of your file system.

    sudo cp -r <install-dir>/install-data/linux-runlevel-templates/systemd/. /

    The folder includes the systemd service description for knime-server, a start script, and a systemd override file that allows configuration of the service (such as file system location or the userid under which the server should run).

  2. Run

    systemctl daemon-reload
  3. Run

    systemctl edit knime-server.service

    Adjust the settings in the editor that will open, and save the changes. Make sure that the User specified in this file exists on the system. Otherwise startup will fail.

  4. Enable the service with

    systemctl enable knime-server.service

Ubuntu 14 and derivatives (SysVinit)

  1. Copy the runlevel script

    <install-folder>/install-data/linux-runlevel-templates/sysvinit/Ubuntu/etc/init.d/knime-server

    or that is provided in the installation package to /etc/init.d/knime-server and make it executable.

  2. Copy the configuration file

    <install-folder>/install-data/linux-runlevel-templates/sysvinit/Ubuntu/etc/default/knime-server

    from the installation package to /etc/default/knime-server. Adjust the variables in this config file.

  3. Enable the start script with

    update-rc.d knime-server defaults

Redhat 6.x and derivatives (SysVinit)

  1. Copy the runlevel script

    <install-folder>/install-data/linux-runlevel-templates/sysvinit/Redhat/etc/init.d/knime-server

    or that is provided in the installation package to /etc/init.d/knime-server and make it executable.

  2. Copy the configuration file

    <install-folder>/install-data/linux-runlevel-templates/sysvinit/Redhat/etc/default/knime-server

    from the installation package to /etc/default/knime-server. Adjust the variables in this config file.

  3. Enable the start script with

    chkconfig --add knime-server

Creating a Windows service

If you want to start and stop KNIME Server automatically under Windows, you need to create a Windows service. Run the batch file at <tomee-folder>\bin\service.install.as.admin.bat as user Administrator. It will create a Windows service called "KNIME Server" that can be started and stopped like any other Windows service (Control Panel ⇒ Administrative Tools ⇒ Services).

You may want to change the memory settings for when TomEE is started as a service:

  1. Start <tomee-folder>\bin\TomEE.exe as Administrator.

  2. Go to the "Java" tab and change the "Maximum Memory pool" value.

In order to uninstall the service execute <tomee-folder>\bin\service.remove.as.admin.bat as user Administrator.

If you want to know more details, have a look at the Tomcat documentation which describes this process in detail.
In places where the Tomcat documentation references "Tomcat7" executables, replace their names with TomEE.x86.exe or TomEE.amd64.exe depending on your architecture.