Skip to content

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

  1. 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
    
  2. Use the tar command to decompress the archive file

    tar -xzf padas-{{ current_version }}.tgz
    tar -xzf padas-ui-{{ current_version }}-linux-x64.tgz
    
  3. Once extracted, you should have padas and padas-ui directories. By default, Padas Engine expects Kafka to be running on localhost. If that's not the case, edit padas/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

  1. 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

  1. 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
    

  2. Initialize User: Go to https://localhost:9000 and since this is the first time, click the link below and create an administrator user.

  3. 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.

  1. 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'
    
  2. 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
    
  3. Copy the service file under system
    sudo cp /opt/padas/libs/padas.service /etc/systemd/system/
    
  4. Reload systemd process
    sudo systemctl daemon-reload
    
  5. You can control the service (start/stop) via systemctl or from $PADAS_HOME/bin/padas script, which internally utilizes systemctl.
    /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

  1. Stop Padas service(s).
    /opt/padas/bin/padas stop
    
  2. Remove any system service definition. For example
    rm /etc/systemd/system/padas.service
    
  3. Remove Padas installation directory. For example:
    rm -rf /opt/padas