Machine Learning in einem eigenen Rechnercluster

Viele Big Data Szenarien verwenden den sogenannten SMACK-Softwarestack (Spark, Mesos, Akka, Cassandra, und Kafka) als Laufzeitumgebung. Dabei handelt es sich um frei verfügbare Software, die normalerweise auf Rechnerclustern in Datenzentren installiert wird, um dort Big Data Anwendungen durchzuführen.

Der kleine Raspberry Pi bietet eine interessante Möglichkeit, um sich ein eigenes Rechnercluster im Wohnzimmer aufbauen zu können.

SMACK-Stack

Ein Rechnercluster ist ein Rechnerverbund aus mehreren vernetzten Computern, der z.B. industriell eingesetzt wird, um große Rechnerkapazitäten bereitzustellen (High Performance Computing), oder um eine hohe Ausfallsicherheit zu erzielen (Hochverfügbarkeitscluster).

Der SMACK-Softwarestack, bestehend aus den Teilen Spark, Mesos, Akka, Cassandra, und Kafka wird hierbei eingesetzt, um verschiedene Funktionen bereitzustellen, die in der Großdatenverarbeitung genutzt werden:

  • Apache Mesos: verteilter Rechnerkernel,
  • Apache Kafka: verteilte Streamingplattform,
  • Apache Spark: Genereller Engine für die Verarbeitung großer Datenmengen, inklusive Machine Learning,
  • Akka: Toolkit mit Runtime-Umgebung um verteilte und fehleranfällige parallele Anwendungen zu erstellen,
  • Apache Cassandra: No-SQL-Datenbank für sehr große Datenmengen, die auf Ausfallsicherheit und Skalierbarkeit optimiert ist.

Man kann sich den SMACK Stack zwar – für kleine Anwendungen – auch auf einem Notebook installieren. Jedoch fehlt dann der Cluster-Charakter.

Um mit diesen Technologien vollumfänglich experimentieren zu können, gibt es im Prinzip zwei Möglichkeiten:

  • Nutzen einer Cloudlösung
  • Aufbau eines eigenen Clusters.

Für die zweite Variante gibt es eine schöne und nicht sehr kostenintensive Lösung auf der Grundlage des Einplatinencomputers Raspberry PI. Man kann sich leicht vorstellen, daß man hiermit z.B. sein Smart Home ausstatten könnte, um gleich an die notwendigen Daten zu kommen.

Hardware

Der Raspberry PI dürfte allgemein bekannt sein. Es handelt sich um eine kleine Platine, auf der ein  gesamter Computer untergebracht ist, die schon für wenig Geld zu haben ist. Dieser kleine Rechner hat vielen Leuten den Zugang zur Programmierung von Hardware eröffnet, und ist kaum noch aus der Maker-Szene wegzudenken.

Normalerweise verbindet man die Platine mit einem Netzteil, stattet das Ganze mit einem Shield (Zusatzplatine) und nutzt WLan/ Lan, um das Gerät ins Internet zu bringen. Eine solchen Rechner stattet man mittels SD Karte mit einem Linux Betriebssystem aus, und kann dann z.B. im Bereich des IoT Geräte und Anwendungen programmieren. Dieses Gerät, bzw genaugenommen, mehrere solcher Rechner kann man allerdings auch verwenden, um sich damit einen Rechnerverbund aufzubauen auf dem man dann den SMACK Stack installiert.

In der Anlage finden Sie einen Link auf mehrere Artikel (mit denen ich in keinerlei Verbindung stehe), die verschiedene Möglichkeiten zeigen, wie man sich für wenig Geld die Hardware aufbauen kann. Die Lösungen reichen von einfachen Acrylgehäusen, und  reichen zu einer Platine, mit der man vier Geräte inklusive Stromversorgung in einem 19 Zoll Rock installieren kann.

Mir persönlich gefällt die (letztgenannte) Bitscope Lösung sehr gut, da man hiermit die gesamte Hardware (konkret 4 Raspis pro 19 Zoll-Einschubgehäuse), die man zum Experimentieren benötigt in einem kleinen Serverschrank unterbringen kann, und da man das Cluster dann sicher mit Energie versorgen, und ins Netzwerk integrieren kann.

Auf der entsprechenden Homepage von Bitscope wird auch Hardware von der Firma WDLabs gezeigt, mit der man diesem Cluster Festplattenkapazität bereitstellen kann. Letztendlich geht es um Big Data, und deshalb reichen die in diesem kleinen Gerät sonst üblichen SD Karten nicht sehr weit.

Ich denke, daß 2 Einheiten a 4 Raspberry PI zusammen mit einer 1TB Festplatte schon ein ordentliches Cluster geben würden. Das Ganze könnte man per Switch an das Lan anschliessen, d.h hätte dann 8 vernetzte Computer.

Software

In den weiteren, ebenfalls unten angehängten Artikeln finden Sie Informationen zur Installation der einzelnen Softwarekomponenten des SMACK Stacks auf diesem Rechnercluster.

Wer sich ein wenig mit dem Raspberry PI auskennt, wird sich hier schnell zurechtfinden. Die Beschreibungen selbst sind relativ straight forward, und sollten sich mit etwas Geschick relativ einfach umsetzen lassen. Am Ende sollten die einzelnen Raspberry Pi Rechner entsprechend konfiguriert und vernetzt sein. Ein Rechner könnte z.B. für Spark vorbereitet sein, der andere für Mesos, und wieder einer für Cassandra.

Use Cases

Die Frage ist nun, was man nun mit einem solchen Cluster machen kann. Wie gesagt ginge es mir eher darum, über eine eigene Testlandschaft zu verfügen, mit der man Erfahrungen in SMACK sammeln kann (insbesondere der Teil des Machine Learning).

Beispielsweise könnte man sich regelmäßig Wetterdaten aus dem Internet beschaffen, um diese dann in Spark zu Cassandra abzulegen. Gleichzeitig könnte man sich über eigene Sensoren Hausdaten besorgen, und die ebenfalls dort speichern.

Solche Datenströme würde man dann z.B. über ein Lernmodell (SPARK ML) auswerten, und in einem Dashboard darstellen.

Man könnt sich allerdings auch Finanzdaten besorgen um sich dann ein eigenes Vorhersagemodell zu erstellen – der Fantasie dürften keine Grenzen gesetzt sein.

Weiterführende Informationen

Das Original dieses Artikels ist auf Der Produktmanager erschienen (©Andreas Rudolph). Folgeartikel zum Thema gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen.

In der Online Version des Artikels finden Sie hier die versprochenen weiterführenden Links:

Comments are closed.