untersuchung von echtzeitdatenströmen unterschiedlicher

22
© WZL/Fraunhofer IPT Untersuchung von Echtzeitdatenströmen unterschiedlicher Mikrocontroller, gekoppelt mit Sensoren, aus einem Speed-Layer in einer Lambda- Architektur Seminararbeit Jessica Wiezorek 1.Prüfer: Prof. Dr. rer. nat. Wilhelm Hanrath 2.Prüfer: Henric Breuer

Upload: others

Post on 22-Mar-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

© WZL/Fraunhofer IPT

Untersuchung von

Echtzeitdatenströmen

unterschiedlicher Mikrocontroller,

gekoppelt mit Sensoren, aus einem

Speed-Layer in einer Lambda-

Architektur

Seminararbeit

Jessica Wiezorek

1.Prüfer: Prof. Dr. rer. nat. Wilhelm Hanrath

2.Prüfer: Henric Breuer

Seite 2© WZL/Fraunhofer IPT

Ausblick7

Darstellung6

Apache Kafka5

Lambda-Architektur als Big Data Architektur4

Aufbau des Sensornetzwerks3

Message Queue Telemetry Transport Protokoll2

Problemstellung1

Agenda

Seite 3© WZL/Fraunhofer IPT

Problemstellung

Name=10-DoF

Time=24355578

a_x=-0,08

a_y=9,96

a_z=0,47

m_x=-32,91

m_y=-42,09

m_z=32,55

g_x=0,04

g_y=0,07

g_z=0,00

temp=26,30

Immer mehr Datensätze pro Sekunde

Daten

– empfangen

– verarbeiten

– darstellen

– analysieren

Seite 4© WZL/Fraunhofer IPT

Aufbau von MQTT

MQTT Broker

Publisher

Publisher

Publisher

Publisher

Subsriber

Subsriber

Subsriber

Subsriber

Messages Messages

Verbindung über TCP

Publisher/Subscriber Pattern

Nachrichten Verwaltung in Topics

• „Senseering-MatS/Ten_DoF“

• „Senseering-MatS/Ultrasonic_top_left“

Seite 5© WZL/Fraunhofer IPT

MQTT Broker

Nachrichten Übertragung mit MQTT

ClientMessage

MessageMessage

Verschiedene Quality of Service

Einfachste Ausreichend

Seite 6© WZL/Fraunhofer IPT

Verbindung per WLAN bzw. LAN

Verschiedene Sensoren senden Nachrichten:

Schematischer Aufbau des Netzwerks

Sensor

Daten

Raspberry Pi als

MQTT-BrokerPublish Subscribe PublishCluster

Python Skript als

Bridge

Name=Temperatur

Time=20765336

Temp=24,80

Name=10-DoF

Time=24355578

a_x=-0,08

a_y=9,96

a_z=0,47

m_x=-32,91

m_y=-42,09

m_z=32,55

temp=26,30

Seite 7© WZL/Fraunhofer IPT

Raspberry Pi

10/100 LAN

Anschluss

Quadcore Prozessor Broadcom

BCM 2837 ARMv8 Architektur

64 Bit – 1,2 GHz

HDMI mit CEC

und 1080p

Micro USB

Port

40 polige GPIO

Anschlussleiste4 x USB

2.0

BCM43143 WiFi - WLAN

(2,4GHz) und Bluetooth Low

Energy (BLE) on Board

1024 MB RAM und integriertem

VRAM Arbeitsspeicher

Seite 8© WZL/Fraunhofer IPT

Mikrocontroller im Sensornetz

LEDs

Platine mit

Sensoren

2 Buttons

Micro

USB Port Mikrofon

Bosch XDK

Micro

USB Port

Arduino MKR1000

GPIO

Anschlussleiste

WiFi-Modul

Seite 9© WZL/Fraunhofer IPT

Big-Data-Architekturen

Hohe Nachrichten Frequenz

Verzögerung bei Speicherung und Darstellung

Verlust von Daten

Aufteilung in Schichten

Seite 10© WZL/Fraunhofer IPT

Aufbau der Lambda-Architektur

Realtime

ViewRealtime

ViewRealtime

View

Batch-Layer

Speed-LayerServing-Layer

Master-

Datenset

Precom-

putation

Realtime

View

Streaming

plattform

Sensor

Daten

Batch

ViewBatch

ViewBatch

ViewBatch

View

Seite 11© WZL/Fraunhofer IPT

Batch-Layer mit Hadoop Distributed File System

Master Knoten

Daten

Knoten

Daten

Knoten

Daten

Knoten

Daten

Knoten

Client

Anfrage an Hadoop

Zuteilung von Daten Knoten

Datenaustausch

Verteiltes Daten System

Seite 12© WZL/Fraunhofer IPT

Speed-Layer

Echtzeit Darstellung von Daten

z.B. mit Apache Strom

Speed-Layer

Seite 13© WZL/Fraunhofer IPT

Serving-Layer

Bearbeitung von Anfragen

Behält die Anfragen und aktualisiert sie

z.B. mit Apache Cassandra

Serving-Layer

Seite 14© WZL/Fraunhofer IPT

Aufbau Apache Kafka

Verteilte Streaming Plattform

Implementierung auf mehreren Servern möglich

Koordinierung von Kafka durch Zookeeper

Publisher/Subscriber Pattern bzw.

Producer/Consumer Pattern

Nachrichten Verwaltung in Topics

Unterteilung von Topics in Partitionen

Broker

Zentrale Verbindung

Seite 15© WZL/Fraunhofer IPT

Software-Schnittstellen zu Apache Kafka

AppApp

App

Consumer

Daten-

bankDaten-

bank

App

Apache Kafka

Cluster

App

Producer

App App App

AppApp

AppApp

Stream

ProcessingConnector Daten-

bankDaten-

bank

Seite 16© WZL/Fraunhofer IPT

Versuchsaufbau

subscribeKafka-Cluster

Raspberry PiRaspberry Pi

Raspberry Pi

Raspberry PiRaspberry Pi

GUI

Seite 17© WZL/Fraunhofer IPT

Aufbau einer graphischen Darstellung von Messdaten

Verbindung zwischen dem Kafka-Cluster und der GUI

Implementierung der GUI selbst

Kafka-Cluster KafkaConsumer

GUI

Daten-

DarstellungDaten-

DarstellungDaten-

DarstellungDaten-

Darstellung

Seite 18© WZL/Fraunhofer IPT

Schnittstelle zwischen Python und Kafka

Open Source

Dokumentation

kafka-python

KafkaConsumer

– Verbindung über IP Adressen

– Subscribe and Unsubscribe Topics

– Iterator

Producer

Seite 19© WZL/Fraunhofer IPT

Consumer mit kafka-python

Consumer

Consumer

Kafka-Cluster

TopicConsumer

Consumer

Topic

Topic

Topic

Ein Consumer pro Topic

Kafka-Cluster

Topic

ConsumerTopic

Topic

Topic

Ein Consumer für alle Topics

Seite 20© WZL/Fraunhofer IPT

Qt

C++ Klassenbibliotheken

Plattformübergreifend

Programmierung von grafischen Oberflächen

Anbindung zu Python z.B. PyQt

PyQt nutzt die C++ Klassen

Für Benutzeroberfläche

Seite 21© WZL/Fraunhofer IPT

Ausblick

Python Bibliothek mit besserer Performance

Webbasierte Anwendung

Streaming-Layer

Serving-Layer

Streaming

plattformSensor

Daten

Real-Time

ViewReal-Time

ViewReal-Time

ViewReal-Time

View

Stream

Process

Kappa-Architektur

Seite 22© WZL/Fraunhofer IPT

Danke für Ihre Aufmerksamkeit