The Infinit.e platform has been designed to be easy to install and configure, run with decent performance on commodity hardware without custom configuration, and expand by "scaling horizonally" (ie adding more compute nodes).
This section describes steps that can be taken to squeeze the most performance out of a cluster (at the expense of a more complex configuration).
In this page it is assumed that the user is running more powerful machines - for example 12 cores, 64GB, with 1 or 2 fast RAID volumes (see below). It is also assumed that the (Elasticsearch) real-time index and the (MongoDB) data store are on different nodes.
The configuration suggested below assumes at least this - where more CPU/memory would affect the suggested configuration this is noted.
(This section focuses on magnetic disks, SSD is briefly mentioned at the bottom)
Typically each node has 2 IO channels that require performance:
Infinit.e has two default ways in which it uses directory names to decide where to put data directories:
Elasticsearch and HDFS and MongoDB have different recommended settings:
We have not tested Infinit.e using SSD, though both MongoDB and Elasticsearch have been used. The general approach to utilizing SSD is:
|
Currently we are tested against Oracle's JDK6 and JDK7. Oracle JDK8 testing is ongoing. Once JDK8 is tested it is expected to be significantly faster, for at least two reasons:
For now the recommended version is the latest Oracle JDK7.
It is recommended that there be SWAP space equal to at least 10GB - probably 20GB for 60GB of RAM.
(Relative to the central configuration file described here):
Assuming Nx API nodes and Mx DB nodes, the "standard" mapping is:
To maximize the ingest performance, you can also install the infinit.e-processing-engine RPM on the DB nodes. This doubles the number of harvesters. Note that it is necessary to copy any additional JARS into the DB nodes' plugins/extractors/unbundled directories (see here), just like for the API nodes.
In the Hadoop configuration guide, the following settings are recommended:
TODO
This section describes changes that are made to the processes' configuration files after RPMs have been installed.
The files described in here are designated as RPM configuration files, meaning that they will only be overwritten if the RPM-side version of the file is updated (in which case the "old" version is saved to "<filename>.RPMSAVE". Care must therefore be taken while updating RPMs to note if this happens (and then the user must merge the files by hand if so) |
The file extractor is the most optimized one, so wherever possible that should be used.
XXX
XXX roadmap