FAQ

Below are answers to some of our most commonly asked questions.  If you can't find what you need here, please have a look at our forums as well; we have a vibrant and helpful user community!

Note that the following FAQs concentrate on KNIME usage. If you are developing your own node, please refer to the Developer FAQs.

What is KNIME, what does KNIME stand for and where does it come from?

KNIME stands for KoNstanz Information MinEr and is pronounced: [naim] (that is, with a silent "k", just as in "knife"). It is developed by KNIME.com AG located in Zurich and the group of Michael Berthold at the University of Konstanz, Chair for Bioinformatics and Information Mining. Why is it called "KNIME"? Well, "Konstanz Information Miner" used to be called "Hades" (as the pub some of its creators ended up going to often). But that raised lots of not so nice questions ("so this is where your data ends up when it's not useful anymore?") so we looked for another name. "KIM", the obvious choice was, of course, already taken. However, the Konstanz license plate symbol is "KN", so KNIM was our next choice. Adding a vowel at the end was suggested by a native speaker to "round it off", as he put it. And it appears in "Miner" so we felt ok about it. Plus URLs such as "knime.org", "knime.de", ... were still available at that time...

 

How do I cite KNIME?

The recommended way to cite KNIME is to cite the paper with the following BibTeX:

@INPROCEEDINGS{BCDG+07,

author = {Michael R. Berthold and Nicolas Cebron and Fabian Dill and Thomas R. Gabriel and Tobias K\"{o}tter and Thorsten Meinl and Peter Ohl and Christoph Sieb and Kilian Thiel and Bernd Wiswedel},

title = {{KNIME}: The {K}onstanz {I}nformation {M}iner},

booktitle = {Studies in Classification, Data Analysis, and Knowledge Organization (GfKL 2007)},

publisher = {Springer},

ISBN = {978-3-540-78239-1},

ISSN = {1431-8814},

year = {2007}

}

Can I modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part?

You may do all this in accordance to the license only. KNIME is available under a dual licensing model. A version under an open source license is available for download from this website. If you need other license terms, please contact us. Refer to the license for more information about the terms of the open source license.

 

How much data can I process with KNIME?

Basically, there are no limits, since the data is buffered in an intelligent way. Nevertheless, some algorithms may require too much time and memory for very huge datasets.

 

How can I increase the Java Heap Space for KNIME?

  1. In the KNIME installation directory there is a file called knime.ini (under linux it might be .knime.ini). Open the file,
  2. Find the entry -Xmx512m and change it to -Xmx2g (for example).

  3. You may also consider to change the option -XX:MaxPermSize=128m to 256m or even 215m depending on your available memory.

Note, that your main memory must be at least the sum of both values.

 

I cannot start KNIME on Windows, I do not even see a splash screen? How do I make it work?

If you do not even see the KNIME splash screen the system fails to create the Java VM. It seems that the anti-virus software Kaspersky may prohibit the Java VM from allocating enough memory. Thus, there are two workarounds:

  1. Try to uninstall the Kaspersky components Anti-Dialer and Anti-Spam as proposed in this forum thread.
  2. Open the knime.ini file in the installation directory and enter smaller values for -Xmx and the -XX:MAXPERMSize options.

 

 I extracted the UpdateSite.zip into the KNIME installation folder, but the new nodes do not appear in the node repository.

With Eclipse 3.4 the mechanism how features/plugins are managed has drastically changed (the magic keyword is "p2"). One of the major implication for users is, that they cannot install new features/plugins (i.e. nodes) by just copying the plugins and/or features into the corresponding directories of the Eclipse/KNIME installation. Instead, they must be installed via the Update Manager. One workaround for plugins for which there exists no feature is the dropins folder that Eclipse scans upon each startup. But please use this only if anything else fails! The recommended way is using the Update Manager with the KNIME Update Site or the zipped version of it. 

 

Is it possible to include data files in the workflow so that the, e.g. File Reader is immediately executable on a different system, where the source file is not available?

Yes. This feature was added in KNIME v2.2.0. You will need to physically copy the file into a dedicated "drop" directory in the node folder (part of the workflow). KNIME will index this folder and make all files in this "drop" folder available as node-local flow variables in URL syntax.

Here are the steps:

  1. Create a workflow containing a file reader (or SDF reader or whatever you like to use) and point the reader to the file you want to read.
  2. Save the workflow.
  3. Use your system file browser and go into the corresponding workflow directory, e.g. /KNIME_Project/File Reader (#1)/.
  4. Create a folder "drop" in this directory and copy the target file here. 
  5. Switch back to KNIME and make sure that the node configures at least once (e.g. if the node was executed, reset it, or if the node was configured, open the dialog and close the dialog by pressing ok).
  6. Open the dialog of the node, switch to the "Flow Variables" tab and choose the variable representing the drop file (e.g. "knime.node (drop) ) in the corresponding combo box.

The file is now part of the workflow and will be included in the exported workflow unless you explicitly choose to exclude the data from the workflow.

 

The Node Description window doesn’t work on Linux; it displays the error "System browser cannot be initialized. No node description will be displayed."

KNIME uses the SWT browser widget to display HTML content. This widget requires a proper web browser to be installed. Under Linux usually WebKit is used. However, most recent Linux distributions (e.g. Ubuntu 14.04) ship with an incompatible version of WebKit. If KNIME detects an incompatible version it will disable it altogether because otherwise KNIME may crash.

There are several solutions to this problem

  1. For KNIME 2.10 and above: Some distributions offer a package with an older version that can be installed by hand:
    • Under Ubuntu install libwebkitgtk-1.0-0 (sudo apt-get install libwebkitgtk-1.0-0)
    • Under Fedora/CentOS/RHEL install webkitgtk (yum install webkitgtk)
    • Under openSUSE install libwebkitgtk-1_0-0 (zypper install libwebkitgtk-1_0-0)
  2. For KNIME 2.9 and below or if the above solution does not work: The KNIME Update Site contains a feature called KNIME XULRunner binaries for Linux. If installed, KNIME will use this local XULRunner instead of WebKit. In order to install this feature you must disable the "Group items by category" option in the installation dialog and search for the feature.

For more details on web browser requirements, see the SWT FAQ.

 

Is there any way to run KNIME in batch mode, i.e. only on command line and without the graphical user interface?

There is a command line option allowing the user to run KNIME in batch mode. To see a list of possible arguments execute the following line on a command prompt (for Linux):

knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION​ 

On Mac the executable is not directly located in the KNIME application directory but in a sub folder of the application bundle:

knime.app/Contents/MacOS/knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION

On a Windows system, you need to add two more options to enable system messages (by default any message to System.out is suppressed):

knime.exe -consoleLog -noexit -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION 

The option:

-consoleLog

Causes a new window to be opened containing the log messages and will keep the window open after the execution has finished. You will need to close the window manually and an error message is produced from the Java process which you can safely ignore. (If you happen to find out how this procedure can be avoided or simplified, please let us know.)

--launcher.suppressErrors

If this is specified, then the launcher will not display a message box with errors if a problem was encountered. This allows the launcher to be used in unattended tests or builds without blocking on an error.

In order to run a workflow, named "Knime_project" contained in the workspace directory, execute in one line: 

knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION -workflowDir="workspace/Knime_project"

It's also possible to change the configuration of the workflow through workflow variables. If a variable is defined for a workflow, you can use it in batch mode by referring to it using a comma separated triplet to specify the name, value and type like this:

-workflow.variable=my_integer,5,int

 

The workspace is empty how do I create a new project?

In the Navigator view (left top window) right-click and select "New", then "New KNIME Project". Provide a name for this new project and click the OK button.

 

The Node Repository shows only a few nodes (or none at all)

Check to see if you have something entered in the search field of the Node Repository view. Click into the edit field at the top of that view and press ESC. This should return all nodes included in the installation. If this doesn't help, your installation might be damaged.

 

I am running Fedora 10 using the Gnome window manager. The KNIME main application works as expected but as soon as I open a view or a dialog, this panel does not get repainted. Why?

That seems to be a java swing / swt problem. It seems as if the libgxim package causes this problem, i.e. if you uninstall that package (and all its dependencies) the panel will get properly painted.

 

How can I force KNIME to cache any intermediate data to disk in order to reduce memory usage?

The framework has no absolute control on memory usage of individual nodes, though it can control the amount of data in each node's output that is to be kept in main memory. This memory policy can be controlled in a node's dialog in the tab "General Node Settings". There are three different policies available: The first one ("Keep all in memory") enforces KNIME to leave all data that is generated by the respective node in main memory, the second option ("Write tables to disc") writes all data to disk immediately, the third one ("Keep only small tables in memory") is a heuristic to automatically switch between the first two items depending on the data size. Each of these options has pros and cons, e.g. keeping all data in memory allows for fast iterations on this data but increases memory usage.

The "Keep only small tables in memory" option is the default and of special interest. It uses a threshold value for the number of cells contained in a table (i.e. row count multiplied by column count) to decide whether to keep data in memory or on disk. This threshold defaults to 100 000 cells. If that is inappropriate in your setup (for instance because your cells tend to be large strings), you can change the default. This can be done using a java property that is passed either as command line argument or as part of the knime.ini file that is located in the installation directory. (Note: changing the configuration file is preferred over the additional command line argument since any command line argument instructs knime (more precisely the underlying eclipse) to ignore all entries in the configuration file).

Add the following line after the -vmargs line in the knime.ini file to keep at most 1000 cells in memory (you can choose a different value, even 0 in which case it always swaps to disk):

  -Dorg.knime.container.cellsinmemory=1000

You can verify if this setting has been picked up by either looking at the log file or inspecting the tooltip that is shown when hovering over the "Keep only small tables in memory" option in any node.

 

I am getting an OutOfMemoryError when reading from a database using the Database Reader or Database Connection Reader node. What can I do?

For some databases KNIME fails to read huge amounts of data from them. Increasing the heap space inside the knime.ini (Xmx) sometimes solves the problem, but does not really solve the memory issues which is caused by a parameter called database "fetch size". Generally different databases use different fetch sizes, see for details. This parameter can be changed for KNIME by appending the following option to the knime.ini file:

-Dknime.database.fetchsize=1000

With this option, the database nodes only fetch the given number of rows into the database result set. We also recommend using the Database Connector together with the Database Row or Column Filter nodes or Database Query node to make the filtering inside the database and only read the desired data into KNIME at the end using the Database Connection Reader node.

 

I'd like to change KNIME's default configuration on the Mac but can't see the knime.ini. Where is it located?

The Mac version of KNIME has a different directory structure than the other versions. On the Mac the contents of an application are hidden from the user by default. To edit the knime.ini you have to navigate to your KNIME installation directory, right click on "knime.app" and choose "Show Package Contents". This will open another finder window where you will find the knime.ini under "Contents" -> "MacOS". By the way this is also the location where the knime executable is located if you want to launch KNIME from the terminal.

 

How do I connect to my Microsoft Access database?

Two setups without registering additional JDBC-driver are possible:

  1. Directly connect to the MS Access database using KNIME (enter the database URL as jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\database.accdb)
  2. Register a database source in the system configuration. In the first case, one needs to  within the Database Reader/Connector node dialog. The database needs to be registered with the system properties under adminstration (JDBC/ODBC sources). In KNIME, the identifier can diretly be used to connect to the specified database, for example jdbc:odbc:DATABASE_ID.

 

The main menu doesn't appear on Ubuntu with Unity desktop. 

This is a bug in Ubuntu:

https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/1208019

To solve this the global menu has to be disabled by setting the environment variable UBUNTU_MENUPROXY=0 before launching KNIME. 

 

KNIME problems with Java 1.6.0_29 on Mac

At first: If you did not install "Java for Mac OS X 10.7 Update 1" or the "Java for Mac OS X 10.6 Update" containing Java 1.6.0_29 , you are fine. If you did install it already, this manual shows you how to start KNIME with Java 1.6.0_26. In your (hopefully existing) backup of your system there is a folder "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk". This folder contains the necessary jdk. Copy it to anywhere on your hard disk (e.g. into the KNIME installation directory). Download the attached knime.sh script and extract it into your KNIME installation directory (e.g. /Applications/knime). Create a soft link named "jre" in your KNIME installation directory linking to the subdirectory "Contents/Home" of your copied JDK by invoking ln -s <1.6.0.jdk-DIR>/Contents/Home jre in the Terminal and launch KNIME by invoking ./knime.sh Please see the discussion in the forum for more details. Note, this problem has been resolved with KNIME v2.5.4.

 

I cannot update/install additional extension or access the example workflow server because I am behind a firewall.

In both cases you need to configure a proxy in Eclipse. For updating or installing new extensions from an update site you need to configure an HTTP proxy, for accessing the example workflow server you must have a SOCKS proxy (ask your system administration for details on how to access the proxies). Both can be configured via File → Preferences → General → Network Connections. As Active Provider select Manual and then edit the entries for HTTP and/or SOCKS in the table below. You need to enter the proxy's name or IP address as well as the port number. If your proxy requires authentication also provide the login credentials.

In case you do not have a proxy, you can also download the complete update site as a ZIP file and use this as an archived update site. The example workflows can alternatively be downloaded as a single ZIP file and subsequently be imported via File → Import KNIME workflow.

 

The new R (labs) integration in KNIME 2.8+ does not recognize JRI library: org.rosuda.REngine.REngineException: Cannot load JRI native library.

If you are using the new R (labs) integration released with KNIME 2.8, you must have the rJava library installed. This is, by default, already included with the Windows extensions. For all others (or if you want to use R3.0 or higher under Windows) you need to make sure you:

  1. Execute: 'install.packages("rJava")' in your R installation
  2. Point to the R home directory in KNIME under Preferences > KNIME > R (labs)
  3. Add a system property to your knime.ini:
    -Djava.library.path=C:\...library\3.0\rJava\jri\x64

    pointing to the jri.dll (make sure you point to x64 when using 64bit)

  4. Remove the feature org.knime.features.rengine.r2.feature.group from the installation Help > About KNIME > Installation Details
  5. Restart KNIME.

Some R nodes run infinitely with R 3.1.0.

R 3.1.0 (only this version) has a bug concerning numerical precision handling. This causes some functions, e.g. rpart (for building decision trees), to run infinitely. You can cancel the node but the R process still keeps on running in the background. You have to kill the R process manually and use a different R version instead.

KNIME crashes after the splash screen on Linux with the error message a fatal error has been detected in libsoup-2.4.so in the hs_err_pid.log.

This may be related a to recent version of webkit that is not supported by Eclipse 3.7. This can be fixed by using the mozila web renderer instead.  

Add the Java Option:

-Dorg.eclipse.swt.browser.DefaultType=mozilla

to your knime.ini file and try again. Note that the mozilla renderer needs Xulrunner to work.