Forbind Amazon EMR og RStudio på Amazon SageMaker

Forbind Amazon EMR og RStudio på Amazon SageMaker

RStudio på Amazon SageMaker er branchens første fuldt administrerede RStudio Workbench integrerede udviklingsmiljø (IDE) i skyen. Du kan hurtigt starte den velkendte RStudio IDE og ringe op og ned for de underliggende computerressourcer uden at afbryde dit arbejde, hvilket gør det nemt at bygge maskinlæring (ML) og analyseløsninger i R i skala.

I forbindelse med værktøjer som RStudio på SageMaker analyserer, transformerer og forbereder brugere store mængder data som en del af datavidenskaben og ML-workflowet. Dataforskere og dataingeniører bruger Apache Spark, Hive og Presto, der kører på Amazon EMR til storskala databehandling. Ved at bruge RStudio på SageMaker og Amazon EMR sammen kan du fortsætte med at bruge RStudio IDE til analyse og udvikling, mens du bruger Amazon EMR-administrerede klynger til større databehandling.

I dette indlæg demonstrerer vi, hvordan du kan forbinde din RStudio på SageMaker-domænet med en EMR-klynge.

Løsningsoversigt

Vi bruger en Apache Livy forbindelse til at indsende en sparklyr job fra RStudio på SageMaker til en EMR-klynge. Dette er demonstreret i følgende diagram.

Løsningens omfang
Al kode demonstreret i indlægget er tilgængelig i vores GitHub repository. Vi implementerer følgende løsningsarkitektur.

Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Forudsætninger

Før du implementerer ressourcer, skal du sørge for, at du har alle kravene til opsætning og brug af RStudio på SageMaker og Amazon EMR:

Vi bygger også en brugerdefineret RStudio på SageMaker-billedet, så sørg for, at du har Docker kørende og alle nødvendige tilladelser. For mere information, se Brug et brugerdefineret billede til at bringe dit eget udviklingsmiljø til RStudio på Amazon SageMaker.

Opret ressourcer med AWS CloudFormation

Vi bruger en AWS CloudFormation stak for at generere den nødvendige infrastruktur.

Hvis du allerede har et RStudio-domæne og en eksisterende EMR-klynge, kan du springe dette trin over og begynde at bygge dit brugerdefinerede RStudio på SageMaker-billede. Erstat oplysningerne om din EMR-klynge og RStudio-domæne i stedet for EMR-klyngen og RStudio-domænet, der er oprettet i dette afsnit.

Ved at starte denne stak oprettes følgende ressourcer:

  • To private undernet
  • EMR Spark klynge
  • AWS Lim database og tabeller
  • SageMaker domæne med RStudio
  • SageMaker RStudio brugerprofil
  • IAM-servicerolle for SageMaker RStudio-domænet
  • IAM-servicerolle for SageMaker RStudio-brugerprofilen

Udfør følgende trin for at oprette dine ressourcer:

Vælg Start Stack at skabe stakken.

Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

  1. Opret stak side, vælg Næste.
  2. Angiv stakdetaljer side, angiv et navn til din stak og lad de resterende muligheder være standard, og vælg derefter Næste.
  3. Konfigurer stakindstillinger side, lad indstillingerne være standard og vælg Næste.
  4. Review side, Vælg
  5. Jeg anerkender, at AWS CloudFormation kan skabe IAM-ressourcer med brugerdefinerede navne ,
  6. Jeg anerkender, at AWS CloudFormation muligvis kræver følgende kapacitet: CAPABILITY_AUTO_EXPAND.
  7. Vælg Opret stak.

Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Skabelonen genererer fem stakke.

Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

For at se EMR Spark-klyngen, der blev oprettet, skal du navigere til Amazon EMR-konsollen. Du vil se en klynge oprettet til dig kaldet sagemaker. Dette er den klynge, vi forbinder til gennem RStudio på SageMaker.

Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Byg den brugerdefinerede RStudio på SageMaker-billedet

Vi har lavet et brugerdefineret billede, der installerer alle afhængigheder af sparklyr, og vil etablere en forbindelse til den EMR-klynge, vi oprettede.

Hvis du bruger din egen EMR-klynge og RStudio-domæne, skal du ændre scripts i overensstemmelse hermed.

Sørg for, at Docker kører. Start med at komme ind i vores projektlager:

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

Vi vil nu bygge Docker-billedet og registrere det til vores RStudio på SageMaker-domænet.

  1. Vælg på SageMaker-konsollen domæner i navigationsruden.
  2. Vælg domænet select rstudio-domain.
  3. Miljø fanebladet, vælg Vedhæft billede.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
    Nu vedhæfter vi sparklyr-billedet, som vi oprettede tidligere, til domænet.
  4. Til Vælg billedkilde, Vælg Eksisterende billede.
  5. Vælg det sparklyr-billede, vi byggede.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  6. Til Billedegenskaber, lad indstillingerne være standard.
  7. Til Billedtype, Vælg RStudio billede.
  8. Vælg Indsend.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
    Bekræft, at billedet er blevet tilføjet til domænet. Det kan tage et par minutter, før billedet er vedhæftet helt.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  9. Når det er tilgængeligt, skal du logge ind på RStudio på SageMaker-konsollen ved hjælp af rstudio-user profil, der blev oprettet.
  10. Herfra kan du oprette en session med sparklyr-billedet, som vi oprettede tidligere.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
    Først skal vi oprette forbindelse til vores EMR-klynge.
  11. Vælg i forbindelsesruden Ny forbindelse.
  12. Vælg EMR-klyngen-forbindelseskodestykket, og vælg Opret forbindelse til Amazon EMR Cluster.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
    Efter tilslutningskoden er kørt, vil du se en Spark-forbindelse gennem Livy, men ingen tabeller.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  13. Skift databasen til credit_card:
    tbl_change_db(sc, “credit_card”)
  14. Vælg Opdater forbindelsesdata.
    Du kan nu se tabellerne.
    Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
  15. Naviger nu til rstudio-sparklyr-code-walkthrough.md fil.

Dette har et sæt Spark-transformationer, vi kan bruge på vores kreditkortdatasæt til at forberede det til modellering. Følgende kode er et uddrag:

Lad os count() hvor mange transaktioner der er i transaktionstabellen. Men først skal vi cache Brug tbl() funktion.

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

Lad os køre en optælling af antallet af rækker for hver tabel.

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

Lad os nu registrere vores tabeller som Spark Data Frames og trække dem ind i klyngen i hukommelsescachen for bedre ydeevne. Vi vil også filtrere den overskrift, der placeres i den første række for hver tabel.

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

For at se den fulde liste over kommandoer, se rstudio-sparklyr-code-walkthrough.md fil.

Ryd op

For at rydde op i ressourcer for at undgå at pådrage sig tilbagevendende omkostninger, skal du slette rodskabelonen CloudFormation. Slet også alle Amazon Elastic File Service (Amazon EFS) mounts oprettet og evt Amazon Simple Storage Service (Amazon S3) bøtter og objekter oprettet.

Konklusion

Integrationen af ​​RStudio på SageMaker med Amazon EMR giver en kraftfuld løsning til dataanalyse og modelleringsopgaver i skyen. Ved at forbinde RStudio på SageMaker og etablere en Livy-forbindelse til Spark på EMR, kan du drage fordel af computerressourcerne på begge platforme til effektiv behandling af store datasæt. RStudio, en af ​​de mest udbredte IDE'er til dataanalyse, giver dig mulighed for at drage fordel af den fuldt administrerede infrastruktur, adgangskontrol, netværk og sikkerhedsfunktioner i SageMaker. I mellemtiden giver Livy-forbindelsen til Spark på Amazon EMR en måde at udføre distribueret behandling og skalering af databehandlingsopgaver på.

Hvis du er interesseret i at lære mere om at bruge disse værktøjer sammen, tjener dette indlæg som et udgangspunkt. For mere information, se RStudio på Amazon SageMaker. Hvis du har forslag eller funktionsforbedringer, bedes du oprette en pull-anmodning på vores GitHub-repo eller efterlade en kommentar til dette indlæg!


Om forfatterne

Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Ryan Garner er dataforsker med AWS Professional Services. Han brænder for at hjælpe AWS-kunder med at bruge R til at løse deres problemer med datavidenskab og maskinlæring.


Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.
Raj Pathak
 er en senior løsningsarkitekt og -teknolog med speciale i finansielle tjenesteydelser (forsikring, bank, kapitalmarkeder) og maskinlæring. Han har specialiseret sig i Natural Language Processing (NLP), Large Language Models (LLM) og Machine Learning infrastruktur og driftsprojekter (MLOps).


Connect Amazon EMR and RStudio on Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.Saiteja Pudi
 er Solutions Architect hos AWS, baseret i Dallas, Tx. Han har været hos AWS i mere end 3 år nu og har hjulpet kunder med at udlede det sande potentiale i AWS ved at være deres betroede rådgiver. Han kommer fra en applikationsudviklingsbaggrund, interesseret i Data Science og Machine Learning.

Tidsstempel:

Mere fra AWS maskinindlæring