NAMB (Not only A Micro-Benchmark) is a parametrizable and automatically generated benchmark application for Data Stream Processing Systems (DSP).
-
Simple YAML-based configuration for parameters definition
-
Automatic application generation, no need to manually touch the platform APIs
-
Ready-to-use python script to deploy the benchmark application
-
Supported platforms:
platform version Apache Flink Apache Storm Apache Heron
- Java 8 and maven environment
- Python 3
N.B. We assume a local deployment of a DSP platform is previously configured and running.
For this quickstart we consider running NAMB on Apache Flink.
-
Clone the repository in a local folder and move in it
-
Compile the project:
python3 namb.py build
or directly with maven:
mvn clean install
-
Prepare NAMB environment
- Copy the default NAMB configuration file to the main configuration folder:
cp conf/defaults/workflow_schema.yml conf/namb.yml
- Copy the platform-specific configurations to the main configuratino folder:
cp conf/defaults/flink-benchmark.yml conf/flink-benchmark.yml
More info on how to ustomize the configuration files see doc/configurations
-
Run the benchmark application:
python3 namb.py flink
Use -h for more options and infos.
[pagliari2019workflow] A. Pagliari, F. Huet, G. Urvoy-Keller, "Towards a High-Level Description for Generating Stream Processing Benchmark Applications", IEEE BigData, 3rd IEEE BPOD Workshop, 2019
[pagliari2020namb] A. Pagliari, F. Huet, G. Urvoy-Keller, "NAMB: A Quick and Flexible Stream Processing Application Prototype Generator", IEEE/ACM CCGrid 2020