Scalable Advanced Massive Online Analysis

Datenströme analysieren mit SAMOA

| Autor / Redakteur: Thomas Joos / Nico Litzel

Apache SAMOA verfügt über eine erweiterbare Architektur, die es ermöglicht, SAMOA auf mehreren verteilten Stream-Verarbeitungsmaschinen wie Storm, S4 und Samza auszuführen.
Apache SAMOA verfügt über eine erweiterbare Architektur, die es ermöglicht, SAMOA auf mehreren verteilten Stream-Verarbeitungsmaschinen wie Storm, S4 und Samza auszuführen. (Bild: The Apache Software Foundation)

Apache SAMOA ist eine Plattform für das Mining großer Datenströme. Die Lösung bietet eine Sammlung von verteilten Streaming-Algorithmen für die gängigsten Data-Mining- und Machine-Learning-Aufgaben.

SAMOA (Scalable Advanced Massive Online Analysis) hat den Incubator-Status bei Apache. Zur Sammlung gehören Klassifikation, Clustering, Regression sowie die Programmierung von Abstraktionen zur Entwicklung neuer Algorithmen. Apache SAMOA verfügt über eine erweiterbare Architektur, die es ermöglicht SAMOA auf mehreren verteilten Stream-Verarbeitungsmaschinen wie Storm, S4 und Samza auszuführen. SAMOA ist in Java geschrieben, Open Source und unter unter der Apache Software License Version 2.0 verfügbar. Apache SAMOA unterstützt die Write-Once-Run-Anywhere (WORA) Architektur. Diese ermöglicht eine nahtlose Integration mehrerer Distributed Stream Processing Engines (DSPEs) in das Framework.

Große Datenmengen sind in nahezu allen Geschäftsbereichen sehr verbreitet und ermöglichen Planungen, die Unternehmen nutzen können, um bessere Produkte oder Dienstleistungen zu bieten. Große Daten sind definiert als Datensätze, deren Größe aufgrund der Zeit- und Speicherkomplexität die Fähigkeit typischer Softwarewerkzeuge zur Erfassung, Speicherung, Verwaltung und Analyse übersteigt.

Entwicklung neuer ML-Algorithmen

SAMOA ermöglicht die Entwicklung neuer ML-Algorithmen, ohne sich mit der Komplexität der zugrunde liegenden Streaming-Verarbeitungsmaschinen, also zum Beispiel Apache Storm und Apache S4, auseinanderzusetzen. SAMOA-Entwickler können verteilte Streaming-ML-Algorithmen entwickeln und die Algorithmen in mehreren SPEs ausführen.

Die Struktur von SAMOA im Überblick

Apache SAMOA hilft also dabei Stream-Verarbeitungsalgorithmen einfach und plattformunabhängig zu schreiben. Dabei definiert die Lösung eine eigene Topologie. Dazu gehören folgende Bereiche:

  • Processor
  • Content Event
  • Stream
  • Task
  • Topology Builder
  • Learner

Processor und Content Event (Inhaltsereignis) stellen logische Einheiten dar, um einen Algorithmus zu erstellen. Stream und Task sind die physischen Einheiten, um die verschiedenen Teile des Algorithmus zu verbinden. Der Topology Builder ist eine Verwaltungseinheit, die Buchhaltungsdienste anbietet. Learner ist die Basisschnittstelle für Lernalgorithmen. Verarbeitungselemente sind interne Verpackungen für Prozessoren, die in SAMOA verwendet werden.

Topology Builder, Processors und Streams

Alle physischen Topologieeinheiten werden mit dem Topology Builder erstellt. Das folgende Codeausschnitt zeigt, wie man einen Prozessor zur Topologie hinzufügt:

Processor = new ExampleProcessor(); builder.addProcessor(processor, paralellism);

Die Methode „addProcessor()“ des TopologyBuilder wird verwendet, um den Prozessor hinzuzufügen. Das erste Argument ist die Instanz eines Prozessors, der hinzugefügt wird. Das zweite Argument ist der Parallelitätshinweis. Es teilt den zugrunde liegenden Plattformen mit, wie viele parallele Instanzen dieses Prozessors auf verschiedenen Knoten angelegt werden sollen.

Einige Prozessoren erzeugen ihre eigenen Streams und werden als Quelle für eine Topologie verwendet. Sie verbinden sich mit externen Quellen, ziehen Daten und stellen sie der Topologie in Form von Streams zur Verfügung.

Ein Stream ist eine physische Einheit der SAMOA-Topologie, die verschiedene Prozessoren miteinander verbindet. Ein Stream kann eine einzige Quelle, aber viele Ziele nutzen. Ein Prozessor, der die Quelle eines Streams ist, besitzt den Stream.

Aufgaben sind vergleichbar mit einem Job in Hadoop. Die Aufgabe ist eine Ausführungseinheit. Innerhalb einer Aufgabe muss eine Topologie definiert werden. SAMOA kann nur Klassen ausführen, die eine Task-Schnittstelle implementieren.

Apache SAMOA testen

Um Apache SAMOA in einem Netzwerk zu testen, kann die Lösung direkt aus Github heruntergeladen werden. Dazu werden folgende Befehle verwendet:

git clone http://git.apache.org/incubator-samoa.git

cd incubator-samoa

mvn package

Die Integration in Apache Storm beschreiben die Entwickler in Ihrer Dokumentation zur Lösung. Auch die Integration in Apache S4 und Apache Samza beschreiben die Entwickler in der Doku. Die ersten Schritte zur Einrichtung von SAMOA sind auf der Getting-Started-Seite zu finden.

Entwicklung neuer Aufgaben in Apache SAMOA

Eine Aufgabe ist eine mit dem maschinellen Lernen zusammenhängende Aktivität, zum Beispiel eine spezifische Bewertung für einen Klassifizierer. Eine Aufgabe entspricht einer Topologie in SAMOA. Eine einfache Aufgabe besteht aus einem Quellprozessor, einem Zielprozessor mit einer Parallelitätshinweiseinstellung und einem Stream, der die beiden verbindet. Der Quellprozessor erzeugt eine zufällige Ganzzahl, die an den Zielprozessor gesendet wird. Eine Beispiel-Aufgabe ist in der Dokumentation zu finden.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46063492 / Analytics)