© Excellent backgrounds/Shutterstock.com
Java Magazin
Big Data mit Cascading

Big Data mit Cascading

Cascading ist eine Java-Bibliothek, die das Schreiben von komplexen Hadoop-Jobs zum Kinderspiel macht. Cascadings Abstraktion von Big Data Streams zu Rohrleitungssystemen schafft Transparenz und erleichtert die Modularisierung und das Testen der einzelnen Programmkomponenten. Also warum nicht zur Abwechslung aus einem Elefanten eine Mücke machen?

Boris von Loesch, Peter Siemen


Das Thema Big Data hat sich in den letzten Jahren zu einer festen Größe der Industrie entwickelt. Mit den stetig sinkenden Preisen für Speichermedien ist es immer selbstverständlicher für Unternehmen geworden, großzügig alle Signale aufzuzeichnen, die Aufschluss über Kunden, über die Effizienz von Unternehmensprozessen oder die Performance von eingesetzten Softwaremodulen geben können.

Um Datenmengen in Größenordnungen von Tera­bytes zu verarbeiten, hat sich das 2005 von Doug ­Cutt­ing und Mike Cafarella entwickelte Softwarepaket Apache Hadoop [1] als De-facto-Standard bewährt. Für einige Stunden am Tag ein Hadoop Cluster in der Cloud von einem der diversen Anbieter zu mieten ist inzwischen einfacher geworden, als ein Outlook-Adressbuch mit einem Android-Telefon zu synchronisieren.

Ein einfaches Hadoop-Programm wie zum Beispiel das gern verwendete „Hello World“-Äquivalent – in der Hadoop-Welt: WordCount – zu schreiben und in der Cloud laufen zu lassen, stellt ebenfalls für die wenigsten Programmierer eine ernst zu nehmende Hürde dar. Sobald die Anforderungen an ein Hadoop-Programm komplexer werden, wird es jedoch schnell sehr aufwändig und mühsam, an jeden Berechnungsschritt im MapReduce-Paradigma zu denken. Chris Wensel sah diese Problematik sehr früh und startete 2008 das Open-Source-Projekt Cascading [2].

Cascading: Elefantenzähmen leicht gemacht

Cascading ist eine anwendungsorientierte Abstraktionsschicht auf Hadoop bzw. MapReduce mit dem Ziel, komplexe Hadoop-Jobs transparenter zu machen. Es stellt diverse häufig gebrauchte Komponenten bereit und lässt sich wesentlich leichter testen und warten als die resultierenden einzelnen MapReduce-Jobs. Bei Cascading werden die Datenverarbeitungsschritte als Flows modelliert. Ein Flow setzt sich aus einer oder mehreren Pipes (cascading.pipe.Pipe) zusammen. Innerhalb der einzelnen Pipes können Operationen zur Manipulation des Datenstroms konfiguriert bzw. implementiert werden. Input- bzw. Outputkanäle werden als Source und Sink Taps bezeichnet.

Alle durch das System zu verarbeitenden Daten werden als Tuple zu Tuple Streams zusammengefasst. Ein Tuple wiederum besteht aus einer beliebigen Anzahl von serialisierbaren Objekten, den Fields des Tuples.

Über ein gewähltes Key Field kann ein Tuple Stream gruppiert werden. Es gibt daher zwei grundlegende Arten von Operationen: Solche, die auf einzelne ­Tuple eines Tuple Streams angewandt werden (cascading.operation.Function, cascading.operation.Filter) und andere, die auf G...

Java Magazin
Big Data mit Cascading

Big Data mit Cascading

Cascading ist eine Java-Bibliothek, die das Schreiben von komplexen Hadoop-Jobs zum Kinderspiel macht. Cascadings Abstraktion von Big Data Streams zu Rohrleitungssystemen schafft Transparenz und erleichtert die Modularisierung und das Testen der einzelnen Programmkomponenten. Also warum nicht zur Abwechslung aus einem Elefanten eine Mücke machen?

Boris von Loesch, Peter Siemen


Das Thema Big Data hat sich in den letzten Jahren zu einer festen Größe der Industrie entwickelt. Mit den stetig sinkenden Preisen für Speichermedien ist es immer selbstverständlicher für Unternehmen geworden, großzügig alle Signale aufzuzeichnen, die Aufschluss über Kunden, über die Effizienz von Unternehmensprozessen oder die Performance von eingesetzten Softwaremodulen geben können.

Um Datenmengen in Größenordnungen von Tera­bytes zu verarbeiten, hat sich das 2005 von Doug ­Cutt­ing und Mike Cafarella entwickelte Softwarepaket Apache Hadoop [1] als De-facto-Standard bewährt. Für einige Stunden am Tag ein Hadoop Cluster in der Cloud von einem der diversen Anbieter zu mieten ist inzwischen einfacher geworden, als ein Outlook-Adressbuch mit einem Android-Telefon zu synchronisieren.

Ein einfaches Hadoop-Programm wie zum Beispiel das gern verwendete „Hello World“-Äquivalent – in der Hadoop-Welt: WordCount – zu schreiben und in der Cloud laufen zu lassen, stellt ebenfalls für die wenigsten Programmierer eine ernst zu nehmende Hürde dar. Sobald die Anforderungen an ein Hadoop-Programm komplexer werden, wird es jedoch schnell sehr aufwändig und mühsam, an jeden Berechnungsschritt im MapReduce-Paradigma zu denken. Chris Wensel sah diese Problematik sehr früh und startete 2008 das Open-Source-Projekt Cascading [2].

Cascading: Elefantenzähmen leicht gemacht

Cascading ist eine anwendungsorientierte Abstraktionsschicht auf Hadoop bzw. MapReduce mit dem Ziel, komplexe Hadoop-Jobs transparenter zu machen. Es stellt diverse häufig gebrauchte Komponenten bereit und lässt sich wesentlich leichter testen und warten als die resultierenden einzelnen MapReduce-Jobs. Bei Cascading werden die Datenverarbeitungsschritte als Flows modelliert. Ein Flow setzt sich aus einer oder mehreren Pipes (cascading.pipe.Pipe) zusammen. Innerhalb der einzelnen Pipes können Operationen zur Manipulation des Datenstroms konfiguriert bzw. implementiert werden. Input- bzw. Outputkanäle werden als Source und Sink Taps bezeichnet.

Alle durch das System zu verarbeitenden Daten werden als Tuple zu Tuple Streams zusammengefasst. Ein Tuple wiederum besteht aus einer beliebigen Anzahl von serialisierbaren Objekten, den Fields des Tuples.

Über ein gewähltes Key Field kann ein Tuple Stream gruppiert werden. Es gibt daher zwei grundlegende Arten von Operationen: Solche, die auf einzelne ­Tuple eines Tuple Streams angewandt werden (cascading.operation.Function, cascading.operation.Filter) und andere, die auf G...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang