Skillbyte Podcast #3: Das Hadoop Ökosystem - Was leistet die bekannteste Big Data Platform?
Willkommen zum Skillbyte-Podcast! Skillbyte ist Ihr Partner für digitale Exzellenz.
In diesem Podcast geht es um das Thema: Das Hadoop Ökosystem - Was leistet die bekannteste Big Data Platform?
// Inhalt //
- Was ist Apache Hadoop?
- Wer hat Hadoop entwickelt?
- Welche Unternehmen setzen Hadoop ein?
- Wie funktioniert Hadoop im Detail?
- Welche Erfahrungen hat Skillbyte mit Apache Hadoop gemacht?
Sprungmarken:
01:17 -> Was ist Apache Hadoop?
04:20 -> Für welche Unternehmen ist Hadoop interessant?
07:38 -> Zusammensetzung der Hadoop Distribution
10:17 -> Wie funktioniert Hadoop im Detail?
18:47 -> Apache Hive im Detail
24:40 -> Apache Spark im Detail
31:00 -> Wie können Firmen das Hadoop Ökosystem einsetzen?
34:50 -> So stellen sich Deutsche Unternehmen aktuell im Big Data Umfeld auf
40:20 -> Welche Erfahrungen hat Skillbyte mit Apache Hadoop gemacht?
Abonnieren Sie diesen Podcast und besuchen Sie uns auf https://www.skillbyte.de
Feedback und Fragen gerne an podcast@skillbyte.de
AUTOMATISCH ERZEUGTES TRANSKRIPT
Herzlich willkommen zu unserem Skillbyte Podcast Nr. 3 Heute behandeln wir das Thema Das Ökosystem. Was leistet die bekannteste Big Data Plattform? Und ich freue mich heute hier zu sein mit Masiar wieder. Hallo, ich heiße Masiar. Super, dass ich dich wieder online habe hier. Und ja, wie gesagt, wenn ihr Leser Fragen habt im Anschluss an den Podcast könnt ihr ja jederzeit diese per E-Mail einschicken, an Podcasts skillbyte, wo ihr auch immer unseren Podcast gerade hört. Ob iTunes, dieser oder Soundcloud lasst uns gerne eine Bewertung.
Da schreibt uns in den Kommentaren, wenn ihr Fragen habt oder wenn wir etwas verbessern können. Wir freuen uns immer über Feedback, weil das heißt, dass wir den Podcast noch besser auf euch zuschneiden können und die Fragen beantworten können, die euch wirklich interessieren. Ja, heute sprechen wir über das Thema Petzi.
Aber genau da gibt es ja im Prinzip steht hier für mich irgendwie synonym mit dem Thema Big Data. Das hat sich irgendwie etabliert und das Ökosystem ist ja riesig. Was es für unter Projekte gibt, das ist ja nicht alleine, sondern das ist so ein Sonnenschirm Projekt über zig andere Projekte. Vielleicht kannst du uns mal oder den Hörern zuerst mal so ein bisschen erklären, was ist hast du überhaupt sehr gerne?
Sehr gerne. Ja, die Anfänge von Dub reichen glaube ich wirklich schon bis ins Jahr 2003 oder 2004 zurück. Damals wurde ein Paper veröffentlicht von Google, wo konzeptionell definiert wurde, wie ein verteiltes Dateisystem aufgebaut sein müsste, um perfekt zu skalieren, über viele Rechner, Knoten und sehr Ausfallsicherheit zu sein. Die Annahme ist, dass jederzeit jeder Knoten ausfallen kann und das Netzwerk ausfallen kann. Einzelne Festplatten in den Knoten. Mein Knoten ist für mich ein Server oder ein Rechner ausfallen können und trotzdem das System als Ganzes weiterarbeiten können muss und nicht stehenbleiben darf.
Also dass man quasi ein hoch Ausfall sicheres System auf STANDARD Hardware realisieren kann. Das wurde dann getrieben oder dieses Paper wurde dann umgesetzt am Anfang von jemandem. Erste Konzept, also der erste Quellcode vom Adobe Distributed System glaube ich. 5000 Zeilen oder so, das wurde so 2004 2005 angestoßen und damals konnte man noch nicht ahnen, dass man mit Apache Dub ein Framework entwickelt, was ja so gut skaliert, dass mittlerweile Datenberge im IT-Bereich damit verarbeitet werden können. Genau.
Also der größte Dub Cluster. Das wird nicht so veröffentlicht, aber hin und wieder kommt man an Informationen ran. Den hat vermutlich Facebook. Und im Jahr 2014, das ist ja jetzt auch schon einige Jahre her, hat Facebook 300 Daten in einem Data Dub Data Warehouse vorgehalten und verarbeitet. Und das war 2014. Ich vermute, dass es heute noch deutlich mehr Daten sein werden. Dass Google Paper wurde 2003 veröffentlicht. Doug Cutting, der damals bei Yahoo gearbeitet hat, hat den Namen oder haben.
Er ist der Entwickler, der die ersten Zeilen Code geschrieben hat, hat sein Produkt nach dem Spielzeug Elefanten seines Kindes benannt. Es gibt so ein Bild von seinem blau gelben Elefanten Stoffpuppe Stofftier, was wohl Hajduk genannt wurde. Und die erste Veröffentlichung 2006 fand die statt und 2008 wurde das Projekt schon zum Paket Top Level Projekt erhoben. Das ging sehr schnell, so dass man festgestellt hat, dass da großes Potenzial dahinter steht.
Als ich mich mal interessieren würde, dieser diese riesigen Datenmengen erzähl ich meine, es gibt ja nicht wirklich viele Firmen, die mit solchen Datenmengen umgehen können wollen oder überhaupt in der Lage sind, überhaupt so viele Daten nicht haben. Inwiefern wir denn sowas relevant schon auf den deutschen Markt bezogen, wo sowieso mit Datensammeln immer so ein kleines Problem ist, dass du da Beispiele, wer so was gebrauchen könnte oder wer so viel Daten verarbeitet.
Ich sage mal, im Prinzip ist das Hordubal System für jedes Unternehmen interessant, was heute schon ein Data Warehouse betreibt. Unternehmensgröße kann man, glaube ich, daran kann man es glaube ich nicht festmachen, weil es gibt Unternehmen, die trotz ihrer großen Größe sehr wenig Daten verarbeiten. Dann gibt es kleine Unternehmen. Also ich sage mal so typische Werbe Agenturen, die sind haben vielleicht noch 50 Mitarbeiter, verarbeiten aber sehr viele Daten. Ich würde mal sagen, immer wenn es darum geht, wenn man Daten aus vielen unterschiedlichen Quellen zusammenführen möchte, um dort Analysen drauf auszuführen, dann macht das Sinn.
Dub ist ein Open Source System, das heißt, es ist frei verfügbar und man kann es Lizenzkosten frei verwenden. Wenn ich eine kleine Community haben wir auch laufen absolut absolut. Also es gibt auch so Demo Installation auf Raspberry PI. Das würde ich jetzt nicht empfehlen, aber im Prinzip kann man entweder mit. Also ich würde schon empfehlen, dass man Server Hardware nimmt, doch ist natürlich Ausfallsicherheit gestaltet. Aber so ein Server hat halt einfach mehr Rechenleistung und kann mehr Speicher Arbeitsspeicher aufnehmen, sodass man ich sage mal mit 10 Servern hast du die Leistung von 30 PCs oder so was.
Und auch weil Server ja oft nur 10 Gigabit Ethernet Schnittstelle haben, ist die interne Kommunikation dadurch sehr schnell und bietet auch noch einen Vorteil. Dadurch, dass es eben frei verfügbar ist, kann man einfach Cloud Images starten. Kann hatten sehr niedrigschwelligen Einstieg, kann sich damit vertraut machen von Horton Works ist ja von Cloud Dara gekauft worden. Man kann die sogenannte HDP runterladen, das ist ein VMware Image oder VirtualBox Image ist ungefähr so 10 Gigabyte groß und da ist quasi ein ganzer Cluster auf einem Knoten vorinstalliert und so kann man diese Werkzeuge testen und ausprobieren.
Okay, also der Wert bei Dub entsteht, wenn ich viele Datenquellen zusammenführen möchte in einem freien System und dann mit den Projekten, die es in diesem Ökosystem gibt, da komme ich gleich noch zu verarbeiten möchte. Also im Grunde, wenn ich heute Thoreaus aufsetzen will, dann macht Dub Sinn.
Ja, okay, aber dann tatsächlich macht es dann schon für die Mehrzahl der Firmen eigentlich Sinn, weil alle Firmen sammeln irgendwie Daten. Absolut. Ob das Produktionslinien sind oder Energie Medien. Also ich denke jetzt besonders an die Medien, die da extrem viele Daten sammeln und auswerten können.
Ja genau. Also gerade bei ich sage mal Web Werbung, wo man jeden Touchpoints erzeugt, irgendwo eine Zeile in einer Tabelle von einem Webserver, wo man sieht ah, hat die Werbung gesehen, geladen oder nicht und man Millionen von Zeilen produziert, da macht es Sinn. Also ich würde sagen desto mehr Daten, desto besser, desto eher macht es Sinn. Und Kunden, die das heute schon einsetzen, Herr Dub, sind natürlich die ganz Großen wie Facebook, AOL, Baidu, IBM, Image shek, Yahoo, aber auch viele, viele deutsche Firmen.
Da braucht man sich nur in den User Groups umzusehen setzen. Oder wir bekommen es ja immer mit für die Projekt. Anfragen setzen eben ein und muss man sich so vorstellen. Ich sage mal, was Rettet für die Linux-Distribution ist, ist vielleicht für diese Big Day als Big Data Distribution, weil Rated ist ja nicht Linux, sondern Rated bündelt ganz viele verschiedene Projekte den Linux-Kernel, die Basis Bibliotheken von Linux Systemen, viele viele verschiedene freie Projekte, x Server und so weiter werden von Rettet oder heute IBM zu einer Distribution zusammengefasst, dann eben in vor konfigurierte Form veröffentlicht.
Genauso ist das auch mit dem Ökosystem. Es gibt ganz, ganz viele Projekte, die darauf aufbauen, für gewisse Spezialfälle Sinn machen. Ob das die Tabake Datenbank ist, ob das das Hive Project ist, das sage ich gleich noch was zu. Ob das das Projekt ist flink. Verschiedene Message Broker wie Apache, Kafka überall wo Daten, Pipelines zum Einsatz kommen, gibt es ein Spezial Projekt, was die grundlegenden Services sozusagen als Basis verwendet.
Ja okay und horten wird dann quasi so ein Vergleich dann mit rettet man auf Horten Works in der Form muss man allerdings gibt es nicht mehr, die sind vor einigen Monaten. Also Horten Works ist sozusagen die Ausgründung gewesen, die die Plattform maßgeblich vorwärts getrieben hat. Und es gab zwei große Konkurrenten einmal Horten Works auf der einen Seite mit der freien Handelsplattform, auf der anderen Seite Cloud Dara und vor einigen Monaten hat Cloud Dara Horton Works gekauft. Also zukünftig wird Cloud Deraa beide.
Ich weiß noch nicht, wie sie es machen, ob sie es zusammenfassen werden und es dann noch eine Cloud Terra Distribution gibt und der Name verschwinden wird. Oder ob sie die ihre Services einfach auf die Plattform obendrauf setzen. Auf jeden Fall wird es irgendwie zusammengeführt werden. Das kann ich heute aber noch nicht sagen, wie genau das neue Produkte aussieht. Dub ist eher unter.
Die Projekte beschäftigen sich mit der Daten Aggregation, also viel Data Engineering Geschichten, Daten exportieren, aufbereiten, bereinigen, in bereinigte Form wieder abspeichern und dann das im Batch Jobs zu orchestrieren. Zum Beispiel Cloud Deraa macht sehr viel Machine Learning, wenn du diese rein. Daten hast dann verschiedene Modelle trainieren usw. da das war halt der Gedanke von Plauderer, dass sie gesagt haben Eigentlich sind wir gar keine Konkurrenten, sondern unsere Produkte ergänzen sich mehr. Lass uns das doch zusammen machen.
Ah ah ja, okay. Kannst du denn so ein bisschen erklären, wie du funktioniert auf einer High Level Ebene?
Ja, sehr gerne. Also wir haben bei uns im Skillbyte Blog auch einen Artikel dazu. Da habe ich so ein so eine Grafik, die visualisiert das schön wie die einzelnen Stufen aussehen, aber ich will es jetzt einfach auch noch mal erklären, damit man mit man sich das vielleicht vorstellen kann. Aber ich denke, wenn man dieses Bild aufruft, also vielleicht an die Zuhörer, dann wird es sehr schnell nochmal viel klarer. Die grundlegendste Funktion von diesem Steg ist das HDR Fest, also das Distributed Falls.
Das habe ich eben schon mal angesprochen. Das Paper hat quasi hat dafür die Initialzündung gesetzt, indem es ein verteiltes Dateisystem beschreibt. Für sehr, sehr große Datenmengen über mehrere Rechner in Rechner nenne ich mal einen Knoten und die Dateien werden also in Daten Blöcke fester Länge zerlegt. Das ist glaube ich in der STANDARD Installation 256 Megabyte und dann redundant auf diese Knoten verteilt. Das heißt, wenn du eine, sagen wir mal 256 Megabyte Datei hast und du hast eine Replikation Faktor von 3, würde dieser Block auf drei Knoten verteilt werden.
Warum macht man das? Dass wir sind, müssen ja davon ausgehen, dass jederzeit jeder Knoten ausfallen kann. Wenn ein Knoten ausfällt, hätte man immer noch zwei oder die entsprechend konfigurierte Anzahl an Knoten dort, die die Dateien vorhalten. Also das ist auch ganz, ganz wichtig. Da kann jederzeit kann irgendwas ausfallen und das System als solches läuft aber einfach weiter. Das kriegt schon mit, dass ein Worker Not sich verabschiedet hat. Aber im Prinzip die Jobs werden weiter ausgeführt.
Und klar, die Leistung ist reduziert, weil du jetzt ja eine einen Knopf weniger hast, aber das läuft schon weiter.
Das System ist also auch unsicher, quasi.
Also das ist auch der Grund, warum Google, Facebook usw. das einsetzen. Die werden das über zehntausende STANDARD Server verteilt haben und wenn ein Server ausgewählt, auch wenn sie nicht viel machen, außer dass sie irgendwann, wenn 10 prozent der Server ausgefallen sind, dann in einer koordinierten Aktion diese komplett tauschen. Okay, okay, genau die das Haar DFS kannst du dir also als verteiltes Dateisystem vorstellen. Es gibt sogenannte oder es gibt einen Master Node und viele Slave Notes.
Der Master Node ist der, der abgefragt wird. Wenn du zum Beispiel sagst, es gibt so ein Kommandozeile Werkzeug, da kannst du einfach sagen HDW, DFS, less und dann gibst du das Verzeichnis an und dann kriegst du ganz normal, wie du das kennst und Verzeichnis Listing aus dem HDS. Aber du spielst natürlich immer mit dem Master Note, wenn du eine Abfrage startest. Der koordiniert dann die Anfragen an die verteilten Slave Not sozusagen. Der Master Not hat im Prinzip den Überblick welche Knoten sind da und welche Daten liegen auf welchen Knoten?
Maurice Ein weiteres oder eine weitere Stärke ist, dass die Daten in auf dem HFC komprimiert abgelegt werden können. Also es muss nicht so sein. Das ist aber sehr oft so konfiguriert und das erfolgt vollkommen transparent. Es gibt verschiedene Kompression. Codex besitzt zwei hohe Kompression Snap für schnelle Kompression. Die ist dann nicht so stark, aber dafür brauchst du weniger CPU. Die Dateien liegen quasi gekippt vor. Aber du siehst es nicht. Du kannst ganz normal mit diesen Arbeiten da und das ist der Grund das es dieses verteilte Dateisystem ist.
Sozusagen der Grund, die die grundlegendste Ebene jetzt da hat. Aber ein paar Implikationen Die Datei Blöcke mit 256 Megabyte sind relativ groß. In alten Versionen von Dub eignete sich das System nicht, wenn du viele kleine Dateien ablegen wolltest, sondern dann hast du die quasi musstest du die zusammenfassen zu einer großen Datei und diese entsprechend speichern. Da gibt es aber wiederum Services, die sich um diese Aufgabe kümmern. Okay, die nächste Stufe auf dem HDR Service aufbauend wäre zum Beispiel Jan Jan steht für jede Resource Nikosia und Jan ist sozusagen auf diesem verteilten Dateisystem das Cockpit, was die Ressourcen dynamisch verwalten kann, des gesamten Clusters, also die Ressourcen eines Cluster, sind vornehmlich CPU und RAM und in neueren Versionen auch GPU und sogenannte FPGA, die du anschließen kannst.
Also Jan, setzt du sogenannte Cues auf du, die können per Benutzer vergeben werden mit verschiedenen Rechten. Also Benutzer Admin darf 100 prozent des Clusters belegen, Nutzer User darf nur 10 prozent des Clusters belegen zum Beispiel, oder? Dann gibt es QS für CPU Heavy Jobs. Heavy Jobs Je nach Job kann man das dann eben entsprechend einstellen und Jan weiß, wo welche Daten im Cluster liegen und startet den Job zur Verarbeitung genau auf dem richtigen Knoten, wo die Daten schon liegen.
Das ist dieses Prinzip der Daten Lokalität. Also macht das Processing da wo auch die Daten liegen um die Netzwerk Kommunikation zu reduzieren.
Okay, mit Daten schneller verarbeitet werden können und nicht über das Netzwerk transferiert werden.
Und dadurch, dass du ja bei dem Replikation Faktor von 3 die Daten immer auf 3 Knoten liegen hast, kannst du das ja relativ dynamisch zuteilen, auch wenn du mehrere Jobs parallel ausführen möchtest. Ja genau das ist aber auch noch Infrastruktur, die nächste Ebene ist dann sozusagen als auch schon Staat. Aber ich sag's trotzdem, weil es sehr viel was damals generiert hat, ist dann die die erste Ebene, auf der man wirklich Programme ausführen konnte. Also früher hat man sogenannte Map Reduce Programme geschrieben, die sehr aufwendig in der Programmierung sind.
Und wo du jetzt sagen konntest such mir alle Daten zusammen, die einen gewissen gewisses Kriterium haben und zähle beispielsweise die Anzahl von Zeilen mit Apple-Geräte Map und filtere die nach geografischer Information oder so was. Reduce und dann hast du quasi diese Map News Programme geschrieben und hintereinander verkettet, um dann ein gewünschtes Ergebnis zu erzielen. Das ist aber sehr fehleranfällig und auch sehr aufwendig, wurde aber ca. 2000 sechs sieben acht so gemacht. Aber der der Druck war relativ stark, dass man gesagt hat eigentlich wollen wir das nicht und für die Entwicklung ist das auch nicht so günstig, weil du quasi jeden Schritt von Hand programmiert hast, dir sehr viel Gedanken machen musstest wie Wo liegen denn die Daten?
Wie ist der optimale Abarbeitung? Plan für mein Programm so ad hoc ging gar nicht. Du musst es halt wirklich mal Gedanken machen. Wurde dann verdrängt von Ausführungsform, die auf dem sogenannten Directive abzüglich Graph basieren. Dag Was heißt das jetzt? Es wurde eine Library eingeführt von Facebook. Apache Theme hieß die und die Macht folgendes, also in Kooperation mit Hive. Wenn du eine Abfrage stellst, wäre es doch sinnvoll, wenn du quasi von hinten nach vorne durch deinen Ausführungen Plan durchgeht und sozusagen guckst Was ist mein Endergebnis und welche Schritte muss ich tatsächlich nur durchführen, damit ich das gewünschte Ergebnis erhalte?
Du kannst dir vielleicht vorstellen, wenn man mehrere Filter Cascade und hintereinander hat, dann könnte es ja sein, dass ein Filter herausfällt, weil ich bei einer vorherigen Stufe nur noch 0 Ergebnisse habe oder sowas. Und genau diese Optimierung macht quasi Paketes und auch Patchwork. Das wirkt jetzt alles vielleicht etwas abstrakt. Ich will das nicht zu verwirrend lassen. Man macht auch nichts mit Tests oder so, sondern das ist quasi einfach nur eine Library, die man einfügt oder die mit installiert wird, um schnelle Queries mit Apache Hive zum Beispiel durchzuführen.
Das erkläre ich jetzt gleich, weil das ist ein sehr wichtiges, sehr wichtiges Projekt. Also ich mache noch mal eine kleine, eine kleine, ein kleines Reh Cap, damit man noch dran ist. Also wir haben das S Dateisystem als Basis. Darauf kommt Jan zur dynamischen Verwaltung der Ressourcen. Darauf könnte man jetzt Map Reduce Programme schreiben, macht man aber nicht. Stattdessen ist es heute so, dass vor allem zwei Komponenten die Rockstars geworden sind. Von Hajduk kann man sagen, und zwar zum einen ist es passiv und zum anderen Peter Bargteheide ist sehr einfach zu verstehen.
Deshalb fange ich damit mal an Hive ist im Grunde eine SQL Schicht auf diese Daten, die auf dem HDS liegen. Du kannst dir wirklich vorstellen, da liegen jetzt nehmen wir mal Beispiel Daten Du hast Requests von Web Servern, die werden einfach abgespeichert und mit Hive kannst du so eine Art Tabellen Struktur über diese riesigen Text legen. Also das das erste Feld ist immer die IP. Das zweite Feld ist der User Agent String. Das dritte Feld sind irgendwelche Parameter, die übergeben werden.
Wir haben eine Frage, wo wir nur von Tabellen drüber legen sprichst. Bedeutet das, dass die darunterliegenden Daten in halt dann auch quasi nicht halben HFC Spalten basierend sind?
Die Ursprunges Daten müssen das nicht sein. Du kannst auch mit Hive auf diesen Daten mit SQL Abfragen durchführen. Es gibt allerdings Dateiformate, wie zum Beispiel das Org Dateiformat, welches diese Daten noch mal in einer optimierten Form abspeichert um Redundanzen zu vermeiden. Also dieses Org Tabellen Format zum Beispiel sortiert diese Requests alle nach IP würde bedeuten, dass aber die Diese Angabe der ursprünglichen IP würde nur einmal in der Datei stehen und dann würden 50 Requests folgen oder so und diese die IP würde nicht 50 mal wiederholt werden, dadurch Spaß zu sehr viel Speicher markiere.
Okay, genau und das ist aber nicht notwendig. Also du kannst wirklich auf den Rohdaten das ist am Anfang ein ziemliches Aha-Erlebnis ganz auf den Rohdaten einfach SQL abfragen mit Apache Hive durchführen. Und wenn du dir das jetzt mal überlegst, du musst es früher map Programme schreiben. Und heute sagst du Select Stern from Tabelle Page Impressions Where User Agent gleich iPhone X Enter und hast dann nach wenigen Sekunden die Antwort, ist das natürlich schon eine riesen Erleichterung, als wenn man vorher ein Programm geschrieben hat und das das Verrückte ist, das funktioniert hat auf Terabyte Weise Daten.
Also du du selbst diese Abfrage ab Jan. Guckt okay, diese Abfrage also etwas optimiert diese Abfrage erst mal vom Vermieter in einen DAC, also Direct Graph und dann wird diese auf dem Cluster ausgeführt. Auf sagen wir mal, du hast 10 Knoten, dann wird auf 10 Knoten Daten lokal die Abfrage durchgeführt, das Ergebnis jeweils zusammengeführt, zusammengeführt, zusammengeführt und am Ende hast du einen Account oder was auch immer du abfragen möchtest. Also es wird parallel berechnet, zusammen aggregiert und du kannst sehr, sehr schnell auf sehr großen Datenmengen Abfragen durchführen.
Das funktioniert mit 10 Maschinen genauso wie mit 10000 Maschinen, die ja in Echtzeit also.
HIV ist jetzt nichts für die Echtzeit Analyse optimiert, aber es dauert schon je nach Datenmenge ein paar Minuten oder wenn du also du kannst auch komplexe Joints machen. Du könntest jetzt sagen Oh, ich habe auf der einen Seite Page Impressions, auf der anderen Seite irgendwelche anderen Server Lock falls ich möchte mal sagen wir mal von zwei Webseiten. Ich möchte mal wissen, welche IPs in beiden Log Fields vorkommen oder welche User Agents in beiden log iez vorkommen. Dann kannst du ein Join machen von diesen beiden Datenquellen zusammen und das Ergebnis wieder rausschreiben oder die anzeigen lassen oder zählen.
Alle Möglichkeiten die du per SQL hast, kannst du dann ja da auch anwenden. Und das ist schon eine ziemlich mächtige, ein ziemlich mächtiges Werkzeug. Genau. Das heißt natürlich nicht SQL, sondern eventuell verhüte Query Languages. Du hast noch nicht alle Möglichkeiten, aber du kannst alle Funktionen des SQL 99 Standards benutzen, in neueren Versionen auch diese PL SQL Programme und damit kannst du halt schon echtes Data Warehouse aufbauen. Wie gesagt, Facebook 2014 hat mit Hype Facebook hat Hype auch entwickelt intern 300 an 300 Peter bei Data Warehouse ausgewertet.
Jetzt kannst du dir vorstellen, welche Daten Facebook damit auswertet. Also wer bekommt welche Likes in welchen geografischen Regionen usw.? Genau, Hive ist primär gemacht, eben für Batch Jobs. Klar, die Daten liegen schon vor. Du möchtest jetzt regelmäßig aggregieren? Welche Nutzer sind denn die aktivsten oder welche Webseiten sind die meisten meist frequentierten? Du kannst komplexe ad hoc Anfragen durchführen. Also alles was du mit SQL formulieren kannst, kannst du natürlich dann auch da auf Terabyte Weise Daten durchführen und du kannst diese Tabellen.
Wenn du sie einmal rausgeschrieben hast, kannst du halt auch mit dem zweiten Projekt Apache Spark verknüpfen. Da kann ich jetzt gleich was zu sagen. Aber noch kurz als Free Cap sozusagen. Also mit Apache Hive kannst du schon sehr, sehr viele Datenauswertung machen. Pascal Also ein sehr, sehr mächtiges Werkzeug, gerade wenn die Datenmengen so groß sind, dass man sie in einer einzelnen SQL Datenbank nicht mehr sinnvoll verarbeiten kann oder das so teuer wäre, dass einfach muss man ja auch mal sagen.
Manchmal sind 20 STANDARD Server günstiger als ein super teurer Spezial Server.
Was ist denn, wenn ich die Daten ich sag mal in Echtzeit analysieren möchte, also quasi Analysen fahren will, wie sich die Leute gerade auf der Website bewegen und wo ich halt nicht ein paar Stunden warten will. Welches Projekt gibt's denn da?
Da würdest du auf jeden Fall nicht mit Highway operieren, sondern dann würdest du vermutlich da gibt es jetzt auch mehrere Projekte. Aber eines, was man verwenden könnte, wäre wirklich Apache Spark. Und zwar gibt es da dieses Spark Streaming. Das heißt, du würdest diese Daten von der Webseite in sogenannten Micro Badges verarbeiten? Also die würden du würdest sagen Gib mir lieber Webserver, gib mir alle fünf Sekunden deine gespeicherten Requests oder alle 10 Sekunden, da bist du nah an Echtzeit dran.
Wirklich echte Echtzeit fähig zu sein, müsstest du eine andere Architektur überlegen und müsstest dir die müsstest du wirklich Event basiert die Verarbeitung quasi anstoßen. Okay, okay, lass mich das noch abschließen. Petzi Spark ist ein weiteres Projekt, was ja in den letzten ein, zwei, drei Jahren wirklich deutlich größere Aufmerksamkeit genießt. Das ist im Prinzip eine Programmier Umgebung, mit der man auch verteiltes Rechnen auf riesigen Datenmengen durchführen kann. Ein bisschen wie eine passive Spark hat auch eine SQL Engine, dass du zum Beispiel auf Tabellen von Hive lesen kannst und dann eigene Berechnungen durchführen kannst und dann das Ergebnis wieder weg speichern.
Wir machen das bei Skillbyte in unserem Big Data Team bei unseren Projekten häufig so Hive Script dann solange das einfache SQL Abfragen sind, mit Filtern und so weiter, kann man das ruhig als Hive Script lassen. Aber es gibt oftmals Skripte, die über die Dauer sehr komplex werden oder die im Verlauf sehr komplex werden, viele Joints machen oder wo man komplexe Berechnungen durchführen möchte, gerade wenn es um Datums und Zeitzonen Auswertungen geht. Und da haben wir die Erfahrung gemacht, wenn wir dann Skripte nehmen und die als Sparprogramme umschreiben, kann man oft die die Ausführung Zeit also um Faktor fünf oder noch weiter reduzieren.
Also es gibt, was eine Stunde läuft, läuft auf dem gleichen Cluster als Programm in zehn Minuten oder so, weil man bei Spark einfach mehr Möglichkeiten hat, das Programm genauer zu steuern oder genauer zu verteilen. Genau. Im Prinzip benutzen wir aktuell Spark in. Ähnlichen Fällen wie hier nur für sehr komplexe Skripte oder wenn du zum Beispiel ein Projekt an eine Java Bibliothek nutzen möchtest, um gewisse Algorithmen auszuführen also bei einem Projekt berechnen wir sogenannte Bloom Filter auf auf einer großen Anzahl von Daten.
Na, das weiß ich nicht. Das kann ich im Anschluss vielleicht erklären, wofür Bluhm Filter gut sind. Im Grunde geht es darum, dass du, wenn du mehrere Mengen hast, dass du die Schnitte daraus ausrechnen kannst. Also zum Beispiel hast du einen Haushalt A und einen Haushalt B und in beiden ist dasselbe Gerät drin. Und du möchtest am Ende wissen, wie viele Haushalte und wie viele Geräte gibt es dann? Und dann wäre ja kannst du nicht einfach die Haushaltsgeräte summieren, weil dann hättest du zwei Haushalte und zwei Geräte und das stimmt ja nicht.
Es ist ja das gleiche Gerät in Haushalt A und den Haushalt B und da gibt es so eine Möglichkeit, wie du schnell rausfinden kannst, in welcher Menge sich ein Gerät befindet. Genau um das. Das machen wir mit so einer Java Bibliothek und so wie Java Kommandos kannst du zwar auch mit Hive anbinden, aber das ist bei Spark einfach wesentlich. Also Spark ist dafür gemacht. Spark selber kannst du in Scala schreiben, Sparprogramme in Scala schreiben oder in Python.
Wir machens in Scala, weil das halt noch näher dran ist am nativen Chor. Du bist in Java geschrieben und Scala und Java haben hier eine perfekte Interaktionsmöglichkeiten, weil sie beide auf der JVM ausgeführt sind.
Ja, genau.
Ich würde empfehlen, komplexe Skripte kann man mit Spark vereinfachen oder schneller ausführen oder wenn man Machine Learning Modelle trainieren will. Da gibt es auch ganz, ganz viele Erweiterungen für Spark, die man dort nutzen kann.
Na, wie sieht es denn mit mit? Was mich noch interessieren würde so der Speicher Verbrauch von von solchen Architekturen aus, also mit RAM. Ich meine Peter bei Daten und so. Okay, also Festplatte oder verteiltes Dateisystem. Wie sieht es aus? Wie intensiv ist das Ganze?
Du meinst, wenn du jetzt Jobs ausführst, wie viel Arbeitsspeicher die verbrauchen? Ja genau, genau. Also bei Heise kann ich sagen Heise ist ziemlich ready und da kannst du schon mal der nimt oder der Job nimmt quasi so viel Ressourcen wie er irgendwie bekommen kann, also so viel wie die KEF hergibt. Bei den Abfragen die wir machen, kann das ein halbes Terabyte sein. Das wird dann eben von Jahren zugeteilt. Ich meine, der Cluster hat auch ich glaube über ein Terabyte und damit der Job eben schnell ausgeführt werden kann.
Bei Sparprogrammen kannst du angeben, wie viele Exekutor du haben willst und wie viel Arbeitsspeicher jeder Exekutor haben soll. Und das ehrlich gesagt muss man das ein bisschen ausprobieren, was bei Heise ganz cool ist oder bei Spark auch du kannst, wenn du einen Join durch führst, oft hast es ja so, du hast eine sehr große Tabelle, sagen wir mal Page Impressions und du hast eine eher kleinere Tabelle. Sagen wir mal, da sind 100 Devices drin und du willst jetzt auflösen welche?
Die Weight sind in der Page Impression Tabelle drin. Dann kannst du einen sogenannten Website Join machen, wo du den die kleine Tabelle komplett in den Arbeitsspeicher lädst und die große Tabelle dann dagegen Joints. Genau das geht dann sehr viel schneller auch verteilt, als wenn du einfach den Join klassisch durchführen würdest. Und das macht das System dann automatisch. Und das merkst du dann schon, dass du sehr schnell Ergebnisse bekommst. Helm. Okay, also wir haben auch die größten Jobs, um das abzuschließen, die brauchen wirklich ein Terabyte Arbeitsspeicher, aber da werden auch Tabellen erzeugt, die teilweise 40 Milliarden Einträge haben.
Also Mann, du hast jetzt irgendwie so ein paar Projekte erwähnt. Ich habe mal so eine Map gesehen, wo das ganze Ökosystem aufgemalt ist und das ist Wahnsinn. Also die schiere Menge an Projekten und jedes ist für irgendwas verantwortlich. Teilweise überschneiden sich, überlappen sich diese Tools also mit selben Funktionalitäten wie kann man ist eine Firma, die sagt Okay, ich möchte Big Data betreiben, ich habe eine Menge Daten. Wie würde denn so eine Firma vorgehen? Wie würde sie sich denn zurechtfinden in dieser Landschaft?
Man muss dazu sagen, die Landschaft ist schon groß und sie verändert sich auch schnell. Also Projekte kommen hinzu, andere Projekte werden nicht mehr aktiv weiterentwickelt. Das heißt, du hast schon recht, es ist eine Herausforderung, da am Ball zu bleiben. Also ich denke, was wichtig ist ist, dass man regelmäßig in aktuelle Trainings Unterlagen rein guckt und einfach schaut, wie ist da der neueste Stand, dass man diese Vielzahl an Projekten erst mal sichtet und guckt? Was ist für meine Firma interessant?
Weil oftmals sind es ja die Konzepte, die wichtig sind. Also zum Beispiel ich möchte hier Daten, ich möchte etwas haben und ich habe immer die gleichen Daten und möchte die irgendwie verarbeiten. Welche Projekte machen denn da für mich Sinn?
Dass man sich das, dass man sozusagen die Basis Workflows auf möglichst etablierten Technologien abstellt. Ja, und dann kommt es darauf an, dass man entweder lässt man sich beraten. Das machen wir ja auch, dass wir unseren Kunden helfen, oder man muss wirklich im Monatsrhythmus würde ich schon empfehlen, ein bisschen Zeit aufwenden, um zu gucken in den einschlägigen Foren von Hajduk oder in den Nutzergruppen, dass man einfach schaut, wo sind da neue Entwicklungen und wo geht das hin und macht das für meine Use Case Sinn?
Ich meine, ich finde es krass, da kommen so Technologien auf. Ich kann mich an ein Beispiel erinnern, zum Beispiel Apache, Storm und diese ganzen Technologien, die sind ja auch nicht trivial. Und ich stelle mir vor, du, du arbeitest dich in so eine Technologie ein, lässt den Entwickler darin ausbilden und machst du tust plötzlich, nach einem halben Jahr oder Jahr geht das Projekt einfach nicht weiter und wird abgelöst durch zum Beispiel Spark oder es Packet abgelöst durch Apache.
Flink. Das ist ja massiv, was du dann ja Zeit und Geld verloren, weil das Projekt dann einfach nicht mehr weitergeht. Und das ist halt irgendwie auch eine große Gefahr, sich ich sage mal in dieser Landschaft zu bewegen und passend zu dem, was ich natürlich vorhabe, aber auch die Technologie auszuwählen, ich sage mal, die die längste Halbwertszeit hat.
Ja, das ist also es ist OpenSource. Du kannst nicht so richtig antizipieren, in welche Richtung das immer geht, aber es gibt schon Projekte Hive und Spark. Ich sage mal, die sind jetzt seit zehn Jahren im Rennen, die werden so schnell nicht mehr weggehen. Also wie auch im Linux Umfeld auch du hast was einfach etablierte Projekte, die gibt es schon länger und an den Rändern passiert natürlich immer wieder was Neues und. Ich meine, Big Data ist ja jetzt auch das Trendthema oder Datenverarbeitung generell ist es klar, dass da viele Projekte hinzukommen.
Für verschiedene Spezialfälle werden da Projekte angepasst, aber ich sehe das eher als eine Stärke von im Ökosystem. Man darf halt einfach nicht glauben, ich installiere das und betreibe das und fasse das nie wieder an, sondern man klar, für die STANDARD Jobs kann man das auch so machen. Man hat ja eine Wertschöpfung, wenn man so einen Cluster installiert und seine STANDARD Jobs damit ablösen kann oder gewisse Analyse Jobs damit durchführen kann und dann das Wissen benutzt um bessere Entscheidungen zu treffen, hat man ja seine Wertschöpfung.
Aber um zu kontinuierlich zu prüfen, welche neuen Projekte gibt es denn und welche Geschäftsprozesse in meinem Unternehmen würden denn davon profitieren?
Ja, das ist eine Aufgabe, die man quasi konstant weiterführen muss. Dass es nicht ich wann das ist, wenn ich mal weiter denke ja, jetzt mit 5G und und Industrie 4.0, dass jedes Endgerät anfängt, Daten zu senden, jedes Auto, jede Ampel, dass diese Datenmengen überhaupt mal bewältigt und ausgewertet werden müssen, vielleicht in Echtzeit sogar oder im Auto natürlich in Echtzeit. Das ist Wahnsinn. Aber glaubst du denn jetzt mal, dass wir in Deutschland irgendwie eine politische Frage dafür überhaupt gerüstet sind?
Wie schätzt du denn die Big Data Landschaft in Deutschland oder dieses ganze Machine Learning? Ein Thema, was ja was das ja mit sich bringt. Big Data wie wir in Deutschland aufgestellt sind, die Unternehmen aufgestellt.
Ich glaube, die Unternehmen sind gerade dabei, sich aufzustellen. Wenn ich das so einschätzen würde, weil also denen ist schon bewusst, dass man was machen muss, den ist auch klar, dass sie viele Daten haben und dass Daten alleine, also Daten aufzu nehmen. Das ist schon mal der erste Schritt, aber man muss sie natürlich dann auch verarbeiten, um Erkenntnisgewinn daraus zu erhalten. Und das ist schon klar, glaube ich. Aber viele, viele Leute, die in diesen Bereich kommen, sind Quereinsteiger und die müssen sich natürlich auch erstmal die ganzen Technologien anschauen und damit vertraut werden.
Und das ist nicht trivial. Wie du schon gesagt hast, man muss schon eine Menge Zeit investieren, bis man das auch alles versteht. Weil das ist die zweite Sache. Nur weil du etwas auswärts ist, heißt es ja nicht, dass das was logisch ist, was da hinten rauskommt. Also sehr oft spreche ich mir damit Kunden und haben eine Auswertung gemacht und dann sagen die Kunden Ah okay, wie heißt. Was bedeutet denn genau das? Ah, okay.
Auf welchen Daten basiert das? Warum kommt dieser und jener Wert zustande? Also man muss schon sozusagen verstehen, was man da tut und kann nicht einfach sagen Ja, das Ergebnis ist 17 und da muss man schon die Kette verstehen, die die, die wie halt die Daten dann zustande kommen, merken.
Ich meine, es gibt ja noch ein paar Paar Quer Themen, wie zum Beispiel die Datenschutzgrundverordnung, die ja als Basis die Datensparsamkeit hat. Und und. Ich habe zum Beispiel gelesen, die CDU hat erkannt Datensparsamkeit im Zeitalter von Big Data und künstliche Intelligenz. Ob das wirklich so Sinn macht? Die haben ja irgendwie ein Papier rausgebracht, was das wohl ein bisschen aufweicht. Das Thema, weil die beiden Themen sind für mich komplett konträr, aber ich keine Ahnung. Ich habe viele Firmen erlebt, die, die das irgendwie lösen und hintergehen, also nicht hintergehen im Sinne von von Illegalität gehen, sondern versuchen da Helm zu umgehen.
Das Thema also ich finde, da ist die Politik noch in der Pflicht, das mal ein bisschen gerade zu ziehen, damit wir mit diesen Daten auch was anfangen können.
Es ist nicht ganz einfach. Ich hatte jetzt letzte Woche war ich bei einem Vortrag, der ging es auch um Vertrauen in digitale Geschäftsmodelle und Unternehmen und das ist halt so eine Sache. Deutschland oder Europa hat einen sehr hohen Daten, sehr hohen Datenschutz und das meiner Ansicht nach könnte man das zu einer Unique Selling Proposition machen, also für Deutschland oder Europa, dass man sagt Okay, alle anderen machen alles mit ihren Daten, aber bei uns sind eure Daten sozusagen sicher.
Das heißt, wenn ihr wirklich sensible Daten habt, könnt ihr die in Europa hosten. Natürlich ist es so, dass das die gesetzlichen Rahmenbedingungen hier eingehalten werden. Also das machen wir ja auch nicht anders. Das ist letztlich eine politische Entscheidung, ob man mit allen Daten alles darf. Also das sieht man so ein bisschen. In China kann man sich fragen, ob man das so möchte. Und das hat natürlich auch ein wie bei allem zwei Seiten der Medaille.
Wenn du die Gesundheitsdaten von 1,1 Milliarden Menschen hast und darauf Big Data Analysen durchführen kannst, dann kannst du natürlich auch sagen Oh, in der Region. Warum? Da sind die Leute besonders gesund, in der eher nicht. Liegt das am Essen? Ah, okay, wir haben herausgefunden. Dass dieses und jenes Nahrungsmittel ist sehr schlecht für die Gesundheit, das lassen wir jetzt sein. Das kriegst du einfach nicht raus, wenn du diese großen Datenberge nicht zur Verfügung hast.
Na ja, das wird sehr spannend. Was bei Hajduk cool ist, ist Du kannst es in der Cloud betreiben auf Maschinen mit vorgefertigten Images. Also alle großen Cloud Betreiber bieten das an. Du kannst es aber auch ohne Prämisse betreiben, wenn du halt sagen möchtest Okay, ich möchte die Daten, die uns die unser Unternehmen hat und die uns heilig sind, möchte ich intern verarbeiten um da Erkenntnisse zu gewinnen und muss nicht alles hoch in irgendeine Cloud Instanz laden. Das ist wirklich so, dass unsere Kunden das häufig ohne Prämisse machen, weil Server jetzt nicht so teuer sind im Vergleich zu anderen Dingen und dass man sagt Okay, wer die Daten nachher verlieren und dann eine Katastrophe sich anbahnt, machen wir das lieber ohne Prämisse und sind da sicher genau.
Ja, das ist auf jeden Fall noch ein Vorteil, den diese Plattform eben mit sich bringt. Ist natürlich auch wieder ein Nachteil. Das heißt, du brauchst Leute, die sich damit auskennen. Das muss man auch ganz klar sagen. Die Einrichtung einmal die ist, die ist nicht trivial, das kriegt man schon hin als Systemadministrator, aber es ist halt da. Es muss halt gemacht werden und jemand muss muss die Betreuung übernehmen für so ein Cluster. Das ist auch ganz klar.
Na ja, okay, jetzt haben wir den politischen Exkurs beendet. Was kommt als nächstes? Also wir haben jetzt irgendwie ein paar Themen besprochen, wie das funktioniert, was das überhaupt ist und wie wir das Ökosystem und so weiter aussehen. Wir haben ja bei der Skillbyte eine eigene Big Data Abteilung für Leitest und und Projekte machst. Das heißt, natürlich können wir auch unsere Kunden in dieser Richtung beraten, dass sie sich in dieser Landschaft zurechtfinden, dass die richtigen Tools auszuwählen, die zu ihrem Case passen, inklusive natürlich der Unterstützung, der Implementierung und des Betriebs dieser Plattform.
Vielleicht kannst du mal zwei Sätze dazu sagen, was wir genau tun können für unsere Kunden.
Also was wir genau tun können. Aber ich gehe jetzt mal von jemandem aus, der noch der vielleicht schon Data Warehouse hat, aber der sich sozusagen neu aufstellen möchte oder modern aufstellen möchte. Erstmal zu schauen Welche Datenquellen gibt es und in welcher Güte liegen die Daten vor? Welche Qualität haben die? Ist das schon strukturiert oder muss man sozusagen noch aus vielen, vielen einzelnen Töpfen die Daten erst einmal zusammen aggregieren? Da kann man auf jeden Fall helfen, dann so ein Cluster Aufbau zu beschreiben.
Also wenn wir verstanden haben, das ist ganz wichtig, was dem Kunden weiterhilft. Von der Geschäftsleitung her können wir sagen Okay, um deine geschäftlichen Ziele zu erreichen, muss dein Cluster so und so aussehen und die und die Anforderungen abdecken. Dieses und jenes Projekt würde dir helfen, dein neues Data Warehouse in Betrieb zu nehmen. Und dann könnt man natürlich auch bei der Implementierung helfen und hinterher auch bei der Automatisierung. Das ist auch ein ganz großes Thema. Wenn du einmal einen Bericht erstellt hast oder die Daten aggregiert ist, dann willst du das wir oft regelmäßig tun.
Jeden Tag den aktuellen Bericht oder die diese Auswertungen eben wiederholen. Damit du jeden Tag weißt wie ist der Stand? Sind wir auch, haben wir sehr viel Erfahrung drin und machen das auch regelmäßig. Ja, genau, ja. Ansonsten auch wenn Kunden schon ein System implementiert haben und Fragen haben oder sich überlegt haben, dieses und jenes Projekt könnte doch interessant für uns sein, dann können wir das gerne angucken und dann auch unsere Einschätzung dazu geben, wie das auszusehen oder ob wir vielleicht noch einen anderen Tipp auf Lager haben, dass man auch noch machen könnte oder wie.
Wie sich dieses Geschäft vielleicht einfacher erreichen lässt. Ja, das ist, würde ich sagen, ist unsere Stärke. Okay, da vielen Dank Masiar, vielen Dank für dich.
Ich danke dir Maurice. Du hast die ganze Zeit uns erklärt, was du ist. Fand ich super interessant. Ich bin ja eher sag mal der Dembowski ich. Ich kenne mich zwar mit der UP aus, aber jetzt nicht im Detail. Und es war super interessant.
Wenn unsere Leser oder Zuhörer, muss ich ja sagen, noch Feedback haben, dann können Sie das natürlich an Podcast Skillbyte senden. Wenn der Podcast gefallen hat, gerne einen je nach Kanal, Daumen hoch oder eine gute Bewertung hinterlassen. Das hilft uns und motiviert uns natürlich. Ansonsten kann der Podcast natürlich auch abonniert werden, oder die Zuhörer können auf Skillbyte Islands Blog vorbeischauen für weitere Infos zu diesem Thema. Und wir haben auch schon zum Thema Dub einen großen Blogpost. Den kann man dann einfach über die Suche finden.
Und da ist dann auch die Grafik, von der ich eben sprach, wo das Ganze doch mal visuell aufbereitet wird.
Wunderbar. Alles klar. Noch einen schönen Danke dir auch.
Bis dann. Ciao, ciao.