This is only a small selection of possible FAQs. If you have a question that is not answered in the FAQ section, or the quickstart guide don't hesitate to contact us via email and we will try to answer your question and expand our FAQ section.
Please note that the following FAQs concentrate on KNIME usage. If you are developing your own node, please refer to the Developer FAQs.
java.lang.OutOfMemoryError: PermGenSpace. What is wrong?
@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}
}
-XX:MaxPermSize=128m to the Java command. The KNIME product is already using this setting by default. You can also try another Java implementation, such as those from IBM or BEA.-Xmx512m and change it to -Xmx1024m for example. You may also consider to change the -XX:MaxPermSize=128m option and increase it to 256m or even 512m, depending on your computer's main memory. Note, that you main memory must be at the very least the sum of both values. (See also the answer for rarely observed problems while increasing heap space under Windows).
If you use the developer version you have to edit the run configuration:
"Run -> "Open Run Dialog..." -> tab "Arguments" -> field VM arguments -> enter -Xmx1024M.
Xmx and the XX:MaxPermSize options.-Dknime.expert.mode=true
After restarting KNIME you will find a new top-level category "Loop Support" and a few new nodes in the "Meta" category. You will also notice that each node dialog has a new tab "Flow Variables", which allows you to overwrite individual settings of a node using flow variables. A full description of these new features does not yet exist but will be published shortly.
mozilla-xulrunner or on Fedora 9 through xulrunner. After installation, KNIME should pick the xulrunner upon restart. If that does not work for any reason, you may want to try to add a line to the the knime.ini file contained in the KNIME directory. This line should read as:
-Dorg.eclipse.swt.browser.XULRunnerPath=<location_to_xulrunner>
For details on web browser requirements, see the SWT FAQ.
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 -consoleLog option causes a new window to be opened containing the log messages and -noexit will keep the window open after the execution has finished - you will need to close the window manually, and, unfortunately, an error message is produced from the Java process, which, however, you can safely ignore. (If you happen to find out how this procedure can be avoided or simplified, please let us know.) Windows users: please remember to add these two options to the command line examples below in order to see KNIME's output messages.
In order to run a (pre-configured) workflow, say 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 options of individual nodes contained in the workflow. This becomes handy if you, for instance want to change the URL of the file that the file reader node reads from. You will need to find out what the ID of the target node is as well as the name and type of the option you wish to change. To do so browse the project directory (for instance workspace/KNIME_project) and find the configuration directory of the target node (e.g. "File Reader (#4)", whereby 4 is the ID of the node). Open the file settings.xml (since KNIME v2.0.0 it is node.xml) and look for the xml element "model" (all elements nested in "model" can be changed). The individual options should be more or less self-explanatory, in this example we would look for the option "DataURL", which contains a string value. The command line subsequently looks as follows:
knime -nosplash -application org.knime.product.KNIME_BATCH_APPLICATION
-workflowDir="workspace/KNIME_project"
-option=4,DataURL,"file:/home/wiswedel/benchmarks/iris/data.tst",String
yum -y install libXp.export AWT_TOOLKIT=MToolkit to your ~/.bashrc (or whateverThe 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.
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, for an example. With this option, the database nodes only fetch the given number of rows into the database ResultSet. 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.