Installation
System Requirements
Hardware
The following machine recommendations are for installing individual PADAS components:
Component | Storage | Memory | CPU | Nodes |
---|---|---|---|---|
Engine | SSD storage is recommended. Disk size depends on the number of transformations and queries. For evaluation/test/dev 10-20GB should be sufficient. | 12GB (64GB recommended) | 4 CPU cores or more | 1 to many instances can be deployed depending on number of Kafka topic partition count and scalability requirements |
User Interface | 50GB, preferably SSD | 2GB | 1 CPU core or more | 1 |
Software
PADAS requires Confluent Platform in order to operate properly. Namely, the following Confluent Platform components must be running:
- ZooKeeper
- Kafka Broker
Version Compatibility
Padas | Confluent Platform |
---|---|
0.0.x | 6.x & 7.x |
Operating Systems
PADAS supports the following operating systems.
- RHEL/CentOS 8.x
- Debian 9 (stretch)
- Debian 10 (buster)
- Ubuntu 16.04 LTS (xenial)
- Ubuntu 18.04 LTS (bionic)
- Ubuntu 20.04 LTS (focal)
- macOS 10.14 and later is supported for testing and development purposes only
For Confluent Platform operating system support, please visit here.
Java
Java 17 is the recommended version in this version of Padas. Java 11 and later versions are also supported. From a security perspective, we recommend the latest released patch version as older freely available versions may have disclosed security vulnerabilities.
For more information regarding Confluent Platform, please visit here.
NOTE: You need to separately install the correct version of Java before you start the installation process.
JVM Heap Options can be set via PADAS_HEAP_OPTS
environment variable. Default value is: -Xmx1G -Xms1G
NOTE: When using systemctl
to start the service, you'll need to edit padas.service
file to make a change in JVM heap options.
Install Using TAR Archive
IMPORTANT NOTE: It is recommended to create a separate user to run Padas, other than root
. In our examples, we use padas
as both the user and group name. Following is an example on how to create such user:
sudo useradd -d /opt/padas -U padas
Padas installation folder structure:
Folder | Description |
---|---|
/bin |
Scripts for starting/stopping services |
/etc |
Configuration files |
/libs |
Jar files |
/logs |
Log files |
/var |
Runtime state store location (default, but configurable) |
Step 1: Download
-
Download the latest version of Padas Engine and UI components applicable to your platform.
wget https://padas.io/assets/downloads/padas-{{ current_version }}.tgz wget https://padas.io/assets/downloads/padas-ui-{{ current_version }}-linux-x64.tgz
-
Use the
tar
command to decompress the archive filetar -xzf padas-{{ current_version }}.tgz tar -xzf padas-ui-{{ current_version }}-linux-x64.tgz
-
Once extracted, you should have
padas
andpadas-ui
directories. By default, Padas Engine expects Kafka to be running onlocalhost
. If that's not the case, editpadas/etc/padas.properties
accordingly.
At this stage, make sure you have Confluent Kafka is running as mentioned in prerequisites.
NOTE: You can install these components in a distributed environment. For possible configuration options, please refer to Configuration File Reference.
Step 2: Start Engine
-
Start engine node on the console. The script will ask you to accept the license agreement (enter
y
)cd padas/
bin/padas start-console PADAS SOFTWARE LICENSE AGREEMENT ... Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas/etc/license.txt Do you agree with this license? [y/n]: y INFO Verifying Kafka broker connection... INFO Successfully verified Kafka Cluster connection. INFO Successfully verified existence of all required topics. INFO Starting web interface at https://<HOSTNAME>:8999 ... @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@:**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@:****:@@@@@@@@@@@**:****@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@**********:::**********@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@:***********************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@************************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@**************************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@*****************************@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@********************************&@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@#***********************************::@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@**:************************************@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@******************************@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@&*@@@@@@@@@@*************************@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@:**********@@@@@@@@@@@***********************@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@***********:@@@@@@@@@@@@********************o@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@***********@@@@@@@@@@@@@*******************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@ **************o@@@@@@@@@@@@@*******************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@ **************@@@@@@@@@@@@@********************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @:::o:********@@@@@@@@@@@@:********************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@o*******@@@@@@@@@@**************o@@@#****8@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@*******:@@@@@@@:***********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8 @@@@@@@@**********:@**************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@* @@@@@@@:*****************************:8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@& @@@@@@:***********************************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:@ @@@@@@o****************************************@@@@@@@@@@@@@@@@@@@@@@@@@:*@@ @@@@@@o********************************************:*@@@@@@@@@@@@@@@@@:**@@@ @@@@@@@@@******************************@::****************************:@@@@@ @@@@@@@@@@*@@:******#@@@@@@@@@*********@@@@@@@@8**:****************@@@@@@@@@ @@@@@@@@@*****@@*****:8@@@@@@@@@8*********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@*****@@@:******@@@@@@@@@@@@:*****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@****&@@@@@@*****@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@**@@@****@@@@@@@@#***#@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@******:***@@@@@@@@***@@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@:&@@@@@@@@@@::@@*****:o@@@@@@@o***********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@:*****8#@:*#@@@@@@8*@*8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@&@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ____ _ ____ _ ____ | _ \ / \ | _ \ / \ / ___| | |_) / _ \ | | | |/ _ \ \___ \ | __/ ___ \| |_| / ___ \ ___) | |_| /_/ \_\____/_/ \_\____/ INFO Starting App using Java 11.0.10 on <HOSTNAME> with PID 32965 (/<YOUR INSTALL DIR>/padas/libs/padas-0.0.1.jar started by selim in /<YOUR INSTALL DIR>/padas) INFO No active profile set, falling back to default profiles: default INFO Started App in 12.536 seconds (JVM running for 66.174)
NOTE: Unless you created all required topics, you should receive a warning as following on the console. We'll create these topics on the next steps.
... WARN Unable to describe required topics for Padas. Please create these topics in order to run the engine. ...
Step 3: Start UI
-
Start UI component on the console. Default configuration connects to
localhost
for Padas Engine.cd padas-ui/
bin/padas-ui start-console [HPM] Proxy created: /api -> https://<PADAS ENGINE HOST>:8999
-
Initialize User: Go to https://localhost:9000 and since this is the first time, click the link below and create an administrator user.
-
Login: After initial user creation you will be redrected to Login screen; Login with the newly created user credentials.
Create Topics
The following Kafka topics must be created for keeping centralized configuration entries. You can create these topics according to your preference (e.g. Confluent Control Center) and below steps simply provide one way of doing so.
NOTE: All required topics enable log compaction since they keep relevant configuration entries. Proper retention policy should be implemented in order to avoid any loss of configuration.
Topic Name | Description | Kafka Settings |
---|---|---|
padas_nodes | Up-to-date list of registered Padas Engine instances. | cleanup.policy: compact retention.bytes: -1 |
padas_tasks | List of transformation and apply tasks. | cleanup.policy: compact retention.bytes: -1 |
padas_pipelines | List of pipelines that contain task information. | cleanup.policy: compact retention.bytes: -1 |
padas_topologies | List of topologies that contain pipeline information. | cleanup.policy: compact retention.bytes: -1 |
padas_rules | List of rules to be utilized by APPLY_RULES task. | cleanup.policy: compact retention.bytes: -1 |
Create Padas Topics: After initial login, from the left menu, click on Topics. In this view you can ONLY change replication or partition information. For further detailed configuration on topics, please refer to Topic Properties and/or consult your Kafka administrator.
IMPORTANT NOTE: If you created the required topics from Padas UI, you will need to restart the Padas Engine so that it can read from and write to these topics. Stop the running Padas Engine via CTRL-C
, and start it again. You'll need to logout/login from the UI as well.
bin/padas start-console
Register as a Service
NOTE: Following steps are applicable for both Engine and UI components. For UI, simply use bin/padas-ui
as the command.
- Run Padas to create a service file. (Note: following examples assume
$PADAS_HOME
to be/opt/padas
directory)bin/padas set-service Systemd unit file has been created as '/opt/padas/libs/padas.service'
- Review the generated service file (
libs/padas.service
) and edit as necessary (e.g. user & group information, JVM memory options according to your system settings)[Unit] Description=PADAS - Engine for Streaming Events Documentation=https://docs.padas.io/ After=network.target # [Service] Type=simple User=padas Group=padas ExecStart=java -Xmx1G -Xms1G -Dconfig.file=/opt/padas/etc/padas.properties -Dlogging.config=/opt/padas/etc/logback.xml -jar /opt/padas/libs/padas-0.0.1.jar TimeoutStopSec=180 Restart=no # [Install] WantedBy=multi-user.target
- Copy the service file under system
sudo cp /opt/padas/libs/padas.service /etc/systemd/system/
- Reload systemd process
sudo systemctl daemon-reload
- You can control the service (start/stop) via
systemctl
or from$PADAS_HOME/bin/padas
script, which internally utilizessystemctl
./opt/padas/bin/padas start
PADAS Command Line Interface
A wrapper script is provided to manage PADAS service: $PADAS_HOME/bin/padas
Welcome to Padas Command Line Interface (CLI).
Usage:
padas [command]
Available Commands:
status Show Padas service status and PID information
start Start Padas service
stop Stop Padas service
start-console Start Padas on the console
Uninstall
- Stop Padas service(s).
/opt/padas/bin/padas stop
- Remove any system service definition. For example
rm /etc/systemd/system/padas.service
- Remove Padas installation directory. For example:
rm -rf /opt/padas