From 01c8e521dd40844c5051e84f97b6559af5210aab Mon Sep 17 00:00:00 2001 From: aregan Date: Thu, 23 May 2019 16:36:52 +0200 Subject: [PATCH] Updating README.md adding schematic --- README.md | 87 ++++++++++++++++++++++++++++++++++++++++- doc-asserts/NYCDPP.png | Bin 0 -> 52126 bytes 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 doc-asserts/NYCDPP.png diff --git a/README.md b/README.md index c3ca7cc..2408c0c 100644 --- a/README.md +++ b/README.md @@ -1 +1,86 @@ -# nyc-taxi-streaming \ No newline at end of file +# Streaming Data Pipeline + +The purpose of this Application is to provide a streaming ETL pipeline implementing a Lambda architecture. + +## Requirements + +- Java JDK1.8 +- Docker (docker agent must be running) +- Docker-Compose + +## Architecture overview + +![Architecture](./doc-asserts/NYCDPP.png) + +## Build From Scratch + +The buildsystem is based on `maven`. To build all the components just enter: + +` +$ ./mvnw clean install +` + +Beforehand the build process, Maven will be automatically downloaded and installed. +When the build is finished successfully you can startup your system. + +## Starting Up + +In the root folder you find a `docker-compose.yml` file from which a docker based runtime is orchestered. + + +Startup the complete system + +` +$ docker-compose up +` + +Shutdown the complete system + +` +$ docker-compose down + +## Technologies + +When starting up the system the following components running in its own docker containers will be started: +Flink-app +Camel-app +zookeeper +Kafka-gateway +mongo-gateway +Kibana +Elasticsearch + +### Apache Kafka + +Apache Kafka (https://kafka.apache.org/) is an open-source stream-processing software platform developed by LinkedIn and donated to the Apache +Software Foundation, written in Scala and Java. The project aims to provide a unified, +high-throughput, low-latency platform for handling real-time data feeds + +### Apache Flink + +Apache Flink (https://flink.apache.org/) is an open-source stream-processing framework developed by the Apache Software Foundation. The core of Apache Flink is a distributed streaming data-flow engine written in Java and Scala + +### Apache Camel + +Apache Camel (https://camel.apache.org/) is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming interface (or declarative Java domain-specific language) to configure routing and mediation rules. + +### Elastic Search + +Elasticsearch (https://www.elastic.co/) is a search engine based on the Lucene library. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java. + +### Kibana + +Kibana (https://www.elastic.co/products/kibana) is an open source data visualization plugin for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster. Users can create bar, line and scatter plots, or pie charts and maps on top of large volumes of data. + +### MongoDB + +MongoDB (https://www.mongodb.com/) is a cross-platform document-oriented database program. Classified as a NoSQL +database program, MongoDB uses JSON-like documents with schemata. MongoDB is developed by MongoDB Inc. and licensed +under the Server Side Public License (SSPL). + +### Docker + +Docker (https://www.docker.com/) is a collection of interoperating software-as-a-service and platform-as-a-service offerings that employ operating-system-level virtualization to cultivate development and delivery of software inside standardized software packages called containers. + +## ASCII Artgenerator for startup banner +http://patorjk.com/software/taag/#p=display&f=Standard&t=BannerText diff --git a/doc-asserts/NYCDPP.png b/doc-asserts/NYCDPP.png new file mode 100644 index 0000000000000000000000000000000000000000..e1c2af372afca65c8cec0962c26648810dc7f938 GIT binary patch literal 52126 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�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