Anslut Amazon EMR och RStudio på Amazon SageMaker

Anslut Amazon EMR och RStudio på Amazon SageMaker

RStudio på Amazon SageMaker är branschens första fullt hanterade RStudio Workbench integrerade utvecklingsmiljö (IDE) i molnet. Du kan snabbt starta den välbekanta RStudio IDE och ringa upp och ner de underliggande beräkningsresurserna utan att avbryta ditt arbete, vilket gör det enkelt att bygga maskininlärning (ML) och analyslösningar i R i skala.

I samband med verktyg som RStudio på SageMaker analyserar, transformerar och förbereder användare stora mängder data som en del av datavetenskapen och ML-arbetsflödet. Dataforskare och dataingenjörer använder Apache Spark, Hive och Presto på Amazon EMR för storskalig databehandling. Genom att använda RStudio på SageMaker och Amazon EMR tillsammans kan du fortsätta att använda RStudio IDE för analys och utveckling, samtidigt som du använder Amazon EMR-hanterade kluster för större databehandling.

I det här inlägget visar vi hur du kan ansluta din RStudio på SageMaker-domänen med ett EMR-kluster.

Lösningsöversikt

Vi använder en Apache Livy anslutning att lämna in en sparklyr jobb från RStudio på SageMaker till ett EMR-kluster. Detta visas i följande diagram.

Lösningens omfattning
All kod som visas i inlägget är tillgänglig i vår GitHub repository. Vi implementerar följande lösningsarkitektur.

Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Förutsättningar

Innan du distribuerar några resurser, se till att du har alla krav för att ställa in och använda RStudio på SageMaker och Amazon EMR:

Vi kommer också att bygga en anpassad RStudio på SageMaker-bilden, så se till att du har Docker igång och alla nödvändiga behörigheter. För mer information, se Använd en anpassad bild för att ta med din egen utvecklingsmiljö till RStudio på Amazon SageMaker.

Skapa resurser med AWS CloudFormation

Vi använder en AWS molnformation stack för att skapa den nödvändiga infrastrukturen.

Om du redan har en RStudio-domän och ett befintligt EMR-kluster kan du hoppa över det här steget och börja bygga din anpassade RStudio på SageMaker-bilden. Ersätt informationen för ditt EMR-kluster och RStudio-domän i stället för EMR-klustret och RStudio-domänen som skapats i det här avsnittet.

När du startar denna stack skapas följande resurser:

  • Två privata subnät
  • EMR Spark-kluster
  • AWS-lim databas och tabeller
  • SageMaker-domän med RStudio
  • SageMaker RStudio användarprofil
  • IAM-tjänstroll för SageMaker RStudio-domänen
  • IAM-tjänstroll för SageMaker RStudio-användarprofilen

Utför följande steg för att skapa dina resurser:

Välja Starta stack för att skapa stacken.

Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

  1. Skapa stack sida, välj Nästa.
  2. Ange stapeldetaljer sida, ange ett namn för din stack och lämna de återstående alternativen som standard, välj sedan Nästa.
  3. Konfigurera stackalternativ sida, lämna alternativen som standard och välj Nästa.
  4. Granskningssida, Välj
  5. Jag erkänner att AWS CloudFormation kan skapa IAM-resurser med anpassade namn och
  6. Jag erkänner att AWS CloudFormation kan kräva följande funktioner: CAPABILITY_AUTO_EXPAND.
  7. Välja Skapa stack.

Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Mallen genererar fem stackar.

Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

För att se EMR Spark-klustret som skapades, navigera till Amazon EMR-konsolen. Du kommer att se ett kluster skapat för dig som kallas sagemaker. Detta är klustret vi ansluter till via RStudio på SageMaker.

Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Bygg den anpassade RStudio på SageMaker-bilden

Vi har skapat en anpassad bild som kommer att installera alla beroenden av sparklyr, och kommer att upprätta en anslutning till EMR-klustret vi skapade.

Om du använder ditt eget EMR-kluster och RStudio-domän, ändra skripten därefter.

Se till att Docker körs. Börja med att komma in i vårt projektförråd:

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

Vi kommer nu att bygga Docker-bilden och registrera den till vår RStudio på SageMaker-domänen.

  1. Välj på SageMaker-konsolen domäner i navigeringsfönstret.
  2. Välj domän select rstudio-domain.
  3. Miljö fliken, välj Bifoga bild.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Nu bifogar vi sparklyr-bilden som vi skapade tidigare till domänen.
  4. För Välj bildkälla, Välj Befintlig bild.
  5. Välj sparklyr-bilden vi byggde.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  6. För Bildegenskaper, lämna alternativen som standard.
  7. För Bildtyp, Välj RStudio bild.
  8. Välja Skicka.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Bekräfta att bilden har lagts till i domänen. Det kan ta några minuter för bilden att bifogas helt.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  9. När det är tillgängligt loggar du in på RStudio på SageMaker-konsolen med hjälp av rstudio-user profil som skapades.
  10. Härifrån skapar du en session med sparklyr-bilden som vi skapade tidigare.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Först måste vi ansluta till vårt EMR-kluster.
  11. Välj i anslutningsfönstret Ny anslutning.
  12. Välj EMR-klusteranslutningskodavsnittet och välj Anslut till Amazon EMR Cluster.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
    Efter att anslutningskoden har körts kommer du att se en Spark-anslutning genom Livy, men inga tabeller.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  13. Ändra databasen till credit_card:
    tbl_change_db(sc, “credit_card”)
  14. Välja Uppdatera anslutningsdata.
    Du kan nu se tabellerna.
    Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
  15. Navigera nu till rstudio-sparklyr-code-walkthrough.md fil.

Detta har en uppsättning Spark-transformationer som vi kan använda på vår kreditkortsdatauppsättning för att förbereda den för modellering. Följande kod är ett utdrag:

låt oss count() hur många transaktioner som finns i transaktionstabellen. Men först måste vi cache Använd tbl() funktion.

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

Låt oss köra en räkning av antalet rader för varje tabell.

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

Låt oss nu registrera våra tabeller som Spark Data Frames och dra in dem i klusteromfattande minnescache för bättre prestanda. Vi kommer också att filtrera rubriken som placeras i den första raden för varje tabell.

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')

För att se hela listan med kommandon, se rstudio-sparklyr-code-walkthrough.md fil.

Städa upp

För att rensa upp eventuella resurser för att undvika återkommande kostnader, ta bort rotmallen CloudFormation. Radera också alla Amazon Elastic File Service (Amazon EFS) fästen skapade och eventuella Amazon enkel lagringstjänst (Amazon S3) hinkar och objekt skapade.

Slutsats

Integrationen av RStudio på SageMaker med Amazon EMR ger en kraftfull lösning för dataanalys och modelleringsuppgifter i molnet. Genom att koppla RStudio på SageMaker och upprätta en Livy-anslutning till Spark på EMR kan du dra nytta av datorresurserna på båda plattformarna för effektiv bearbetning av stora datamängder. RStudio, en av de mest använda IDE:erna för dataanalys, låter dig dra fördel av SageMakers fullt hanterade infrastruktur, åtkomstkontroll, nätverk och säkerhetsfunktioner. Samtidigt ger Livy-anslutningen till Spark på Amazon EMR ett sätt att utföra distribuerad bearbetning och skalning av databearbetningsuppgifter.

Om du är intresserad av att lära dig mer om att använda dessa verktyg tillsammans fungerar det här inlägget som en utgångspunkt. För mer information, se RStudio på Amazon SageMaker. Om du har några förslag eller funktionsförbättringar, vänligen skapa en pull-förfrågan på vår GitHub-repo eller lämna en kommentar till det här inlägget!


Om författarna

Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Ryan Garner är en dataforskare med AWS Professional Services. Han brinner för att hjälpa AWS-kunder att använda R för att lösa sina problem med datavetenskap och maskininlärning.


Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.
Raj Pathak
 är en senior lösningsarkitekt och tekniker specialiserad på finansiella tjänster (försäkring, bank, kapitalmarknader) och maskininlärning. Han är specialiserad på Natural Language Processing (NLP), Large Language Models (LLM) och Machine Learning infrastruktur och driftsprojekt (MLOps).


Anslut Amazon EMR och RStudio på Amazon SageMaker PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Saiteja Pudi
 är en lösningsarkitekt på AWS, baserad i Dallas, Tx. Han har arbetat med AWS i mer än 3 år nu och hjälpt kunder att ta del av AWS verkliga potential genom att vara deras pålitliga rådgivare. Han kommer från en applikationsutvecklingsbakgrund, intresserad av datavetenskap och maskininlärning.

Tidsstämpel:

Mer från AWS maskininlärning