Auf welcher Hardware soll ein riesiger Informationsschacht analysiert werden?

    Wir sind Big Data bei MTS und dies ist unser erster Beitrag. Heute werden wir darüber sprechen, welche Technologien es uns ermöglichen, Big Data zu speichern und zu verarbeiten, damit immer genügend Ressourcen für Analysen zur Verfügung stehen und die Kosten für den Kauf von Eisen nicht in die luftige Ferne rücken.

    Sie dachten darüber nach, das Big Data Center bei MTS im Jahr 2014 einzurichten: Es bestand die Notwendigkeit, den klassischen analytischen Speicher und das BI-Reporting darüber zu skalieren. Zu dieser Zeit war die Datenverarbeitungs- und BI-Engine SAS - dies geschah historisch. Obwohl die Geschäftsanforderungen für Speicher geschlossen wurden, stieg die Funktionalität von BI- und Ad-hoc-Analysen über den analytischen Speicher hinaus mit der Zeit so stark an, dass das Problem der Produktivitätssteigerung gelöst werden musste, da sich die Anzahl der Benutzer im Laufe der Jahre verzehnfachte und weiter verzehnfachte.

    Als Ergebnis des Wettbewerbs erschien das Teradata MPP-System in MTS und deckte die Bedürfnisse der damaligen Telekommunikation ab. Dies war ein Anstoß, etwas populäreres und Open Source auszuprobieren.

    Bild

    Auf dem Foto das Big Data MTS-Team im neuen Descartes-Büro in Moskau,

    der erste Cluster bestand aus 7 Knoten. Dies war genug, um mehrere Geschäftshypothesen zu testen und die ersten Probleme zu lösen. Die Bemühungen waren nicht umsonst: Big Data gibt es in MTS seit drei Jahren, und jetzt ist die Datenanalyse in fast allen Funktionsbereichen involviert. Das Team wuchs von drei auf zweihundert.

    Wir wollten einfache Entwicklungsprozesse, schnell Hypothesen testen. Dazu benötigen Sie drei Dinge: ein Team mit Gründerdenken, leichten Entwicklungsprozessen und einer entwickelten Infrastruktur. Es gibt viele Orte, an denen Sie das erste und das zweite lesen und anhören können, aber es lohnt sich, die entwickelte Infrastruktur separat zu behandeln, da hier das Erbe und die Datenquellen, die sich in der Telekommunikation befinden, wichtig sind. Eine gut entwickelte Dateninfrastruktur besteht nicht nur aus einem Datensee, einer detaillierten Datenschicht und einer Storefront-Schicht. Dazu gehören auch Tools und Datenzugriffsschnittstellen, die Isolierung von Computerressourcen für Produkte und Befehle sowie Mechanismen zur Bereitstellung von Daten für Verbraucher - sowohl in Echtzeit als auch im Batch-Modus. Und vieles mehr.

    All diese Arbeiten haben sich in einem separaten Bereich abgesetzt, der sich mit der Entwicklung von Dienstprogrammen und Datentools befasst. Dieser Bereich wird als Big Data-IT-Plattform bezeichnet.

    Woher kommt Big Data in MTS?


    MTS hat viele Datenquellen. Eine der wichtigsten ist die Basisstation, mit der wir eine Kundenbasis von mehr als 78 Millionen Kunden in Russland bedienen. Wir haben auch viele Dienste, die nichts mit Telekommunikation zu tun haben und die es Ihnen ermöglichen, vielseitigere Daten zu erhalten (E-Commerce, Systemintegration, Internet der Dinge, Cloud-Dienste usw. - alle „Nicht-Telekommunikationsdienste“ machen bereits 20% des gesamten Umsatzes aus).

    Kurz gesagt, unsere Architektur kann als solches Diagramm dargestellt werden:

    Bild

    Wie Sie in der Grafik sehen können, können Datenquellen Informationen in Echtzeit liefern. Wir verwenden die Stream-Ebene - wir können Echtzeitinformationen verarbeiten, einige Ereignisse daraus extrahieren, die für uns von Interesse sind, und darauf Analysen aufbauen. Um eine solche Ereignisverarbeitung zu ermöglichen, haben wir eine aus architektonischer Sicht recht standardmäßige Implementierung mit Apache Kafka, Apache Spark und Code in der Sprache Scala entwickelt. Informationen, die als Ergebnis einer solchen Analyse erhalten werden, können sowohl innerhalb von MTS als auch in Zukunft außerhalb von MTS konsumiert werden: Unternehmen sind häufig an der Tatsache interessiert, dass bestimmte Aktionen von Abonnenten ausgeführt werden.

    Es gibt auch einen Modus zum Laden von Daten in Stapel - Stapelebene. Normalerweise erfolgt der Download stündlich nach einem Zeitplan, wir verwenden Apache Airflow als Planer und die Batch-Download-Prozesse selbst sind in Python implementiert. In diesem Fall wird eine erheblich größere Datenmenge in Data Lake geladen. Dies ist erforderlich, um Big Data mit historischen Daten zu füllen, auf die unsere Data Science-Modelle trainiert werden sollten. Infolgedessen wird das Profil des Abonnenten im historischen Kontext auf der Grundlage von Daten zu seiner Netzwerkaktivität erstellt. Auf diese Weise können wir Vorhersagestatistiken erstellen und Modelle des menschlichen Verhaltens erstellen, sogar ein psychologisches Porträt von ihm erstellen - wir haben ein solches separates Produkt. Diese Informationen sind beispielsweise für Marketingunternehmen sehr nützlich.

    Wir haben auch eine große Datenmenge, die das klassische Repository ausmacht. Das heißt, wir sammeln Informationen zu verschiedenen Ereignissen - sowohl zu Benutzern als auch zu Netzwerken. All diese anonymisierten Daten helfen auch dabei, die für das Unternehmen wichtigen Benutzerinteressen und -ereignisse genauer vorherzusagen - zum Beispiel um mögliche Geräteausfälle vorherzusagen und Probleme rechtzeitig zu beheben.

    Hadoop


    Wenn Sie in die Vergangenheit schauen und sich daran erinnern, wie große Datenmengen erschienen sind, sollte beachtet werden, dass die Datenanhäufung im Grunde genommen zu Marketingzwecken durchgeführt wurde. Es gibt keine so klare Definition von Big Data - Gigabyte, Terabyte, Petabyte. Es ist unmöglich, eine Linie zu ziehen. Für einige sind Big Data Dutzende von Gigabyte, für andere Petabyte.

    So kam es, dass sich im Laufe der Zeit weltweit viele Daten angesammelt haben. Und um eine mehr oder weniger aussagekräftige Analyse dieser Daten durchzuführen, reichten die seit den 70er Jahren des letzten Jahrhunderts üblichen Repositories nicht mehr aus. Als der Informationsschacht in den 2000er, 10er Jahren begann und als es viele Geräte gab, die über einen Internetzugang verfügten, als das Internet der Dinge auftauchte, waren diese Repositories konzeptionell einfach nicht zu bewältigen. Die Basis dieser Repositories war die relationale Theorie. Das heißt, es gab Beziehungen unterschiedlicher Formen, die miteinander interagierten. Es gab ein System zur Beschreibung des Aufbaus und des Entwurfs von Repositorys.

    Wenn alte Technologien versagen, erscheinen neue. In der modernen Welt wird das Problem der Big Data-Analyse auf zwei Arten gelöst:

    Erstellen Sie Ihr eigenes Framework, mit dem Sie große Informationsmengen verarbeiten können. In der Regel handelt es sich hierbei um eine verteilte Anwendung von mehreren hunderttausend Servern - wie Google oder Yandex -, die eigene verteilte Datenbanken erstellt haben, mit denen Sie mit einem solchen Informationsvolumen arbeiten können.

    Die Entwicklung der Hadoop-Technologie ist ein verteiltes Computerframework, ein verteiltes Dateisystem, das eine sehr große Menge an Informationen speichern und verarbeiten kann. Data Science-Tools sind hauptsächlich mit Hadoop kompatibel. Diese Kompatibilität eröffnet viele Möglichkeiten für erweiterte Datenanalysen. Viele Unternehmen, einschließlich uns, bewegen sich auf das Open-Source-Hadoop-Ökosystem zu.

    Der zentrale Hadoop-Cluster befindet sich in Nischni Nowgorod. Es sammelt Informationen aus fast allen Regionen des Landes. In Bezug auf das Datenvolumen können dort jetzt ca. 8,5 Petabyte heruntergeladen werden. Auch in Moskau haben wir separate RND-Cluster, in denen wir Experimente durchführen.

    Da wir über ungefähr tausend Server in verschiedenen Regionen verfügen, auf denen wir Analysen durchführen, und eine Erweiterung geplant ist, stellt sich die Frage nach der richtigen Auswahl der Ausrüstung für verteilte Analysesysteme. Sie können Geräte kaufen, die für die Datenspeicherung ausreichen, sich jedoch für die Analyse als ungeeignet erweisen - einfach, weil nicht genügend Ressourcen, die Anzahl der CPU-Kerne und der freie Arbeitsspeicher auf den Knoten vorhanden sind. Es ist wichtig, ein Gleichgewicht zu finden, um gute Analysemöglichkeiten und nicht sehr hohe Gerätekosten zu erzielen.

    Intel bot uns verschiedene Möglichkeiten zur Optimierung der Arbeit mit einem verteilten System an, damit Analysen in unserem Datenvolumen zu einem vernünftigen Preis erzielt werden können. Intel entwickelt NAND-SSD-Solid-State-Laufwerkstechnologie weiter Es ist hunderte Male schneller als eine normale Festplatte. Dann ist es gut für uns: SSD, insbesondere mit NVMe-Schnittstelle, bietet ausreichend schnellen Zugriff auf Daten.

    Außerdem hat Intel Solid State Drives für Intel Optane SSD-Server auf Basis des neuen Typs nichtflüchtiger Speicher Intel 3D XPoint herausgebracht. Sie bewältigen intensive gemischte Belastungen des Speichersystems und haben eine längere Ressource als normale NAND-SSDs. Warum ist es gut für uns: Mit Intel Optane SSD können Sie unter hoher Last mit geringer Latenz stabil arbeiten. Wir sahen die NAND-SSD zunächst als Ersatz für herkömmliche Festplatten an, da zwischen Festplatte und RAM sehr viele Daten übertragen werden - und wir mussten diese Prozesse optimieren.

    Erster Test


    Der erste Test, den wir 2016 durchgeführt haben. Wir haben gerade versucht, die Festplatte durch eine schnelle NAND-SSD zu ersetzen. Dazu haben wir Muster des neuen Intel-Laufwerks bestellt - damals war es DC P3700. Und sie führten den Standardtest von Hadoop durch - ein Ökosystem, mit dem Sie bewerten können, wie sich die Leistung unter verschiedenen Bedingungen ändert. Dies sind die standardisierten Tests TeraGen, TeraSort, TeraValidate.

    Bild

    Mit TeraGen können Sie künstliche Daten eines bestimmten Volumens "erzeugen". Zum Beispiel nahmen wir 1 GB und 1 TB. Mit TeraSort haben wir diese Datenmenge in Hadoop sortiert. Dies ist eine ziemlich ressourcenintensive Operation. Und der letzte Test - TeraValidate - stellt sicher, dass die Daten in der richtigen Reihenfolge sortiert sind. Das heißt, wir gehen sie ein zweites Mal durch.

    Bild

    Als Experiment nahmen wir Autos nur mit SSDs - das heißt, Hadoop wurde nur auf SSDs ohne Verwendung von Festplatten installiert. In der zweiten Version verwendeten wir SSD zum Speichern temporärer Dateien, HDD zum Speichern grundlegender Daten. In der dritten Version wurden Festplatten für beide verwendet.

    Die Ergebnisse dieser Experimente waren für uns nicht sehr erfreulich, da der Unterschied in den Leistungsindikatoren 10-20% nicht überschritt. Das heißt, wir haben festgestellt, dass Hadoop hinsichtlich des Speichers nicht sehr speicherfreundlich mit SSDs ist, da das System ursprünglich zum Speichern großer Datenmengen auf der Festplatte entwickelt wurde und niemand es speziell für schnelle und teure SSDs optimiert hat. Und da die Kosten für SSD zu dieser Zeit ziemlich hoch waren, haben wir uns bisher entschieden, nicht auf diese Geschichte einzugehen und mit Festplatten auszukommen.

    Zweiter Test


    Dann führte Intel einen neuen Server ein, Intel Optane SSD basierend auf 3D XPoint Memory. Sie wurden Ende 2017 veröffentlicht, aber Muster standen uns früher zur Verfügung. Mit den 3D XPoint-Speicherfunktionen können Sie die Intel Optane SSD als RAM-Erweiterung in Servern verwenden. Da wir bereits festgestellt haben, dass es nicht einfach ist, das IO Hadoop-Leistungsproblem auf der Ebene der Blockspeichergeräte zu lösen, haben wir uns für eine neue Option entschieden - die Erweiterung des Arbeitsspeichers mithilfe der Intel Memory Drive Technology (IMDT). Und zu Beginn dieses Jahres haben wir es als einer der Ersten auf der Welt getestet.

    Dann ist es gut für uns: Es ist billiger als RAM, mit dem Sie Server mit Terabyte RAM sammeln können. Und da der Arbeitsspeicher schnell genug ist, können Sie große Datenmengen darin laden und analysieren. Lassen Sie mich daran erinnern, dass die Besonderheit unseres Analyseprozesses darin besteht, dass wir mehrmals auf Daten zugreifen. Um irgendeine Art von Analyse durchzuführen, müssen wir so viele Daten wie möglich in den Speicher laden und eine Art Analyse dieser Daten mehrmals "scrollen".
    Das englische Intel-Labor in Swindon hat uns einen Cluster von drei Servern zugewiesen, die wir während der Tests mit unserem Testcluster in MTS verglichen haben.

    Bild

    Wie aus der Grafik ersichtlich ist, haben wir gemäß den Testergebnissen recht gute Ergebnisse erzielt.

    Bild

    Mit TeraValidate konnte die Produktivität von TeraGen um fast das Doppelte gesteigert werden - und zwar um 75%. Das ist sehr gut für uns, weil wir, wie gesagt, mehrmals auf die Daten zugreifen, die wir in unserem Speicher haben. Wenn wir einen solchen Leistungsgewinn erzielen, hilft uns dies insbesondere bei der Datenanalyse, insbesondere in Echtzeit.

    Wir haben drei Tests unter verschiedenen Bedingungen durchgeführt. 100 GB, 250 GB und 500 GB. Und je mehr Speicher wir nutzten, desto besser schnitt die Intel Optane SSD mit Intel Memory Drive-Technologie ab. Das heißt, je mehr Daten wir analysieren, desto effizienter werden wir. Analysen, die auf mehreren Knoten durchgeführt wurden, können auf weniger von ihnen durchgeführt werden. Außerdem verfügen unsere Computer über einen relativ großen Arbeitsspeicher, der für Data Science-Aufgaben sehr gut geeignet ist. Aufgrund der Testergebnisse haben wir uns entschlossen, diese Laufwerke für die Arbeit bei MTS zu erwerben.

    Wenn Sie auch Hardware zum Speichern und Verarbeiten einer großen Datenmenge auswählen und testen mussten, sind wir interessiert zu lesen, auf welche Schwierigkeiten Sie gestoßen sind und zu welchen Ergebnissen Sie gekommen sind: Schreiben Sie in die Kommentare.

    
Autoren:
    Grigory Koval ,
    Leiter des Kompetenzzentrums für angewandte Architektur der Big Data- Abteilung von MTS, grigory_koval Dmitry Shostko, Leiter der Datenmanagement-Abteilung der Big Data-Abteilung von MTS, zloi_diman

    Jetzt auch beliebt: