Facebook stellt Presto unter Apache-2.0-Lizenz

Facebook veröffentlicht von Zeit zu Zeit den Quellcode für Software, die das Unternehmen einsetzt – Hadoop, Hive und Hip Hop sind Beispiele. Das jüngste Beispiel dafür ist Presto, eine verteilte SQL-Query-Engine zum Speichern und Bearbeiten von Big Data.

Zur Begründung verwies Martin Traverso in einem Blogeintrag auf den wenig überraschenden Fakt, dass Facebook von Daten bestimmtes Unternehmen sei. Das Data Warehouse des sozialen Netzwerks beherbergt 300 Petabyte an Daten. Um diese ohne Verzögerungen zu durchsuchen, wurde Presto entwickelt. Traverso erklärt dann die Architektur. Verkürzt gesagt schickt ein Client eine SQL-Anfrage an einen Coordinator, der den Query analysiert und dessen Ausführung plant. Der Scheduler baut dann eine Ausführungs-Pipeline, verteilte die Arbeit auf Nodes, die sich in der Nähe der Daten befinden und beobachtet den Fortschritt. Schließlich wandern die Daten durch die Pipeline und werden vom Client in der Output Stage abgeholt.

Anders als Hive nutzt Presto kein Map Reduce für die Execution Pipeline, sondern verwendete eine eigene Query- und Execution Engine, welche die SQL-Semantik unterstützt. Neben dem verbesserten Scheduler geschieht das Prozessieren der Daten im Speicher und über mehrere Stationen im Netzwerk, was unnötigen Overhead erspart. Presto ist in Java geschrieben und kann sich dank einer Storage Abstraction aus verschiedenen Datenquellen bedienen, nicht nur HDFS. Insgesamt sei Presto zehn mal besser als Hive/MapReduce, was die CPU-Belastung und die Geschwindigkeit angehe und unterstütze eine große Untermenge an ANSI SQL, schreibt Traverso.

Die Software steht nun unter der Apache-2.0-Lizenz auf Github bereit, eine eigene Webseite gibt es auch. In den nächsten Monaten soll die Funktionalität erweitert und die Performance verbessert werden.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben