Verbinden Sie Amazon EMR und RStudio auf Amazon SageMaker

Verbinden Sie Amazon EMR und RStudio auf Amazon SageMaker

RStudio auf Amazon SageMaker ist die branchenweit erste vollständig verwaltete integrierte Entwicklungsumgebung (IDE) RStudio Workbench in der Cloud. Sie können die vertraute RStudio-IDE schnell starten und die zugrunde liegenden Rechenressourcen hoch- und herunterwählen, ohne Ihre Arbeit zu unterbrechen, wodurch es einfach wird, Lösungen für maschinelles Lernen (ML) und Analysen in R in großem Maßstab zu erstellen.

In Verbindung mit Tools wie RStudio auf SageMaker analysieren, transformieren und bereiten Benutzer große Datenmengen als Teil des Data Science- und ML-Workflows vor. Data Scientists und Data Engineers verwenden Apache Spark, Hive und Presto, die ausgeführt werden Amazon EMR für umfangreiche Datenverarbeitung. Durch die gemeinsame Verwendung von RStudio auf SageMaker und Amazon EMR können Sie weiterhin die RStudio-IDE für Analysen und Entwicklungen verwenden, während Sie von Amazon EMR verwaltete Cluster für umfangreichere Datenverarbeitung verwenden.

In diesem Beitrag zeigen wir, wie Sie Ihre RStudio-on-SageMaker-Domäne mit einem EMR-Cluster verbinden können.

Lösungsüberblick

Wir verwenden eine Apache Livy Verbindung zu übermitteln a funkelnd Job von RStudio auf SageMaker zu einem EMR-Cluster. Dies wird im folgenden Diagramm demonstriert.

Umfang der Lösung
Der gesamte in der Post gezeigte Code ist in unserem verfügbar GitHub-Repository. Wir implementieren die folgende Lösungsarchitektur.

Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Voraussetzungen:

Stellen Sie vor dem Bereitstellen von Ressourcen sicher, dass Sie alle Anforderungen zum Einrichten und Verwenden von RStudio auf SageMaker und Amazon EMR erfüllen:

Wir erstellen auch ein benutzerdefiniertes RStudio-on-SageMaker-Image, stellen Sie also sicher, dass Docker ausgeführt wird und alle erforderlichen Berechtigungen vorhanden sind. Weitere Informationen finden Sie unter Verwenden Sie ein benutzerdefiniertes Image, um Ihre eigene Entwicklungsumgebung zu RStudio auf Amazon SageMaker zu bringen.

Erstellen Sie Ressourcen mit AWS CloudFormation

Wir verwenden eine AWS CloudFormation Stack, um die erforderliche Infrastruktur zu generieren.

Wenn Sie bereits über eine RStudio-Domäne und einen vorhandenen EMR-Cluster verfügen, können Sie diesen Schritt überspringen und mit der Erstellung Ihres benutzerdefinierten RStudio-Image auf SageMaker beginnen. Ersetzen Sie die Informationen Ihres EMR-Clusters und Ihrer RStudio-Domäne anstelle des EMR-Clusters und der RStudio-Domäne, die in diesem Abschnitt erstellt wurden.

Durch das Starten dieses Stapels werden die folgenden Ressourcen erstellt:

  • Zwei private Subnetze
  • EMR-Spark-Cluster
  • AWS-Kleber Datenbank und Tabellen
  • SageMaker-Domäne mit RStudio
  • SageMaker RStudio-Benutzerprofil
  • IAM-Dienstrolle für die SageMaker RStudio-Domäne
  • IAM-Dienstrolle für das Benutzerprofil SageMaker RStudio

Führen Sie die folgenden Schritte aus, um Ihre Ressourcen zu erstellen:

Auswählen Stack starten um den Stapel zu erstellen.

Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

  1. Auf dem Stapel erstellen Seite wählen Weiter.
  2. Auf dem Geben Sie die Stapeldetails an Seite, geben Sie einen Namen für Ihren Stack ein und belassen Sie die verbleibenden Optionen als Standard. Wählen Sie dann aus Weiter.
  3. Auf dem Konfigurieren Sie die Stapeloptionen Seite, belassen Sie die Optionen als Standard und wählen Sie Weiter.
  4. Auf dem BewertungsseiteWählen
  5. Ich erkenne an, dass AWS CloudFormation möglicherweise IAM-Ressourcen mit benutzerdefinierten Namen erstellt und
  6. Ich erkenne an, dass AWS CloudFormation möglicherweise die folgenden Funktionen erfordert: CAPABILITY_AUTO_EXPAND.
  7. Auswählen Stapel erstellen.

Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Die Vorlage generiert fünf Stapel.

Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Um den erstellten EMR Spark-Cluster anzuzeigen, navigieren Sie zur Amazon EMR-Konsole. Sie sehen einen für Sie erstellten Cluster mit dem Namen sagemaker. Dies ist der Cluster, mit dem wir uns über RStudio auf SageMaker verbinden.

Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Erstellen Sie das benutzerdefinierte RStudio on SageMaker-Image

Wir haben ein benutzerdefiniertes Image erstellt, das alle Abhängigkeiten von Sparklyr installiert und eine Verbindung zu dem von uns erstellten EMR-Cluster herstellt.

Wenn Sie Ihren eigenen EMR-Cluster und Ihre eigene RStudio-Domäne verwenden, ändern Sie die Skripts entsprechend.

Stellen Sie sicher, dass Docker ausgeführt wird. Beginnen Sie damit, in unser Projekt-Repository zu gelangen:

cd sagemaker-rstudio-emr/sparklyr-image
./build-r-image.sh

Wir werden jetzt das Docker-Image erstellen und es in unserer RStudio-on-SageMaker-Domäne registrieren.

  1. Wählen Sie in der SageMaker-Konsole Domains im Navigationsbereich.
  2. Wählen Sie die Domäne select rstudio-domain.
  3. Auf dem Arbeitsumfeld Tab, wählen Sie Bild anhängen.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
    Jetzt fügen wir das Sparklyr-Image, das wir zuvor erstellt haben, an die Domain an.
  4. Aussichten für Bildquelle auswählenWählen Vorhandenes Bild.
  5. Wählen Sie das von uns erstellte Sparklyr-Bild aus.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  6. Aussichten für Bildeigenschaften, belassen Sie die Optionen als Standard.
  7. Aussichten für BildtypWählen RStudio-Image.
  8. Auswählen Absenden.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
    Bestätigen Sie, dass das Bild zur Domäne hinzugefügt wurde. Es kann einige Minuten dauern, bis das Bild vollständig angehängt ist.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  9. Wenn es verfügbar ist, melden Sie sich mit der RStudio-Konsole auf der SageMaker-Konsole an rstudio-user erstelltes Profil.
  10. Erstellen Sie von hier aus eine Sitzung mit dem Sparklyr-Bild, das wir zuvor erstellt haben.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
    Zuerst müssen wir uns mit unserem EMR-Cluster verbinden.
  11. Wählen Sie im Verbindungsbereich aus Neue Verbindung.
  12. Wählen Sie das Verbindungscode-Snippet für den EMR-Cluster aus und wählen Sie aus Stellen Sie eine Verbindung zum Amazon EMR-Cluster her.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
    Nachdem der Verbindungscode ausgeführt wurde, sehen Sie eine Spark-Verbindung über Livy, aber keine Tabellen.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  13. Ändern Sie die Datenbank in credit_card:
    tbl_change_db(sc, “credit_card”)
  14. Auswählen Verbindungsdaten aktualisieren.
    Sie können jetzt die Tabellen sehen.
    Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
  15. Navigieren Sie nun zum rstudio-sparklyr-code-walkthrough.md Datei.

Dies hat eine Reihe von Spark-Transformationen, die wir für unser Kreditkarten-Dataset verwenden können, um es für die Modellierung vorzubereiten. Der folgende Code ist ein Auszug:

Lasst uns count() wie viele Transaktionen sind in der Transaktionstabelle. Aber zuerst müssen wir Use the zwischenspeichern tbl() Funktion.

users_tbl <- tbl(sc, "users")
cards_tbl <- tbl(sc, "cards")
transactions_tbl <- tbl(sc, "transactions")

Lassen Sie uns die Anzahl der Zeilen für jede Tabelle zählen.

count(users_tbl)
count(cards_tbl)
count(transactions_tbl)

Lassen Sie uns nun unsere Tabellen als Spark Data Frames registrieren und sie für eine bessere Leistung in den clusterweiten Speichercache ziehen. Wir werden auch die Überschrift filtern, die in der ersten Zeile für jede Tabelle platziert wird.

users_tbl <- tbl(sc, 'users') %>% filter(gender != 'Gender')
sdf_register(users_tbl, "users_spark")
tbl_cache(sc, 'users_spark')
users_sdf <- tbl(sc, 'users_spark') cards_tbl <- tbl(sc, 'cards') %>% filter(expire_date != 'Expires')
sdf_register(cards_tbl, "cards_spark")
tbl_cache(sc, 'cards_spark')
cards_sdf <- tbl(sc, 'cards_spark') transactions_tbl <- tbl(sc, 'transactions') %>% filter(amount != 'Amount')
sdf_register(transactions_tbl, "transactions_spark")
tbl_cache(sc, 'transactions_spark')
transactions_sdf <- tbl(sc, 'transactions_spark')

Die vollständige Liste der Befehle finden Sie unter rstudio-sparklyr-code-walkthrough.md Datei.

Aufräumen

Löschen Sie die CloudFormation-Stammvorlage, um Ressourcen zu bereinigen und wiederkehrende Kosten zu vermeiden. Auch alle löschen Amazon Elastic File Service (Amazon EFS) erstellte Mounts und alle Amazon Simple Storage-Service (Amazon S3) erstellte Buckets und Objekte.

Zusammenfassung

Die Integration von RStudio auf SageMaker mit Amazon EMR bietet eine leistungsstarke Lösung für Datenanalyse- und Modellierungsaufgaben in der Cloud. Indem Sie RStudio auf SageMaker verbinden und eine Livy-Verbindung zu Spark auf EMR herstellen, können Sie die Rechenressourcen beider Plattformen für die effiziente Verarbeitung großer Datenmengen nutzen. RStudio, eine der am häufigsten verwendeten IDEs für die Datenanalyse, ermöglicht es Ihnen, die Vorteile der vollständig verwalteten Infrastruktur, Zugriffskontrolle, Netzwerk- und Sicherheitsfunktionen von SageMaker zu nutzen. In der Zwischenzeit bietet die Livy-Verbindung zu Spark auf Amazon EMR eine Möglichkeit, eine verteilte Verarbeitung und Skalierung von Datenverarbeitungsaufgaben durchzuführen.

Wenn Sie mehr über die gemeinsame Verwendung dieser Tools erfahren möchten, dient dieser Beitrag als Ausgangspunkt. Weitere Informationen finden Sie unter RStudio auf Amazon SageMaker. Wenn Sie Vorschläge oder Funktionsverbesserungen haben, erstellen Sie bitte eine Pull-Anforderung in unserem GitHub-Repo oder hinterlassen Sie einen Kommentar zu diesem Beitrag!


Über die Autoren

Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Ryan Garner ist Data Scientist bei AWS Professional Services. Er hilft AWS-Kunden leidenschaftlich gerne dabei, ihre Probleme mit Data Science und maschinellem Lernen mit R zu lösen.


Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
Raj Pathak
 ist ein Senior Solutions Architect und Technologe, der sich auf Finanzdienstleistungen (Versicherungen, Banken, Kapitalmärkte) und maschinelles Lernen spezialisiert hat. Er ist spezialisiert auf Natural Language Processing (NLP), Large Language Models (LLM) und Machine Learning Infrastructure and Operations Projects (MLOps).


Verbinden Sie Amazon EMR und RStudio mit Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.Saiteja Pudi
 ist Lösungsarchitekt bei AWS mit Sitz in Dallas, Tx. Er ist jetzt seit mehr als 3 Jahren bei AWS und hilft Kunden dabei, das wahre Potenzial von AWS auszuschöpfen, indem er ihr vertrauenswürdiger Berater ist. Er kommt aus der Anwendungsentwicklung und interessiert sich für Data Science und maschinelles Lernen.

Zeitstempel:

Mehr von AWS Maschinelles Lernen