Red Hat Streaming Install
#1 Big Picture Streaming Diagrams
Here's a diagram showing how the different components of this installation fit together.
Streaming is optimized so that Stream API inputs are threaded as they arrive on the Row64 Server.
#2 Install Components
Sublime Text Editor
For quick cross-platform setup, we often use Sublime Text. It can be installed with the following commands:
sudo update-crypto-policies --set LEGACY
sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
sudo dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
sudo dnf install sublime-text -y
To open a file in sublime, you can use the subl
command.
To keep things simple, we show editing with Sublime in these instructions
Install Row64 Server V3.5
Follow the instructions in the Server documentation to install Row64 Server V3.5.
Install ByteStream Viewer
ByteStream Viewer is useful for debugging both .ramdb and .dash files. You can watch streaming changes as they happen, so it’s great for diagnostics.
Download row64bsviewer-3.5_amd64.rpm here:
https://app.row64.com/Install/V3_5/RedHat/row64bsviewer-3.5-0.x86_64.rpm
From the terminal, run:
sudo rpm -ivh row64bsviewer-3.5-0.x86_64.rpm
Pin Bytestream to Favorites
Open the Red Hat app system tray:
Type “ByteStream and right click “Pin To Dash”
Test ByteStream
Navigate in Nautilus (Ubuntu File Explorer) to the folder:
/var/www/ramdb/live/RAMDB.Row64/Examples
Drag in the file Atari.ramdb. Note Table/Text switcher on the top right.
Install Row64 Stream
Download row64stream-3.5-0.x86_64.rpm here:
https://app.row64.com/Install/V3_5/RedHat/row64stream-3.5-0.x86_64.rpm
From the terminal, run:
sudo yum install librdkafka -y
sudo rpm -ivh row64stream-3.5-0.x86_64.rpm
Note: librdkafka is a dependency of the Row64 Stream API
Next, connect the streaming API to the server.
From the terminal, run:
cd /opt/row64server/row64stream/install
sudo python3 Connect_Stream.py
Verify row64stream is running
From the terminal, type:
sudo systemctl status row64stream
You should see:
Other useful commands:
sudo systemctl start row64stream
sudo systemctl stop row64stream
#3 Test Examples
Test: motion - turn ON
Edit the config file by typing in the terminal:
subl /opt/row64server/conf/apiconfig.json
Turn the example “Motion” to “ON” and save the file
Restart the Stream API with:
sudo systemctl stop row64stream
sudo systemctl start row64stream
Be sure to stop & start rather than restart; it forces the systemctl to update the interacting services better.
Study PlayerMotion.ramdb In ByteStream Viewer
Open Nautilus and drag the following file into the ByteStream Viewer:
/var/www/ramdb/live/RAMDB.Row64/Examples/PlayerMotion.ramdb
Wait for a few seconds, and you should see the UPSERT update running slowly through the player list. If you want to update faster, modify the apiconfig.json for a lower "SAMPLE_RATE" which is the time in milliseconds between updates.
Study Motion Analytics In The Browser
Navigate to the following link:
http://localhost/dash/examples/motion
If it's working, you'll see the player locations update and move around.
Study The Cyber Demo
Edit the streaming config file by typing in the terminal:
subl /opt/row64server/conf/apiconfig.json
And turn all other tests to OFF
Turn the example “Cyber” to “ON” and save the file.
Restart the Stream API with:
sudo systemctl stop row64stream
sudo systemctl start row64stream
Navigate to the following link:
http://localhost/dash/examples/cyber
Study The Fleet Demo
Edit the streaming config file by typing in the terminal:
subl /opt/row64server/conf/apiconfig.json
And turn all other tests to OFF.
Turn the example Fleet to “ON” and save the file.
Restart the Stream API with:
sudo systemctl stop row64stream
sudo systemctl start row64stream
Navigate to the following link:
http://localhost/dash/examples/fleet
#4 Debug Any Issues
Changing config files can occasionally lead to this error:
Warning: run 'systemctl daemon-reload'.
This means you need to reboot systemctl to update all changes and dependencies. Just run:
sudo systemctl daemon-reload
Study The Log Files
Stream logs are saved in the same location as the server logs:
/var/log/row64server/
Streaming API logs all have the prefix: Row64ServerAPI
Example name: Row64ServerAPI_250602165720.log
#5 Install Local Kafka
Turn OFF all Streams
Before you install Local Kafka, set all your tests in apiconfig.json to OFF.
Also, run the following command:
sudo systemctl stop row64stream
Local Kafka Features:
For quick testing of row64server & Kafka on the same server/VM:
- Automatically installs Kafka as a service & all dependencies (including Java)
- Installs row64kgen (a Kafka producer that streams the Motion example)
- Good for learning and getting used to the features
- You can switch out your own Java/Python/Rust/Go producer with the same setup
Requires that row64server and row64stream is already installed.
Local Kafka Install - row64kgen:
Download row64kgen-3.5-0.x86_64.rpm here:
https://app.row64.com/Install/V3_5/RedHat/row64kgen-3.5-0.x86_64.rpm
This will install both kgen and a local Kafka service.
From the terminal, run:
sudo rpm -ivh row64kgen-3.5-0.x86_64.rpm
Next, connect Local Kafka & kgen
From the terminal, run:
cd /opt/row64server/row64kgen/install
sudo python3 Connect_Ubuntu.py
Test Running KGen (Kafka Producer / Generator)
Run row64kgen from the terminal:
cd /opt/row64server/row64kgen/
./row64kgen
The log should begin to repetitively output a success message.
Second Terminal: See Producer Output
You can log the Kafka producer output in another terminal.
Type:
/opt/kafka/bin/kafka-console-consumer.sh --topic r64_kafka_stream.topic --bootstrap-server localhost:9092
See Local Kafka Drive Dashboard Browser
Edit the streaming config file by typing in the terminal:
subl /opt/row64server/conf/apiconfig.json
And turn all other tests to OFF.
Turn the example Motion_LocalKafka to “ON” and save the file.
Restart the Stream API with:
sudo systemctl stop row64stream
sudo systemctl start row64stream
Navigate to the following link.
http://localhost/dash/examples/motion
And see the player motion driven by the local Kafka feed.
#6 Connect Cloud Kafka
Cloud Connection Example
Open the apiconfig.json file and study the settings on “Motion_DeltaStream”
It shows an example of an AWS connection.
Other than extra “METADATA” tags, it works in the exact same manner as the Local Kafka example. If you have multiple BOOTSTRAP_SERVERS, you can comma separate them.
#7 API Configuration Diagram