SqreamDB Console
sqream-console
is an interactive shell designed to help manage a dockerized SQreamDB installation.
The console itself is a dockerized application.
Starting the console
sqream-console
can be found in your SQreamDB installation, under the name sqream-console
.
Start the console by executing it from the shell
$ ./sqream-console
....................................................................................................................
███████╗ ██████╗ ██████╗ ███████╗ █████╗ ███╗ ███╗ ██████╗ ██████╗ ███╗ ██╗███████╗ ██████╗ ██╗ ███████╗
██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗████╗ ████║ ██╔════╝██╔═══██╗████╗ ██║██╔════╝██╔═══██╗██║ ██╔════╝
███████╗██║ ██║██████╔╝█████╗ ███████║██╔████╔██║ ██║ ██║ ██║██╔██╗ ██║███████╗██║ ██║██║ █████╗
╚════██║██║▄▄ ██║██╔══██╗██╔══╝ ██╔══██║██║╚██╔╝██║ ██║ ██║ ██║██║╚██╗██║╚════██║██║ ██║██║ ██╔══╝
███████║╚██████╔╝██║ ██║███████╗██║ ██║██║ ╚═╝ ██║ ╚██████╗╚██████╔╝██║ ╚████║███████║╚██████╔╝███████╗███████╗
╚══════╝ ╚══▀▀═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ ╚═════╝ ╚══════╝╚══════╝
....................................................................................................................
Welcome to SQream Console ver 1.7.6, type exit to log-out
usage: sqream [-h] [--settings] {master,worker,client,editor} ...
Run SQream Cluster
optional arguments:
-h, --help show this help message and exit
--settings sqream environment variables settings
subcommands:
sqream services
{master,worker,client,editor}
sub-command help
master start sqream master
worker start sqream worker
client operating sqream client
editor operating sqream statement editor
sqream-console>
The console is now waiting for commands.
The console is a wrapper around a standard linux shell. It supports commands like ls
, cp
, etc.
All SQreamDB-specific commands start with the keyword sqream
.
Operations and flag reference
Commands
Command |
Description |
---|---|
|
Shows the initial usage information |
|
Controls the master node’s operations |
|
Controls workers’ operations |
|
Access to sqream sql |
|
Controls the statement editor’s operations (web UI) |
Master
The master node contains the metadata server and the load balancer.
Syntax
sqream master <flags>
Flag/command |
Description |
---|---|
|
Starts the master node.
The |
|
Stops the master node and all connected workers.
The |
|
Shows a list of all active master nodes and their workers |
|
Sets the port for the load balancer. Defaults to |
|
Sets the port for the metadata server. Defaults to |
Common usage
Start master node
sqream-console> sqream master --start
starting master server in single_host mode ...
sqream_single_host_master is up and listening on ports: 3105,3108
Start master node on different ports
sqream-console> sqream master --start -p 4105 -m 4108
starting master server in single_host mode ...
sqream_single_host_master is up and listening on ports: 4105,4108
Listing active master nodes and workers
sqream-console> sqream master --list
container name: sqream_single_host_worker_1, container id: de9b8aff0a9c
container name: sqream_single_host_worker_0, container id: c919e8fb78c8
container name: sqream_single_host_master, container id: ea7eef80e038
Stopping all SQreamDB workers and master
sqream-console> sqream master --stop --all
shutting down 2 sqream services ...
sqream_editor stopped
sqream_single_host_worker_1 stopped
sqream_single_host_worker_0 stopped
sqream_single_host_master stopped
Workers
Workers are SQreamDB daemons, that connect to the master node.
Syntax
sqream worker <flags>
Flag/command |
Description |
---|---|
|
Starts worker nodes. See options table below. |
|
Stops the specified worker name.
The |
Start options are specified consecutively, separated by spaces.
Option |
Description |
---|---|
|
Specifies the number of workers to start |
|
Specifies configuration files to apply to each worker. When launching multiple workers, specify one file per worker, separated by spaces. |
|
Sets the ports to listen on. When launching multiple workers, specify one port per worker, separated by spaces. Defaults to 5000 - 5000+n. |
|
Sets the GPU ordinal to assign to each worker. When launching multiple workers, specify one GPU ordinal per worker, separated by spaces. Defaults to automatic allocation. |
|
Sets the spool memory per node in gigabytes. |
|
Sets the hostname for the master node. Defaults to |
|
Sets the port for the master node. Defaults to |
|
For testing only: Starts a worker without connecting to the master node. |
Common usage
Start 2 workers
After starting the master node, start workers:
sqream-console> sqream worker --start 2
started sqream_single_host_worker_0 on port 5000, allocated gpu: 0
started sqream_single_host_worker_1 on port 5001, allocated gpu: 1
Stop a single worker
To stop a single worker, find its name first:
sqream-console> sqream master --list
container name: sqream_single_host_worker_1, container id: de9b8aff0a9c
container name: sqream_single_host_worker_0, container id: c919e8fb78c8
container name: sqream_single_host_master, container id: ea7eef80e038
Then, issue a stop command:
sqream-console> sqream worker --stop sqream_single_host_worker_1
stopped sqream_single_host_worker_1
Start workers with a different spool size
If no spool size is specified, the RAM is equally distributed among workers. Sometimes a system engineer may wish to specify the spool size manually.
This example starts two workers, with a spool size of 50GB per node:
sqream-console> sqream worker --start 2 -m 50
Starting multiple workers on non-dedicated GPUs
By default, SQreamDB workers assign one worker per GPU. However, a system engineer may wish to assign multiple workers per GPU, if the workload permits it.
This example starts 4 workers on 2 GPUs, with 50GB spool each:
sqream-console> sqream worker --start 2 -g 0 -m 50
started sqream_single_host_worker_0 on port 5000, allocated gpu: 0
started sqream_single_host_worker_1 on port 5001, allocated gpu: 0
sqream-console> sqream worker --start 2 -g 1 -m 50
started sqream_single_host_worker_2 on port 5002, allocated gpu: 1
started sqream_single_host_worker_3 on port 5003, allocated gpu: 1
Overriding default configuration files
It is possible to override default configuration settings by listing a configuration file for every worker.
This example starts 2 workers on the same GPU, with modified configuration files:
sqream-console> sqream worker --start 2 -g 0 -j /etc/sqream/configfile.json /etc/sqream/configfile2.json
Client
The client operation runs sqream sql in interactive mode.
Syntax
sqream client <flags>
Flag/command |
Description |
---|---|
|
Connects to the master node via the load balancer |
|
Connects to a worker directly |
|
Specifies the hostname to connect to. Defaults to |
|
Specifies the port to connect to. Defaults to |
|
Specifies the role’s username to use |
|
Specifies the password to use for the role |
|
Specifies the database name for the connection. Defaults to |
Common usage
Start a client
Connect to default master
database through the load balancer:
sqream-console> sqream client --master -u sqream -w sqream
Interactive client mode
To quit, use ^D or \q.
master=> _
Start a client to a specific worker
Connect to database raviga
directly to a worker on port 5000:
sqream-console> sqream client --worker -u sqream -w sqream -p 5000 -d raviga
Interactive client mode
To quit, use ^D or \q.
raviga=> _
Start master node on different ports
sqream-console> sqream master --start -p 4105 -m 4108
starting master server in single_host mode ...
sqream_single_host_master is up and listening on ports: 4105,4108
Listing active master nodes and worker nodes
sqream-console> sqream master --list
container name: sqream_single_host_worker_1, container id: de9b8aff0a9c
container name: sqream_single_host_worker_0, container id: c919e8fb78c8
container name: sqream_single_host_master, container id: ea7eef80e038
Editor
The editor operation runs the web UI for the SQreamDB Statement Editor.
The editor can be used to run queries from a browser.
Syntax
sqream editor <flags>
Flag/command |
Description |
---|---|
|
Start the statement editor |
|
Shut down the statement editor |
|
Specify a different port for the editor. Defaults to |
Common usage
Start the editor UI
sqream-console> sqream editor --start
access sqream statement editor through Chrome http://192.168.0.100:3000
Stop the editor UI
sqream-console> sqream editor --stop
sqream_editor stopped
Using the console to start SQreamDB
The console is used to start and stop SQreamDB components in a dockerized environment.
Starting a SQreamDB cluster for the first time
To start a SQreamDB cluster, start the master node, followed by workers.
The example below starts 2 workers, running on 2 dedicated GPUs.
sqream-console> sqream master --start
starting master server in single_host mode ...
sqream_single_host_master is up and listening on ports: 3105,3108
sqream-console> sqream worker --start 2
started sqream_single_host_worker_0 on port 5000, allocated gpu: 0
started sqream_single_host_worker_1 on port 5001, allocated gpu: 1
sqream-console> sqream editor --start
access sqream statement editor through Chrome http://192.168.0.100:3000
SQreamDB is now listening on port 3108 for any incoming statements.
A user can also access the web editor (running on port 3000
on the SQreamDB machine) to connect and run queries.