HEAVY.AI has minimal configuration requirements with a number of additional configuration options. This topic describes the required and optional configuration changes you can use in your HEAVY.AI instance.
In release 4.5.0 and higher, HEAVY.AI requires that all configuration flags used at startup match a flag on the HEAVY.AI server. If any flag is misspelled or invalid, the server does not start. This helps ensure that all settings are intentional and will not have an unexpected impact on performance or data integrity.
Before starting the HEAVY.AI server, you must initialize the persistent storage
directory. To do so, create an empty directory at the desired path, such as /var/lib/heavyai
.
Create the environment variable $HEAVYAI_BASE
.
2. Then, change the owner of the directory to the user that the server will run as ($HEAVYAI_USER):
where $HEAVYAI_USER is the system user account that the server runs as, such as heavyai
, and $HEAVYAI_BASE is the path to the parent of the HEAVY.AI server storage directory.
3. Run $HEAVYAI_PATH/bin/initheavy with the storage directory path as the argument:
Immerse serves the application from the root path (/) by default. To serve the application from a sub-path, you must modify the $HEAVYAI_PATH/frontend/app-config.js file to change the IMMERSE_PATH_PREFIX value. The Heavy Immerse path must start with a forward slash (/).
The configuration file stores runtime options for your HEAVY.AI servers. You can use the file to change the default behavior.
The heavy.conf file is stored in the $HEAVYAI_BASE directory. The configuration settings are picked up automatically by the sudo systemctl start heavydb
and sudo systemctl start heavy_web_server
commands.
Set the flags in the configuration file using the format <flag> = <value>
. Strings must be enclosed in quotes.
The following is a sample configuration file. The entry for data
path is a string and must be in quotes. The last entry in the first section, for null-div-by-zero
, is the Boolean value true
and does not require quotes.
To comment out a line in heavy.conf, prepend the line with the pound sign (#) character.
For encrypted backend connections, if you do not use a configuration file to start the database, Calcite expects passwords to be supplied through the command line, and calcite passwords will be visible in the processes table. If a configuration file is supplied, then passwords must be supplied in the file. If they are not, Calcite will fail.