Apache Spark für Amazon EMR

Warum Apache Spark auf EMR?

Amazon EMR ist die beste Lösung für die Ausführung von Apache Spark. Sie können verwaltete Spark-Cluster schnell und einfach von der AWS-Managementkonsole, AWS-CLI oder der Amazon-EMR-API aus erstellen. Außerdem können Sie zusätzliche Amazon EMR-Funktionen nutzen, wie etwa eine schnelle Amazon-S3-Konnektivität mittels Amazon EMR File System (EMRFS), die Integration in den Amazon-EC2-Spot-Markt und den AWS-Glue-Datenkatalog sowie EMR Managed Scaling, um Ihrem Cluster auf einfache Weise Instances hinzuzufügen bzw. sie daraus zu entfernen. AWS Lake Formation bietet eine detaillierte Zugriffskontrolle, während die Integration mit AWS Step Functions bei der Orchestrierung Ihrer Daten-Pipelines hilft. EMR Studio (Vorschau) ist eine integrierte Entwicklungsumgebung (IDE), mit der Datenwissenschaftler und Dateningenieure auf einfache Weise in R, Python, Scala und PySpark geschriebene Data-Engineering- und Data-Science-Anwendungen entwickeln, visualisieren und debuggen können. EMR Studio bietet vollständig verwaltete Jupyter Notebooks und Tools wie Spark UI und YARN Timeline Service, um das Debugging zu vereinfachen. EMR-Notebooks machen es Ihnen leicht, mit Spark zu experimentieren und Anwendungen zu erstellen. Sie können auch Apache Zeppelin zum Erstellen interaktiver und kollaborativer Notebooks für die Datenexploration mit Spark nutzen.

Weitere Informationen über Apache Spark erhalten Sie hier

Features und Vorteile

EMR bietet eine Amazon EMR-Laufzeit für Apache Spark, eine leistungsoptimierte Laufzeitumgebung für Apache Spark, die standardmäßig in Amazon EMR-Clustern aktiv ist. Die Amazon EMR-Laufzeit für Apache Spark kann mehr als dreimal schneller sein als Cluster ohne EMR-Laufzeit und ist zu 100 % API-kompatibel mit Standard-Apache Spark. Diese verbesserte Leistung bedeutet, dass Ihre Workloads schneller ablaufen und Sie Kosten sparen, ohne Änderungen an Ihren Anwendungen vornehmen zu müssen.

Durch die Verwendung einer DAG-Ausführungs-Engine (gerichteter, azyklischer Graph) können mit Spark effiziente Abfragepläne für Datentransformationen erstellt werden. Spark speichert außerdem Eingabe-, Ausgabe- und Zwischendaten im Arbeitsspeicher robuste Daten-Frames, wodurch eine schnelle Verarbeitung ohne E/A-Kosten möglich wird, durch die die Performance iterativer oder interaktiver Workloads gesteigert werden kann.

Apache Spark unterstützt nativ Java, Scala SQL und Python, sodass Ihnen eine Reihe von Sprachen zur Verfügung stehen, um Ihre Anwendungen zu erstellen. Außerdem können Sie mit dem Spark-SQL-Modul SQL- oder HiveQL-Abfragen senden. Zusätzlich zum Ausführen von Anwendungen können Sie die Spark-API interaktiv mit Python oder Scala direkt in der Spark-Shell, über EMR Studio oder über Jupyter Notebooks in Ihrem Cluster verwenden. Die Unterstützung für Apache Hadoop 3.0 in EMR 6.0 ermöglicht Docker-Container-Unterstützung, um die Verwaltung von Abhängigkeiten zu vereinfachen. Des Weiteren können Sie Cluster-unabhängige EMR-Notebooks (basierend auf Jupyter) oder Zeppelin zum Erstellen interaktiver und kollaborativer Notebooks für die Datenexploration und -visualisierung verwenden. Sie können Ihre Workloads in der EMR-Konsole einstellen und debuggen. Die EMR-Konsole verfügt über einen nicht geclusterten, persistenten Spark History Server.

Apache Spark umfasst mehrere Bibliotheken, die Sie beim Erstellen von Anwendungen für Machine Learning (MLlib), Stream-Verarbeitung (Spark Streaming) und Graph-Verarbeitung (GraphX) unterstützen. Diese Bibliotheken sind umfassend in das Spark-System integriert und können sofort für eine Vielzahl von Anwendungsfällen genutzt werden. Zudem können Sie Deep-Learning-Frameworks wie Apache MXNet mit Ihren Sparks-Anwendungen verwenden. Die Integration mit den AWS Step Functions ermöglicht es Ihnen, Ihren Anwendungen eine Serverless-Workflow-Automatisierung und Orchestrierung hinzuzufügen.

Übermitteln Sie Apache-Spark-Aufträge mit der EMR-Step-API, verwenden Sie Spark mit EMRFS, um direkt auf Daten in S3 zuzugreifen, sparen Sie Kosten durch die Verwendung von EC2-Spot-Kapazität, fügen Sie mit vollständig verwaltetem EMR Managed Scaling dynamisch Kapazität hinzu und entfernen Sie sie wieder, und nutzen Sie je nach Workload lang- oder kurzlebige Cluster. Die Spark-Verschlüsselung und Kerberos-Authentifizierung können Sie außerdem problemlos mithilfe einer EMR-Sicherheitskonfiguration konfigurieren. Zusätzlich können Sie den AWS-Glue-Datenkatalog verwenden, um Spark-SQL-Tabellenmetadaten zu speichern, oder Sie können Amazon SageMaker mit Ihren Spark-Machine-Learning-Pipelines verwenden. EMR installiert und verwaltet Spark für Hadoop YARN; und Sie können zusätzlich andere Big-Data-Anwendungen zu Ihrem Cluster hinzufügen. EMR mit Apache Hudi ermöglicht Ihnen eine effizientere Verwaltung der Änderungsdatenerfassung (Change Data Capture, CDC) und hilft bei Datenschutzbestimmungen wie DSGVO und CCPA, indem es das Löschen von Datensätzen vereinfacht. Klicken Sie hier, um weitere Informationen zu den Funktionen von EMR zu erhalten.

Anwendungsfälle

Verwenden und verarbeiten Sie Echtzeitdaten von Amazon Kinesis, Apache Kafka oder anderen Daten-Streams mit Spark Streaming für Amazon EMR. Führen Sie fehlertolerante Streaming-Analysen durch und schreiben Sie die Ergebnisse in S3 oder HDFS im Cluster.

Apache Spark für EMR umfasst MLlib für zahlreiche skalierbare Algorithmen für Machine Learning. Alternativ können Sie Ihre eigenen Bibliotheken verwenden. Spark bietet durch die Speicherung von Datensätzen im Arbeitsspeicher während eines Jobs eine hohe Performance bei iterativen Abfragen, die bei Workloads für maschinelles Lernen häufig vorkommen. Sie können die Funktionen von Amazon SageMaker erweitern, indem Sie die Notebook-Instance an einen Apache Spark-Cluster anschließen, der auf Amazon EMR ausgeführt wird, wobei Amazon SageMaker für einfaches Training und Hosten von Modellen sorgt.

Verwenden Sie Spark SQL für interaktive Abfragen mit niedriger Latenz mit SQL oder HiveQL. Spark für EMR kann EMRFS nutzen, sodass Sie Ad-hoc-Zugriff auf Ihre Datensätze in S3 erhalten. Außerdem können Sie EMR Studio, EMR-Notebooks, Zeppelin-Notebooks oder BI-Tools über ODBC- und JDBC-Verbindungen nutzen.

Kundenerfolgsgeschichten

  • Yelp

    Das Team für gezielte Werbung von Yelp erstellt Prognosemodelle, um die Wahrscheinlichkeit zu ermitteln, mit der ein Benutzer auf eine Werbung reagiert. Durch die Verwendung von Apache Spark zusammen mit Amazon EMR zum Verarbeiten großer Datenmengen, um Modelle für maschinelles Lernen zu trainieren, konnte Yelp den Umsatz steigern und die Klickraten bei Anzeigen verbessern.

  • The Washington Post

    Die Washington Post verwendet Apache Spark zusammen mit Amazon EMR, um Modelle zu erstellen, die die Empfehlungs-Engine der Website unterstützen, um die Verbundenheit und Zufriedenheit der Leser zu verbessern. Die Zeitung verwendet die performante Konnektivität von Amazon EMR mit Amazon S3 zum Aktualisieren von Modellen nahezu in Echtzeit.

  • Krux

    Krux verwendet Apache Spark als Teil der eigenen Datenverwaltungsplattform für Kundeneinblicke, um zahlreiche Workloads für Machine Learning und allgemeine Verarbeitung auszuführen. Krux verwendet kurzlebige Amazon-EMR-Cluster mit Amazon EC2 Spot Capacity, um Kosten zu sparen, und verwendet Amazon S3 mit EMRFS als Daten-Layer für Apache Spark.

    Weitere Informationen »
  • GumGum

    GumGum, eine Plattform für bild- und bildschirmintegrierte Werbung, verwendet Spark zusammen mit Amazon EMR zur Prognose des Inventars, der Verarbeitung von Click-Stream-Protokollen und der Ad-hoc-Analyse unstrukturierter Daten in Amazon S3. Die Performance-Verbesserungen durch Spark ermöglichten es GumGum, bei diesen Workflows Zeit und Geld zu sparen.

    Weitere Informationen »
  • Hearst Corporation

    Hearst Corporation, ein großes, breit aufgestelltes Medien- und Informationsunternehmen, hat Kunden, die Inhalte auf über 200 Internetpräsenzen ansehen. Mithilfe von Apache Spark Streaming zusammen mit Amazon EMR kann das Redaktionsteam von Hearst in Echtzeit verfolgen, welche Artikel gut ankommen und welche Themen im Trend liegen.

    Weitere Informationen »
  • CrowdStrike

    CrowdStrike bietet Schutz für Endgeräte, um Übergriffe zu vermeiden. Das Unternehmen verwendet Amazon EMR zusammen mit Spark, um mehrere Hundert Terabytes an Ereignisdaten zu verarbeiten und diese in Verhaltensbeschreibungen auf höherer Ebene auf den Hosts bereitzustellen. Anhand dieser Daten kann CrowdStrike Ereignisdaten zusammenfassen und bösartige Aktivitäten ermitteln.

    Weitere Informationen »