Introduction
KNIME Server is an enterprise-grade solution for advanced analytics workloads such as sharing workflows, and executing workflows.
KNIME Server consists of a server side component and a client interface.
The server side component is based on a Tomcat application server, and uses a KNIME Executor to execute the workflows.
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. This is done via the client interface which is integrated in KNIME Analytics Platform. For an overview on how to use the KNIME Analytics Platform as a client interface with KNIME Server please refer to the KNIME Server User Guide.
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 RESTful web service interfaces which allow control from 3rd party applications.
This document aims to give a quick overview of the steps needed to perform the installation of KNIME Server, 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.
Please be aware that to make use of KNIME Server you will need a license. If you have not received a license file, please contact KNIME (contact@knime.com), or get in touch with your local KNIME representative. |
Installation planning
KNIME Server variants
KNIME Server is available in the following variants. All single node instances can be installed in the same way with respect to the operating system. KNIME Server Large also has the possibility to use multiple KNIME Executors in a distributed system.
-
Single node
-
KNIME Server Small
-
KNIME Server Medium
-
KNIME Server Large
-
-
Distributed KNIME Executors
-
KNIME Server Large
-
Beginning with KNIME Server 4.11, we use an integrated message broker for communication between application server and Executor, based on Apache Qpid (https://qpid.apache.org/). This can be used for running single node KNIME Server installations. Apache Qpid is bundled as part of all KNIME Server installations, so no additional setup is necessary.
If you want to set up distributed KNIME Executors for KNIME Server Large, please follow all steps in this document related to the main installation, and then follow the additional steps outlined here. This explains how to setup RabbitMQ (which is used as message broker instead of Qpid), as well as how to add additional Executors.
Supported operating systems
KNIME Server can be installed on machines running either Windows or Linux. The following operating systems are officially supported:
-
Windows Server 2016, 2019, and 2022
-
Ubuntu 20.04 LTS and 22.04 LTS and derivatives
-
RHEL/CentOS/Rocky Linux 7, 8 or 9
-
Some features of KNIME Analytics Platform such as image generation will not work on RHEL/CentOS 7 because the operating system libraries are too old. We recommend using at least version 8.
-
KNIME Server may also run on other operating systems, however, we neither test nor support them through the KNIME Server standard support package. |
Network requirements
-
KNIME Server (Small, Medium, or Large) on a single node:
-
Port 8080, 8443 must be accessible from all KNIME Analytics Platform clients requiring access to the Server
-
Port 8080, 8443 must be accessible for all browsers requiring WebPortal access
-
-
KNIME Server Large with distributed KNIME Executors
-
Port 8080, 8443 must be accessible from all KNIME Analytics Platform clients requiring access to the Server
-
Port 8080, 8443 must be accessible for all browsers requiring WebPortal access
-
Port 5672, must be accessible on both the KNIME Server and KNIME Executors in order for them to communicate with each other.
-
Hardware requirements
-
64-bit operating system with at least 32GB RAM. If workflows are executed on the same machine, the minimum number of cores depends on the licensed execution cores and according to your license. Additionally, we recommend to reserve 2-4 cores for the application server (Tomcat) which result into a minimum configuration of 6-8 cores for a single KNIME Server including execution. Please contact KNIME for sizing help.
-
KNIME Server stores all workflows and related configuration information in the KNIME Server workflow repository. The folder, that will be created during the installation process, should exist on a local drive and have enough free space to store the workflows and jobs. We recommend a minimum of 250 GB, although this may need to be increased considerably depending on the intended use case.
Java requirements
For fresh installations of KNIME Server, use Java Development Kit (JDK) 11 or 17. We officially support Adoptium distributions of JDK.
Please notice that JDK 17 is supported, but in case you are using OIDC, you should not go beyond JDK 11. |
Software requirements
Assuming that:
-
You want to perform an installation where the Tomcat application server and KNIME Executor live on the same machine
-
You have internet access on the target machine where you want to perform the installation
You can install the Executor during the Server installation process. You can then skip the next section and move to the installation steps sections for Windows or Linux operating systems.
In case the above assumptions do not apply you can download the Executor before starting the Server installation process and point to the Executor installation folder when requested.
Install KNIME Executor
You can install KNIME Executor downloading its executable from here.
On Windows:
-
The self-extracting archive simply creates a folder containing the KNIME Executor installation files. You don’t need any software to manage archiving.
-
The zip archive can be downloaded, saved, and extracted in your preferred location. We recommend to use an archive utility such as 7-zip for extraction, as the Windows built-in zip file utility may have trouble with some of the long filenames.
On Linux:
-
Extract the downloaded tarball to a folder of your choice:
tar -xvf knime-full-latest53-linux.gtk.x86_64.tar.gz -C /<executor-folder>/
Make sure that users other than the installation owner either have no write permissions to the installation folder at all or that they have full write permission to at least the "configuration" folder. Otherwise you may run into startup issues. We strongly recommend revoking all write permissions from everybody but the installation owner.
You can download and install the extensions to the Executor adding Local Update Sites as zip files if you have limited internet access on the target machine. You can download the KNIME update sites as zip files at the links listed here. |
Please note also that a standard KNIME Analytics Platform build will not be sufficient to be used as Executor. In case you want to use a pre-existing KNIME Analytics Platform installation as an Executor you will need to install the KNIME Executor connector extension, 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 Extensions.
The versions of the KNIME Server Executor extensions must match the server’s version (e.g. "4.17"). |
Also you may want to install the KNIME Report Designer extension to the KNIME Analytics Platform build to be used as KNIME Executor.
Finally, please also be aware that you will need a different KNIME Analytics Platform installation to use as client interface.
In case you will need to install additional extensions to the Executor please refer to the KNIME Executor administration section of the KNIME Server Administration Guide.
Client interface
A KNIME Analytics Platform is needed to use it as client interface.
KNIME Analytics Platform is available to install for operating system Windows, Linux, or macOS (independent from the Server OS).
Installation steps
KNIME Server single node installation on Windows
We will install Java, download the KNIME Server installer, install KNIME Server alongside with KNIME Executor, and perform a small test to validate the KNIME Server. This includes options to configure automatic startup and shutdown processes for KNIME, email configuration, and uploading of a KNIME Server License.
The first step is to download and install the latest Temurin OpenJDK 11 (LTS) from the Adoptium Website.
Please check that JDK is added to $JAVA_HOME during the installation process.
If it is not the case please manually add the path to Adoptium to $JAVA_HOME in the
environment variables list under System Variables.
|
During the installation process take note of the path to the JDK installation as you
will need to point to it later during the installation process.
It usually is C:\Program Files\Eclipse Adoptium\jdk-<version>
by default.
Do not 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.
|
In case you are installing KNIME Server on a machine which already has RabbitMQ installed, please stop the RabbitMQ service first before starting the installation. |
-
Download and launch the KNIME Server installer. The installer is called
knime-server-installer-<server-version.x>.jar
(where<server-version.x>
is the current release number, e.g. 4.13.0) and it can be downloaded from here. -
Click Next and you will go through a total number of 18 steps.
In Step 2 of 18 you are asked to point to the JDK installation folder. In case you skipped the installation you are pointed to the the Adoptium Website.
-
In Step 3 of 18 you can insert the location to which you want to install the Server. By default the
C:\knime_server
folder is suggested. If the folder you choose still does not exist on your machine you will be warned that the folder will be created. -
In the next step (Step 4 of 18) you are asked to choose the KNIME Executor that will be used to run workflows. Assuming that you want to perform an installation where the Tomcat application server and the KNIME Executor live on the same machine and that you have internet access on the target machine you can choose option Install KNIME Executor.
In the next step you are asked for the folder where to install the KNIME Executor. By default the
C:\knime_server\knime_executor
folder is suggested. Then you can choose the update sites from which the installer will add all bundles available in the listed update sites. By default the KNIME Analytics Platform and the KNIME Community Extensions (Trusted) update sites are suggested.If instead you do not have access to internet connection on the target machine you can download the KNIME Executor before starting this installation as specified in the Prerequisites section. In this case choose the first option Select existing KNIME Executor installation. Then you can point the Server installer to the Executor installation folder in the next step.
Selecting option 1 or 2 will automatically add additional settings to the Executor’s
knime.ini
file that are needed to establish a connection to the application server, and that can be used to manage the Executor’s preference setting.Changes to the knime.ini
file will not be made if you point the installer to an existing workflow repository in the next step. This is done to not contradict user-defined settings inknime-server.config
.In case you want to perform a distributed installation please follow the steps in the Distributed KNIME Executors installation section.
-
The installer will ask you to enter the path to the workflow repository. It is recommended that the workflow repository is stored independently from the Server, in a location that is frequently copied into a backup. 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.
-
OPTIONAL: It is easier to upload the license from the KNIME WebPortal, but you may provide already here the path where the license is located as part of the installation.
-
OPTIONAL: Default ports are 8080, and 8443. These ports can be changed in the range: 1024-49151.
-
In Step 11 of 18 you can choose:
-
The mount ID, which is a common name for the Server 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. The mount ID can also be changed at a later time.
-
The Context Root (
CONTEXT
) is used to define the KNIME WebPortal URL. All WebPortal functionality will be available at:https://HOSTNAME:PORT/CONTEXT/webportal/
Please be aware that with the release of KNIME WebPortal version 4.11+ it is necessary to always specify a Context Root.
-
-
OPTIONAL: Change the
knimeadmin
password. The default username isknimeadmin
, and the password is set to the hostname of the machine. It is strongly recommended that you change this password, and you can do so at a later time via the administration portal.If using LDAP authentication, changes are required to the server.xml
file in<installation-path>/apache-tomcat*/conf
. Please refer to the KNIME Server Advanced Setup Guide for full information. -
OPTIONAL: Configure email. We advise you to set up the email resources at a later time as explained in the KNIME Server Administration Guide.
-
Now the Server is installed and launched. A new Tomcat command prompt window appears. You can ignore any warnings that might be shown in this window. At this point of the process, closing this window will shutdown KNIME Server. Click Next and a page will display information about the installation, such as the URLs required to connect.
-
OPTIONAL: Generate an automatic installation script. Once successfully executed, you can generate an xml file, 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
-
Go to the following address from a browser that has network access to port 8443, or to the
PORT
you set up if different from the default one:https://HOSTNAME:PORT/CONTEXT/webportal/
Enter the credentials for the admin user and connect to the Server WebPortal interface. Here you will be able to upload the KNIME Server license file.
In case you do not have a license, please contact KNIME (contact@knime.com), or get in touch with your local KNIME representative. -
Now you have to start up KNIME Executor. You can use the batch script in the Executor folder:
<executor-directory>/start-executor.bat
Please make sure to start the KNIME Executor after starting KNIME Server. Otherwise, the Executor will not be able to acquire the core tokens it needs to operate.
In case the installer did not add the path to Qpid to the Executor’s knime.ini ,
please add the following line to the bottom of your knime.ini file:-Dcom.knime.enterprise.executor.msgq=amqp://knime:20knime16@localhost/
|
Starting and stopping KNIME Server under Windows
KNIME Server can be started and stopped using scripts in the
<apache-tomcat>/bin
folder.
For Windows use:
<tomcat-folder>/bin/shutdown.bat <tomcat-folder>/bin/startup.bat
Then start the Executor with:
<executor directory>/start-executor.bat
After starting you should be able to access KNIME Server from both KNIME Analytics Platform and KNIME WebPortal. More details can be found in the KNIME Server User Guide and KNIME WebPortal User Guide.
You can access via web browser at this address:
https://HOSTNAME:PORT/CONTEXT/webportal/
To test that your KNIME Server installation and the relative KNIME Executor are
up and running, access to KNIME WebPortal and run a test workflow. For example
you might try running the workflow Examples/REST/Predict Results Using REST API
.
You can mount the Server access point in the KNIME Analytics Platform using the following address:
https://HOSTNAME:PORT/
If you encounter problems please have a look at the log files (see section Log Files in the KNIME Server Administration Guide for details).
KNIME Server single node installation on Linux
We will install Java, create a non-root user, set-up the appropriate directory structure, download, install, and perform a small test to validate the KNIME Server. This includes options to configure automatic startup and shutdown processes for KNIME, email configuration, and uploading of a KNIME Server License.
Do not 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.
|
In case you are installing KNIME Server on a machine which already has RabbitMQ installed, please stop the RabbitMQ service first before starting the installation. |
-
Create a new, non-root user to install KNIME Server and KNIME Executor and a new directory for the installation to live. The folder is owned by the user just created. Here we create a directory in
/opt/
and a user namedknime
that owns it. In a terminal run the command:sudo useradd -d /opt/knime -m -s /bin/bash knime
We recommend that both the Tomcat server and the KNIME 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 perform 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. -
Install Java 11.
Support for Java 11 has been added in KNIME Server 4.12. For fresh installations, we recommend to use Java 11. sudo apt-get install openjdk-11-jdk
-
Install Chromium
sudo apt-get install libgtk-3-0
-
Switch accounts to the new
knime
user in step 1 and start working in the new/opt/knime/
directorysudo su - knime
-
Download the KNIME Server installer to the
/opt/knime
directory. The installer is calledknime-server-installer-<server-version.x>.jar
(where<server-version.x>
is the current release number, e.g. 4.12.2) and it can be downloaded from here. -
Run the KNIME Server Installer
java -jar knime-server-installer-4.11.3.0161-c8ac252.jar -console
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 instance4G
or2500M
)
The value specified is added to the KNIME Server Executor’sknime.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.
-
-
First the installer will prompt you to enter the path to the system’s JDK that you installed in step 2.
-
Then the installer will prompt you to enter a new directory that will be created and will host the KNIME Server. You can select any directory, but it is recommended you enter:
/opt/knime/<server-version>
-
The installer will prompt you to select the KNIME Executor that will be used to run workflows. Assuming that you want to perform an installation where the Tomcat application server and the KNIME Executor live on the same machine and that you have internet access on the target machine you can choose option
1
.If instead you do not have access to internet connection on the target machine you can download the KNIME Executor before starting this installation as specified in the Prerequisites section. In this case choose option
0
and point the installer to the Executor installation folder in the next step.In case you want to perform a distributed installation please follow the steps in the Distributed KNIME Executors installation section. -
The installer will prompt you to enter the path to the workflow repository. It is recommended that the workflow repository is stored independently from the Server, in a location that is frequently copied into a backup. 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.
-
OPTIONAL: It is easier to upload the license from the KNIME WebPortal, but you may provide already here the path where the license is located as part of the installation.
-
OPTIONAL: Default ports are 8080, and 8443. These ports can be changed in the range: 1024-49151.
-
Now you can specify:
-
The mount ID, which is a common name for the Server 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. The mount ID can also be changed at a later time.
-
The Context Root (
CONTEXT
) is used to define the KNIME WebPortal URL. All WebPortal functionality will be available at:https://HOSTNAME:PORT/CONTEXT/webportal/
Please be aware that with the release of KNIME WebPortal version 4.11+ it is necessary to always specify a Context Root.
-
-
OPTIONAL: Change the
knimeadmin
password. The default username isknimeadmin
, and the password is set to the hostname of the machine. It is strongly recommended that you change this password, and you can do so at a later time via the administration portal.If using LDAP authentication, changes are required to the server.xml
file in<installation-path>/apache-tomcat*/conf
. Please refer to the KNIME Server Advanced Setup Guide for full information. -
OPTIONAL: Configure email. We advise you to set up the email resources at a later time as explained in the KNIME Server Administration Guide.
-
OPTIONAL: Generate an automatic installation script. Once successfully executed, you can generate an xml file, 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
-
Now the Server automatically starts. Go to the following address from a browser that has network access to port 8443, or to the
PORT
you set up if different from the default one:https://HOSTNAME:PORT/CONTEXT/webportal/
Enter the credentials for the admin user and connect to the Server WebPortal interface. Here you will be able to upload the KNIME Server license file.
In case you do not have a license, please visit our website and contact KNIME. -
Now you have to start up KNIME Executor. You can use the batch script in the Executor folder:
<executor-directory>/start-executor.sh
Please make sure to start the KNIME Executor after starting KNIME Server. Otherwise, the Executor will not be able to acquire the core tokens it needs to operate.
In case the installer did not add the path to Qpid to the Executor’s knime.ini ,
please add the following line to the bottom of your knime.ini file:
-Dcom.knime.enterprise.executor.msgq=amqp://knime:20knime16@localhost/
|
Starting and stopping KNIME Server under Linux
KNIME Server can be started and stopped using scripts in the
<apache-tomcat>/bin
folder.
For Linux restart with:
<apache-tomcat>/bin/shutdown.sh <apache-tomcat>/bin/startup.sh
Then start the Executor with:
<executor-directory>/start-executor.sh
Please make sure to adjust the permissions of the start-executor.sh
file
to also allow execution by the user running the Executor, e.g.
chmod 744 start-executor.sh
In case the executor startup script is not present, you can start the Executor from command line by running
./knime -nosplash -consolelog -application com.knime.enterprise.slave.KNIME_REMOTE_APPLICATION
After starting you should be able to access KNIME Server from both KNIME Analytics Platform and KNIME WebPortal. More details can be found in the KNIME Server User Guide and KNIME WebPortal User Guide.
You can access via web browser at this address:
https://HOSTNAME:PORT/CONTEXT/webportal/
You can mount the Server access point in the KNIME Analytics Platform using the following address:
https://HOSTNAME:PORT/CONTEXT/
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 that automatically starts Tomcat and brings it down at a machine shutdown.
Note that the services described below allow setting basic configuration such as
the Java installation to use and the memory available to KNIME Server. This is
also the recommended way to set these values. However, the KNIME Server
Installer also sets these values directly in the Apache Tomcat installation using <apache-tomcat>/bin/setenv.sh
or
<apache-tomcat>\bin\setenv.bat
(so that they are set when KNIME Server is started manually). The values defined in
this file will always override the settings from the system services. Therefore we recommend deleting this file or at
least comment out the settings inside it.
Creating a Windows service
If you want to start and stop KNIME Server automatically under Windows, you need to create a Windows service.
Open a command line window as administrator, navigate to <apache-tomcat>\bin and run the following command:
service.bat install
This will create a Windows service called "Apache Tomcat 9.0 Tomcat9" that can be started and stopped by going to Control Panel > Administrative Tools > Services.
Here you can right click on the Apache Tomcat service and choose Start or Stop from the context menu that opens.
Select Properties to change the settings of the service. In the windows that opens go to LogOn tab to make sure to configure the service to run as Local System Account, and not as Local Service Account.
In order to uninstall the service, open a command line window as administrator, navigate to
<apache-tomcat>\bin
and run the following command:
service.bat uninstall
If you want to know more details, have a look at the Tomcat documentation which describes this process in detail.
Running Executors as services on Windows
It is also possible to run Executors as services that are automatically started during system startup (and stopped during shut down). This is the recommended method to use when not running on a docker deployment.
For increased security, we recommend to run the Executor service as a different user than the Tomcat service. |
On Windows Executors can be run as Windows services by using NSSM (Non-Sucking Service Manager). The following steps assume that you have a KNIME Analytics Platform installation that contains the KNIME Executor connector extension as described in KNIME Executor installation section.
-
Edit
<knime_executor>/install-executor-as-service.bat
and adjust the variables at the top of the file to your needs.
-
Run this batch file as administrator. This will install the service.
-
Open the Windows Services application, look for the KNIME Executor service in the list and start it.
-
If you want to remove the executor service again, run the following as administrator:
<knime_executor>/remove-executor-as-service.bat
Note that if you move the KNIME Executor installation you first have to remove the service before moving the installation and then re-create it.
If you remove the KNIME Executor service this way, it does not immediately remove it, but instead marks it for deletion. You must close any Task Manager or Service console windows to allow the operating system to perform cleanup and finish the service deletion before you can re-create it. |
Creating a Linux service
This section assumes that you are running a supported Linux distribution
with systemd
such as Ubuntu >=16.04, RHEL >=7.x, or derivatives.
-
Copy the content of the whole folder to the root of your file system.
sudo cp -r <knime_server>/install-data/linux-runlevel-templates/systemd/. /
The folder includes the
systemd
service description for KNIME Server, a start script, and asystemd
override file that allows configuration of the service (such as file system location or the userid under which the server should run). -
Run
sudo systemctl daemon-reload
-
To create a Linux service for KNIME Server, run:
sudo systemctl edit knime-server.service
Adjust the settings in the editor that opens, and save the changes. Make sure that the user specified in this file exists on the system. Otherwise startup will fail.
If your custom configuration contains any non-alphanumeric characters (including @) you have to encode them using systemd-escape <string>
before pasting them into the file. -
Enable the service with
sudo systemctl enable knime-server.service
Running Executors as services on Linux
It is also possible to run Executors as services that are automatically started during system startup (and stopped during shut down). This is the recommended method to use when not running on a docker deployment.
For increased security, we recommend to run the Executor service as a different user than the Tomcat service. |
-
Enable the
Xvfb
service which is required for creating images in KNIME nodes. If Xvfb is not available it can crash the executor.sudo systemctl enable Xvfb.service sudo systemctl start Xvfb.service
-
Run:
sudo systemctl edit knime-executor.service
Adjust the settings in the editor that opens, and save the changes. Here you need to update the path to point towards the Executor. Make sure that the user specified in this file exists on the system. Otherwise startup will fail unless your version of
systemd
supports DynamicUser. In this case a temporary user account will be created.If your custom configuration contains any non-alphanumeric characters (including @) you have to encode them using systemd-escape <string>
before pasting them into the file. -
Enable the service with the command:
sudo systemctl enable knime-executor.service
-
If you changed the
User
make sure to also change it in theXvfb
service accordingly by runningsudo systemctl edit Xvfb.service
and supplying the following contents
[Service] User=<same user as for the knime-executor.service>
KNIME Server settings
With KNIME Server version 4.12 an administration portal has been added. It is reachable when signing in to the KNIME WebPortal as an administrator.
The administration portal gives you an overview on the status of your KNIME Server, allows for an easy upload of a new license file, and also to configure your KNIME Server options through a browser-based user interface.
To have more information about Server settings and how to change them please refer to the KNIME Server Administration Guide.
KNIME Server authentication
In order to manage user authentication to KNIME Server it is possible to use any of the authentication methods available to Tomcat. By default the KNIME Server installer configures a database (H2) based authentication method. However, for enterprise applications, use of LDAP authentication is recommended, and user/group management is handled in Active Directory/LDAP itself. Also a token-based authentication is supported by KNIME Server.
Examples for each of the authentication methods are contained within the default installation. Configuration of all three authentication methods are described briefly in the User authentication section of the KNIME Server Administration Guide. In all cases the Tomcat documentation should be considered the authoritative information source.
Distributed KNIME Executors
As part of a highly available architecture, KNIME Server 4.17 allows you to distribute execution of workflows over several Executors that can sit on separate hardware resources. This allows KNIME Server to scale workflow execution with increasing load because it is no longer bound to a single computer.
If you’re planning to use the distributed KNIME Executors in production environments please get in touch with us directly for more information.
Installation, configuration, and operation is very similar to the single Executor setup. The server communicates with the Executors via a message queueing system (and HTTP(S)). We use RabbitMQ for this purpose, and it’s recommended, although not required, to install that on a separate machine as part of a highly available architecture.
To enable KNIME Executors you will first need to install KNIME Server, shutdown the Server and proceed with the instructions available in the KNIME Server Administration Guide.
Installation steps
Enabling KNIME Executors consists of the following steps:
-
In case you haven’t installed KNIME Server already, please follow the steps in the above dedicated section
-
Shut down the server if it has been started by the installer
-
Install RabbitMQ following the instructions below
-
Adjust configuration files for the server and Executor following the instructions below
-
Start the server and one or more Executors.
Installing RabbitMQ
The server talks to the Executors via a message queueing system called RabbitMQ. This is a standalone service that needs to be installed in addition to KNIME Server and the executors. You can install it on the same computer as KNIME Server or on any other computer directly reachable by both KNIME Server and the Executors.
KNIME Server requires RabbitMQ 3.6+ which can be installed according to the Get Started documentation on their web page.
Make sure RabbitMQ is running, then perform either of the following steps depending on the availability of a GUI access to the machine running the service.
-
In case the machine has GUI access:
-
Enable the RabbitMQ management plug-in by following the online documentation
-
Log into the RabbitMQ Management which is available at
http://localhost:15672/
(with user guest and password guest if this is a standard installation). The management console can only be accessed from the host on which RabbitMQ is installed. -
Got to the Admin tab and add a new user, e.g. knime.
-
Also in the Admin tab add a new virtual host (select the virtual hosts section on the right), e.g. using the hostname on which KNIME Server is running or simply knime-server.
-
Click on the newly created virtual host, go to the Permissions section and set permission for the new knime user (all to ".*" which is the default).
-
-
In case the machine does not have GUI access:
-
Run the following three commands:
rabbitmqctl add_user knime 20knime16 rabbitmqctl add_vhost knime-server rabbitmqctl set_permissions --vhost knime-server knime ".*" ".*" ".*"
-
When RabbitMQ is running on a Windows machine, the following additional steps are recommended:
-
Install
sysinternals
tool: In order to avoid repeating error messages in the log files, e.g.[error] <> Could not find handle.exe, please install from sysinternals
, please install thesysinternals
free tool provided by Microsoft, and add the directory to the path. This will allow RabbitMQ to display all of its stats on the management portal. -
Change RabbitMQ base directory: RabbitMQ by default saves the data and logs under the folder
C:\<user>\AppData
. In case you do not want to allow the software to write toC:\
you can change the base directory as explained nicely, for example, in this guide.
Connecting Server and KNIME Executors
KNIME Server and the KNIME Executors now need to be configured to connect to the message queue.
For KNIME Server you must specify the address of RabbitMQ instead of the path to the local
Executor installation in the knime-server.config
. I.e. comment out the
com.knime.server.executor.knime_exe
option (with a hash sign) and add the option
com.knime.enterprise.executor.msgq
. The latter takes a URL to the RabbitMQ virtual host:
amqp://<user>:<password>@<rabbit-mq-host>/<virtual host>
, e.g.
com.knime.enterprise.executor.msgq=amqp://<username>:<password>@rabbitmq-host/knime-server
Note that any special characters in the password must be URL encoded.
The same URL must also be provided to the Executor as system property via the knime.ini
:
-Dcom.knime.enterprise.executor.msgq=amqp://<username>:<password>@rabbitmq-host/knime-server
Alternatively you can provide the message queue address as an environment variable:
KNIME_EXECUTOR_MSGQ=amqp://<username>:<password>@rabbitmq-host/knime-server
In case RabbitMQ High Available Queues
are used, simply add additional <rabbitmq-host>:<port> separated by commas to the
initial amqp address:
|
-Dcom.knime.enterprise.executor.msgq=amqp://<username>:<password>@rabbitmq-host/knime-server,amqp://<rabbitmq-host2>:<port2>,amqp://<rabbitmq-host3>:<port3>
In order to use RabbitMQ, you need to explicitly deactivate the embedded Qpid message broker by setting
com.knime.enterprise.executor.embedded-broker=false in knime-server.config . Qpid does not support more than one KNIME
Executor, and it doesn’t support Executors running on separate hosts.
|
While commands between the server and KNIME Executors are exchanged via the message queue, actual
data (e.g. workflows to be loaded) are exchanged via HTTP(S). Therefore, the KNIME Executors must know
where to reach the server. The server tries to auto-detect its own address however in certain cases
this address is not reachable by the KNIME Executors or — in case of https connections — the hostname
doesn’t match the certificate’s hostname. In such cases you have to specify the correct public
address in the knime-server.config
with the option com.knime.server.canonical-address
, e.g.
com.knime.server.canonical-address=https://knime-server:8443/
You don’t have to specify the context path as this is reliably auto-detected. Now you can start the server.
The KNIME Executors must be started manually, the server does not start them. In order to start an Executor (on any machine) launch the KNIME application (that has been created by the installer) with the following arguments:
./knime -nosplash -consolelog -application com.knime.enterprise.slave.KNIME_REMOTE_APPLICATION
You can also add these arguments at the top of the knime.ini
if the installation is only used as an
Executor. You can start as many KNIME Executors as you like and they can run on different hosts. They will
all connect to RabbitMQ (you can see them in the RabbitMQ Management in the Connections tab).
When you start the Executor in a shell, a very simple command line interface is available to control
the Executor. Enter help
at the Executor>
prompt to get a list of available commands.
On Windows a separate window is opened for the Executor process. In case there is a problem
during startup (e.g. the Executor cannot acquire core tokens from the server) then this window
closes immediately. In this case you can add -noexit
to the command above to keep it open and
look at the log output or open at the log file which by default is <user home>/knime-workspace/.metadata/knime/knime.log
unless you provided a different workspace location with -data
.
You may find it helpful for an Executor to use customization profiles provided by the KNIME Server.
In this case consult the Customizations section of the KNIME Server Administration Guide.
For example editing the startup command for the Executor will apply the executor
profile.
./knime -nosplash -consolelog -profileLocation http://knime-server:8080/knime/rest/v4/profiles/contents -profileList executor com.knime.enterprise.slave.KNIME_REMOTE_APPLICATION
Running KNIME Executors as services
It’s also possible to run KNIME Executors as services that are automatically started during system startup (and stopped during shut down). This is the recommended method to use when not running on a docker deployment.
Linux with systemd
Running KNIME Executors as services is only supported on Linux distributions that use systemd (e.g. Ubuntu >= 16.04, RHEL 7.x and derivates). The following steps assume that you have a KNIME Executor installed that contains the KNIME Executor connector extension as described in the section KNIME Executor installation.
-
Copy the whole folder
<knime_executor>/systemd/
to the root of your file system. The folder includes the systemd service description for knime-executor and an override file that allows configuration of the service (such as file system location or the userid under which the Executor should run).
-
Run
systemctl daemon-reload
-
Run
systemctl edit knime-executor.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 unless your version of systemd supportsDynamicUser
. In this case a temporary user account will be created. -
Enable the service with
systemctl enable knime-executor.service
Windows
On Windows KNIME Executors can be run as Windows services by using NSSM (Non-Sucking Service Manager). The following steps assume that you have a KNIME Analytics Platform installation that contains the KNIME Executor connector extension as described in the Install KNIME Executor section.
-
Edit
<knime_executor>/install-executor-as-service.bat
and adjust the variables at the top of the file to your needs. Please make sure to change the entry for
KNIME_EXECUTOR_MSGQ
in line 4 to point to your RabbitMQ instance. -
Run this batch file as administrator. This will install the service.
-
Open the Windows Services application, look for the KNIME Executor service in the list and start it.
-
If you want to remove the Executor service again, run the following as administrator:
<knime_executor>/remove-executor-as-service.bat
Note that if you move the KNIME Executor installation you first have to remove the service before moving the installation and then re-create it.