Native Installation - Storm Streaming Server

Native installation gives you most control over Storm Streaming Server performance and behavior. In order for Storm software to work you’ll need a Java Virtual Machine. There are many vendors like OpenJDK or Oracle/IBM you can choose from. The only requirement is that specific VM is compatible with Java 17.

Let’s check if Java Virtual Machine is present on your system

                        
java -version
                    
(for Windows please use PowerShell/Command Prompt)
If Java is absent from your system, please check our Java VM Installation tutorial.

File description

Storm Streaming Server can be downloaded from My Products/Download page and comes as the compressed zip file. Please uncompress it into a desired location (we suggest something within /home or /srv directories). The package contains:

StormStreamingServer.jarMain server file (jar library)
config/log4j2.xmlXML file containing log4j2 configuration
config/preferences.xmlXML containing server configuration
logsDefault folder for storing server logs
license/storm-license.keyLicense key (it will be updated by the server itself).
license/storm-pubic.keyPublic license key.
scripts/startup.shStartup script for Linux/MacOS. It'll also check for Java JDK version.
scripts/shutdown.shStop script for Linux/MacOS.
scripts/startup_win.batStartup script for Windows.
scripts/shutdown_win.batStop script for Windows.
Table 1. File description table

Basic configuration

Before starting the server for the first time please edit start.sh file (win_start.bat for Windows based operating system) from scripts directory. The file looks as follow:

                        
#!/bin/sh
…
java -server -Xmx16g -Xms8g -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -jar "StormStreamingServer.jar" &
                    

The script will automatically kill all instances of Storm sever and start a new one. We’ll have to edit some parameters before we can properly launch the server.

-Xmx16gJVM parameter controlling the maximum amount of RAM memory can be allocated to JVM. The amount shouldn’t exceed ¾ of the total RAM In your system.

You can replace the value with any number according to this pattern: -XmxYZ, where Y is the number of Z (g – gigabytes, m -megabytes).

Example: 8g (development), 128g (production)
-Xms8gJVM parameter controlling the minimal amount of RAM memory allocated to the JVM. This number shouldn’t be lower than ¼ of the -Xmx parameter.

You can replace the value with any number according to this pattern: -XmxYZ, where Y is the number of Z (g – gigabytes, m -megabytes).

Example: 4g (development), 32g (production)
-jar “<PATH_TO_JAR_FILE>”This is a relative path to the jar file. If you encounter any issues with the script not being able to find the correct file, use a direct path (full path) instead.
-configRootDIR <PATH_TO_MAIN_FOLDER>This optional parameter points to the main application folder (containing license and config folders). By default, server will use jar's location as its root directory.
Table 2. Basic configuration table

Startup

In order to start the server, just execute the start script file.

  • For Linux/MacOS based systems
                            
    ./srv/storm/scripts/startup.sh
                        

    If you run into permission error, you might want to add execute rights to it too:
                            
    chmod 775 /srv/storm/scripts/startup.sh
                        

  • For Windows based operating systems
                            
    C:\Storm\scripts\startup_win.bat
                        

Shutdown

There is also a pair of scripts for shutting server down

  • For Linux/MacOS based systems
                            
    ./srv/storm/scripts/shutdown.sh
                        

  • For Windows based operating systems
                            
    C:\Storm\scripts\shutdown_win.bat