Was ist besonders an Cloudera und wie man sie zubereitet

Der Markt für verteiltes Rechnen und Big Data wächst, wenn man denn glaubt Statistik, um 18-19 % pro Jahr. Das bedeutet, die Wahl der Software für diese Zwecke bleibt aktuell. In diesem Beitrag beginnen wir damit, warum verteiltes Rechnen benötigt wird, vertiefen die Wahl der Software, erläutern die Anwendung von Hadoop mit Cloudera und sprechen schließlich über die Wahl der Hardware und wie diese auf verschiedene Weise die Leistung beeinflusst.

Was ist besonders an Cloudera und wie man sie zubereitet
Warum ist verteiltes Rechnen im normalen Geschäft wichtig? Hier ist alles gleichzeitig einfach und komplex. Einfach – weil wir in den meisten Fällen relativ unkomplizierte Berechnungen pro Informationseinheit durchführen. Komplex – weil es viele solcher Informationen gibt. Sehr viele. Infolgedessen müssen wir Terabytes von Daten in 1000 Streams verarbeiten. Damit sind die Nutzungsszenarien ziemlich universell: Berechnungen können überall dort angewendet werden, wo eine große Anzahl von Metriken auf einem noch größeren Datenvolumen berücksichtigt werden muss.

Ein Beispiel aus der letzten Zeit: Die Pizzakette Dodo Pizza hat festgestellt , dass basierend auf der Analyse der Auftragsdaten der Kunden bei der Auswahl einer Pizza mit beliebigem Belag die Nutzer in der Regel nur mit sechs grundlegenden Zutaten-Sets plus ein paar Zufälligen arbeiten. In Übereinstimmung damit hat die Pizzakette ihre Einkaufsstrategien angepasst. Darüber hinaus konnte sie den Nutzern besser ergänzende Produkte anbieten, die während des Bestellvorgangs angeboten werden, was die Gewinne erhöht hat.

Ein weiteres Beispiel: 13. Alles liegt in Ihren Händen… die Reduzierung der Produktpalette ermöglichte es dem Geschäft H&M, das Sortiment in bestimmten Filialen um 40 % zu verkleinern und gleichzeitig die Verkaufszahlen aufrechtzuerhalten. Dies gelang, indem schlecht verkaufte Artikel ausgeschlossen wurden, wobei die Saisonalität berücksichtigt wurde.

Die Wahl des Werkzeugs

Der Branchenstandard für derartige Berechnungen ist Hadoop. Warum? Weil Hadoop ein hervorragendes, gut dokumentiertes Framework ist (der gleiche Habr veröffentlicht zahlreiche detaillierte Artikel zu diesem Thema), das mit einer ganzen Reihe von Dienstprogrammen und Bibliotheken einhergeht. Sie können riesige Mengen sowohl strukturierter als auch unstrukturierter Daten einspeisen, und das System wird diese automatisch auf die Rechenkapazitäten verteilen. Diese Kapazitäten können jederzeit erhöht oder abgeschaltet werden – die horizontale Skalierbarkeit ist hier in Aktion.

Im Jahr 2017 erklärte das einflussreiche Beratungsunternehmen Gartner Vor kurzem feierte der größte chinesische OEM- und ODM-Hersteller vielfältiger Flash-Laufwerke, die Firma Longsys, feierlich ihr 20-jähriges Bestehen., dass Hadoop bald obsolet sein wird. Der Grund ist ziemlich banal: Die Analysten glauben, dass Unternehmen massenhaft in die Cloud migrieren werden, da sie dort nach tatsächlichem Verbrauch der Rechenleistung bezahlen können. Ein zweiter wichtiger Faktor, der angeblich in der Lage ist, Hadoop zu „begraben“, ist die Geschwindigkeit. Denn Alternativen wie Apache Spark oder Google Cloud DataFlow arbeiten schneller als das zugrunde liegende MapReduce von Hadoop.

Hadoop ruht auf mehreren Säulen, von denen die bemerkenswertesten die MapReduce-Technologie (ein System zur Verteilung von Daten für Berechnungen zwischen Servern) und das Dateisystem HDFS sind. Letzteres ist speziell dafür konzipiert, Informationen, die auf die Knoten eines Clusters verteilt sind, zu speichern: Jeder Block fester Größe kann auf mehreren Knoten abgelegt werden, und durch die Replikation wird die Zuverlässigkeit des Systems bei Ausfällen einzelner Knoten gewährleistet. Anstelle einer Datei wird ein spezieller Server, der NameNode genannt wird, verwendet.

In der untenstehenden Abbildung wird das Schema der Arbeit von MapReduce dargestellt. In der ersten Phase werden die Daten nach bestimmten Kriterien aufgeteilt, in der zweiten werden sie auf die Rechenressourcen verteilt, und in der dritten erfolgt die Berechnung.

Was ist besonders an Cloudera und wie man sie zubereitet
Ursprünglich wurde MapReduce von Google für die Bedürfnisse seiner Suchmaschine entwickelt. Dann wurde MapReduce Open Source, und das Projekt wurde von Apache übernommen. Google migrierte jedoch allmählich zu anderen Lösungen. Ein interessanter Aspekt: Momentan hat Google ein Projekt namens Google Cloud Dataflow, das als der nächste Schritt nach Hadoop positioniert wird, als dessen schnelle Alternative.

Bei näherer Betrachtung wird deutlich, dass Google Cloud Dataflow auf einer Variante von Apache Beam basiert, wobei Apache Beam ein gut dokumentiertes Framework namens Apache Spark enthält, was man sagen kann, dass nahezu die gleiche Geschwindigkeit bei der Ausführung von Lösungen erzielt wird. Außerdem funktioniert Apache Spark hervorragend mit dem HDFS-Dateisystem, was es ermöglicht, es auf Hadoop-Servern einzusetzen.

Wenn wir hier das Volumen der Dokumentation und fertigen Lösungen für Hadoop und Spark im Vergleich zu Google Cloud Dataflow hinzufügen, wird die Wahl des Werkzeugs offensichtlich. Darüber hinaus können Ingenieure selbst entscheiden, welchen Code – für Hadoop oder Spark – sie ausführen möchten, abhängig von der Aufgabe, der Erfahrung und der Qualifikation.

Cloud oder lokaler Server

Der Trend zur umfassenden Cloud-Nutzung hat sogar einen interessanten Begriff wie Hadoop-as-a-Service hervorgebracht. In einem solchen Szenario wurde die Verwaltung der angeschlossenen Server sehr wichtig. Denn leider ist reines Hadoop trotz seiner Beliebtheit ein ziemlich komplexes Tool, das schwer einzurichten ist, da vieles manuell erledigt werden muss. Zum Beispiel müssen Server einzeln konfiguriert, ihre Leistungskennzahlen überwacht und zahlreiche Parameter sorgfältig eingestellt werden. Insgesamt ist es eine Angelegenheit für Liebhaber und es besteht eine große Chance, dass man irgendwo etwas vermasselt oder etwas übersieht.

Deshalb sind verschiedene Distributionen sehr beliebt geworden, die ursprünglich mit bequemen Bereitstellungs- und Verwaltungswerkzeugen ausgestattet sind. Eine der beliebtesten Distributionen, die Spark unterstützt und alles vereinfacht, ist Cloudera. Es gibt sowohl kostenpflichtige als auch kostenlose Versionen – und in letzterer ist die gesamte grundlegende Funktionalität verfügbar, ohne Begrenzung der Anzahl der Knoten.

Was ist besonders an Cloudera und wie man sie zubereitet

Während der Einrichtung wird Cloudera Manager per SSH eine Verbindung zu Ihren Servern herstellen. Ein interessanter Punkt: Bei der Installation ist es besser anzugeben, dass sie mit sogenannten Parcels: speziellen Paketen, in denen alle benötigten Komponenten enthalten sind, die für die Zusammenarbeit optimiert sind, durchgeführt werden sollte. Im Grunde genommen ist dies eine verbesserte Version eines Paketmanagers.

Nach der Installation erhalten wir eine Verwaltungsoberfläche für das Cluster, auf der man die Telemetrie zu den Clustern, installierten Services sehen kann, außerdem können Sie Ressourcen hinzufügen/entfernen und die Clusterkonfiguration bearbeiten.

Was ist besonders an Cloudera und wie man sie zubereitet

Infolgedessen steht Ihnen der Schnitt dieser Rakete zur Verfügung, die Sie in eine strahlende Zukunft der Big Data bringen wird. Aber bevor wir "Losfahren" sagen, lassen Sie uns unter die Haube schauen.

Anforderungen an die Hardware

Auf seiner Website erwähnt Cloudera verschiedene mögliche Konfigurationen. Die allgemeinen Prinzipien, nach denen sie aufgebaut sind, sind in der Abbildung dargestellt:

Was ist besonders an Cloudera und wie man sie zubereitet
MapReduce kann dieses optimistische Bild trüben. Wenn man sich das Diagramm aus dem vorherigen Abschnitt erneut ansieht, wird offensichtlich, dass der MapReduce-Job in fast allen Fällen auf ein „Engpass“-Problem stoßen kann, wenn Daten von der Festplatte oder aus dem Netzwerk gelesen werden. Dies wird auch im Cloudera-Blog erwähnt. Daher ist bei schnellen Berechnungen, einschließlich über Spark, das häufig für Echtzeitberechnungen genutzt wird, die Geschwindigkeit der Ein- und Ausgabe von entscheidender Bedeutung. Deshalb ist es bei der Verwendung von Hadoop sehr wichtig, dass das Cluster ausgeglichene und schnelle Maschinen erhält, was, gelinde gesagt, in der Cloud-Infrastruktur nicht immer gewährleistet ist.

Die Ausgewogenheit bei der Verteilung der Lasten wird durch die Nutzung der OpenStack-Virtualisierung auf Servern mit leistungsstarken Mehrkern-CPUs erreicht. Den Datenknoten werden spezifische Prozessorkapazitäten und bestimmte Festplatten zugewiesen. In unserer Lösung Atos Codex Data Lake Engine erreicht eine umfassende Virtualisierung, wodurch wir sowohl in Bezug auf die Leistung (der Einfluss der Netzwerkstruktur wird minimiert) als auch auf TCO (überflüssige physische Server werden ausgeschlossen) profitieren.

Was ist besonders an Cloudera und wie man sie zubereitet
Bei der Verwendung von BullSequana S200-Servern erhalten wir eine sehr gleichmäßige Auslastung, die von einzelnen Engpässen befreit ist. In die Minimal-Konfiguration werden 3 BullSequana S200-Server integriert, jeder mit zwei JBOD, und optional können zusätzliche S200-Server angeschlossen werden, die jeweils vier Datenknoten enthalten. Hier ist ein Beispiel für die Last im TeraGen-Test:

Was ist besonders an Cloudera und wie man sie zubereitet

Tests mit verschiedenen Datenmengen und Replikationswerten zeigen in Bezug auf die Lastverteilung zwischen den Clusterknoten identische Ergebnisse. Im Folgenden ist ein Diagramm zur Verteilung des Zugriffs auf die Festplatte basierend auf den Leistungstests dargestellt.

Was ist besonders an Cloudera und wie man sie zubereitet

Die Berechnungen wurden auf der Grundlage der Minimal-Konfiguration von 3 BullSequana S200-Servern durchgeführt. Diese umfasst 9 Datenknoten und 3 Master-Knoten sowie reservierte virtuelle Maschinen für den Fall, dass der Schutz auf Basis von OpenStack Virtualization implementiert wird. Das Ergebnis des TeraSort-Tests: Blockgröße von 512 MB bei einem Replikationsfaktor von drei mit Verschlüsselung beträgt 23,1 Minuten.

Wie kann das System erweitert werden? Für die Data Lake Engine stehen verschiedene Erweiterungsarten zur Verfügung:

  • Datenübertragungs-Knoten: für je 40 TB nützlichen Speicherplatz
  • Analytische Knoten mit der Möglichkeit zur Installation einer Grafikkarte
  • Andere Optionen je nach den Geschäftsanforderungen (zum Beispiel, wenn Kafka und Ähnliches benötigt wird)

Was ist besonders an Cloudera und wie man sie zubereitet

Das Atos Codex Data Lake Engine umfasst sowohl die Server als auch die vorinstallierte Software, einschließlich des Cloudera-Pakets mit Lizenz; Hadoop selbst, OpenStack mit virtuellen Maschinen auf Basis von RedHat Enterprise Linux, Datensicherungs- und Replikationssysteme (einschließlich über die Backup-Node und Cloudera BDR — Backup und Disaster Recovery). Atos Codex Data Lake Engine war die erste Lösung mit Virtualisierung, die zertifiziert wurde. Cloudera.

Wenn Sie weitere Details benötigen, beantworten wir gerne Ihre Fragen in den Kommentaren.

Quelle: habr.com

60GB SSD 8Gb DDR4