I stillingen Introduktion af AWS ProServe Hadoop Migration Delivery Kit TCO-værktøjet, introducerede vi AWS ProServe Hadoop Migration Delivery Kit (HMDK) TCO-værktøjet og fordelene ved at migrere lokale Hadoop-arbejdsbelastninger til Amazon EMR. I dette indlæg dykker vi dybt ned i værktøjet og går gennem alle trin fra logindtagelse, transformation, visualisering og arkitekturdesign til at beregne TCO.
Løsningsoversigt
Lad os kort besøge HMDK TCO-værktøjets nøglefunktioner. Værktøjet giver en YARN-logopsamler til at forbinde Hadoop Resource Manager til at indsamle YARN-logfiler. En Python-baseret Hadoop-arbejdsbelastningsanalysator, kaldet YARN-loganalysatoren, undersøger Hadoop-applikationer. Amazon QuickSight dashboards viser resultaterne fra analysatoren. De samme resultater fremskynder også designet af fremtidige EMR-instanser. Derudover genererer en TCO-beregner TCO-estimeringen af en optimeret EMR-klynge for at lette migreringen.
Lad os nu se på, hvordan værktøjet fungerer. Følgende diagram illustrerer ende-til-ende-arbejdsgangen.
I de næste afsnit gennemgår vi værktøjets fem hovedtrin:
- Saml GARN-jobhistoriklogfiler.
- Transform jobhistoriklogs fra JSON til CSV.
- Analyser jobhistorikloggene.
- Design en EMR-klynge til migrering.
- Beregn TCO.
Forudsætninger
Før du går i gang, skal du sørge for at opfylde følgende forudsætninger:
- Klon hadoop-migration-assessment-tco repository.
- Installer Python 3 på din lokale maskine.
- Har en AWS-konto med tilladelse på AWS Lambda, QuickSight (Enterprise-udgave), og AWS CloudFormation.
Saml GARN-jobhistoriklogfiler
Først kører du en GARN log opsamler, start-collector.sh, på din lokale maskine. Dette trin indsamler Hadoop YARN-logfiler og placerer logfilerne på din lokale maskine. Scriptet forbinder din lokale maskine med Hadoop primære node og kommunikerer med Resource Manager. Derefter henter den jobhistorikoplysningerne (YARN-logfiler fra applikationsadministratorer) ved at kalde YARN ResourceManager applikations-API.
Før du kører YARN-logopsamleren, skal du konfigurere og etablere forbindelsen (HTTP: 8088 eller HTTPS: 8090; sidstnævnte anbefales) for at verificere tilgængeligheden af YARN ResourceManager og aktiveret YARN Timeline Server (Timeline Server v1 eller nyere understøttes ). Du skal muligvis definere YARN-logs' indsamlingsinterval og opbevaringspolitik. For at sikre, at du samler på hinanden følgende YARN-logfiler, kan du bruge et cron-job til at planlægge logopsamleren i et passende tidsinterval. For eksempel, for en Hadoop-klynge med 2,000 daglige applikationer og indstillingen yarn.resourcemanager.max-completed-applications sat til 1,000, teoretisk skal du køre logopsamleren mindst to gange for at få alle YARN-logfilerne. Derudover anbefaler vi, at du indsamler mindst 7 dages GARN-logfiler til analyse af holistiske arbejdsbelastninger.
For flere detaljer om, hvordan du konfigurerer og planlægger logopsamleren, henvises til garn-log-samler GitHub repo.
Transformer YARN-jobhistorikloggene fra JSON til CSV
Efter at have opnået YARN logs, kører du en YARN log organizer, yarn-log-organizer.py, som er en parser til at transformere JSON-baserede logfiler til CSV-filer. Disse output CSV-filer er input til YARN-loganalysatoren. Parseren har også andre muligheder, herunder sortering af hændelser efter tid, fjernelse af dedikater og sammenlægning af flere logfiler.
For mere information om, hvordan du bruger YARN log organizer, se garn-log-organizer GitHub repo.
Analyser YARN-jobhistorikloggene
Derefter starter du YARN-loganalysatoren for at analysere YARN-logfilerne i CSV-format.
Med QuickSight kan du visualisere YARN-logdata og udføre analyser i forhold til de datasæt, der er genereret af forudbyggede dashboardskabeloner og en widget. Widgetten opretter automatisk QuickSight-dashboards i mål-AWS-kontoen, som er konfigureret i en CloudFormation-skabelon.
Følgende diagram illustrerer HMDK TCO-arkitekturen.
YARN-loganalysatoren har fire nøglefunktioner:
- Upload transformerede YARN-jobhistoriklogfiler i CSV-format (f.eks.
cluster_yarn_logs_*.csv
) Til Amazon Simple Storage Service (Amazon S3) spande. Disse CSV-filer er output fra YARN-logorganisatoren. - Opret en manifest JSON-fil (f.eks.
yarn-log-manifest.json
) til QuickSight og upload det til S3-bøtten: - Implementer QuickSight-dashboards ved hjælp af en CloudFormation-skabelon, som er i YAML-format. Efter implementering skal du vælge opdateringsikonet, indtil du ser stakkens status som
CREATE_COMPLETE
. Dette trin opretter datasæt på QuickSight-dashboards i din AWS-målkonto. - På QuickSight-dashboardet kan du finde indsigt i de analyserede Hadoop-arbejdsbelastninger fra forskellige diagrammer. Disse indsigter hjælper dig med at designe fremtidige EMR-instanser til migrationsacceleration, som vist i næste trin.
Design en EMR-klynge til migrering
Resultaterne af YARN-loganalysatoren hjælper dig med at forstå de faktiske Hadoop-arbejdsbelastninger på det eksisterende system. Dette trin fremskynder design af fremtidige EMR-instanser til migrering ved at bruge en Excel skabelon. Skabelonen indeholder en tjekliste til udførelse af arbejdsbelastningsanalyse og kapacitetsplanlægning:
- Bliver de programmer, der kører på klyngen, brugt korrekt med deres nuværende kapacitet?
- Er klyngen under belastning på et bestemt tidspunkt eller ej? Hvis ja, hvornår er tidspunktet?
- Hvilke typer applikationer og motorer (såsom MR, TEZ eller Spark) kører på klyngen, og hvad er ressourceforbruget for hver type?
- Kører forskellige jobs kørselscyklusser (realtid, batch, ad hoc) i én klynge?
- Kører nogen job i regelmæssige partier, og hvis ja, hvad er disse tidsplansintervaller? (For eksempel hvert 10. minut, 1 time, 1 dag.) Har du job, der bruger mange ressourcer over en længere periode?
- Trænger nogen job til præstationsforbedring?
- Monopoliserer nogle specifikke organisationer eller enkeltpersoner klyngen?
- Fungerer nogle blandede udviklings- og driftsjob i én klynge?
Når du har udfyldt tjeklisten, har du en bedre forståelse af, hvordan du designer fremtidens arkitektur. For at optimere EMR-klyngens omkostningseffektivitet giver følgende tabel generelle retningslinjer for valg af den rigtige type EMR-klynge og Amazon Elastic Compute Cloud (Amazon EC2) familie.
For at vælge den korrekte klyngetype og instansfamilie skal du udføre flere analyserunder i forhold til YARN-logfiler baseret på forskellige kriterier. Lad os se på nogle nøglemålinger.
Timeline
Du kan finde arbejdsbelastningsmønstre baseret på antallet af Hadoop-applikationer, der kører i et tidsvindue. For eksempel giver de daglige eller timelige diagrammer "Count of Records by Startedtime" følgende indsigt:
- I daglige tidsseriediagrammer sammenligner du antallet af ansøgningskørsler mellem arbejdsdage og helligdage og mellem kalenderdage. Hvis tallene er ens, betyder det, at klyngens daglige udnyttelse er sammenlignelig. Er afvigelsen derimod stor, er andelen af ad hoc-job betydelig. Du kan også finde ud af de mulige ugentlige eller månedlige job på bestemte dage. I situationen kan du nemt se specifikke dage på en uge eller en måned med høj koncentration af arbejdsbelastning.
- I timeseriediagrammer forstår du yderligere, hvordan applikationer køres i timevinduer. Du kan finde spidsbelastnings- og lavbelastningstider på en dag.
Brugere
YARN-logfilerne indeholder bruger-id'et for hver applikation. Disse oplysninger hjælper dig med at forstå, hvem der sender en ansøgning til en kø. Baseret på statistikken over individuelle og aggregerede applikationskørsler pr. kø og pr. bruger, kan du bestemme den eksisterende arbejdsbyrdefordeling efter bruger. Normalt har brugere på det samme team delte køer. Nogle gange har flere hold delt køer. Når du designer køer til brugere, har du nu indsigt, der hjælper dig med at designe og distribuere applikationsarbejdsbelastninger, der er mere afbalancerede på tværs af køer, end de tidligere var.
Ansøgningstyper
Du kan segmentere arbejdsbelastninger baseret på forskellige applikationstyper (såsom Hive, Spark, Presto eller HBase) og køre motorer (såsom MR, Spark eller Tez). Brug CPU-optimerede forekomster til de computertunge arbejdsbelastninger såsom MapReduce- eller Hive-on-MR-job. Til hukommelsesintensive arbejdsbelastninger såsom Hive-on-TEZ-, Presto- og Spark-job skal du bruge hukommelsesoptimerede forekomster.
Forløbet tid
Du kan kategorisere applikationer efter runtime. Den indlejrede CloudFormation-skabelon opretter automatisk et forløbet gruppefelt i et QuickSight-dashboard. Dette muliggør en nøglefunktion, der giver dig mulighed for at observere langvarige job i et af fire diagrammer på QuickSight-dashboards. Derfor kan du designe skræddersyede fremtidige arkitekturer til disse store opgaver.
De tilsvarende QuickSight-dashboards inkluderer fire diagrammer. Du kan bore ned i hvert diagram, som er knyttet til én gruppe.
gruppe nummer |
Runtime/Elapseed Time of a Job |
1 | Mindre end 10 minutter |
2 | Mellem 10 minutter og 30 minutter |
3 | mellem 30 minutter og 1 time |
4 | Mere end 1 time |
I skemaet for gruppe 4 kan du koncentrere dig om at granske store opgaver baseret på forskellige målinger, herunder bruger, kø, applikationstype, tidslinje, ressourceforbrug og så videre. Baseret på denne betragtning kan du have dedikerede køer på en klynge eller en dedikeret EMR-klynge til store job. I mellemtiden kan du sende små opgaver til delte køer.
Ressourcer
Baseret på forbrugsmønstre for ressourcer (CPU, hukommelse) vælger du den rigtige størrelse og familie af EC2-instanser for ydeevne og omkostningseffektivitet. Til computerintensive applikationer anbefaler vi forekomster af CPU-optimerede familier. Til hukommelsesintensive applikationer anbefales de hukommelsesoptimerede instansfamilier.
Derudover kan du, baseret på arten af applikationens arbejdsbelastninger og ressourceudnyttelsen over tid, vælge en vedvarende eller forbigående EMR-klynge, Amazon EMR på EKS eller Amazon EMR-serverløs.
Efter at have analyseret YARN-logfiler efter forskellige metrikker, er du klar til at designe fremtidige EMR-arkitekturer. Følgende tabel viser eksempler på foreslåede EMR-klynger. Du kan finde flere detaljer i optimized-tco-calculator GitHub repo.
Beregn TCO
Til sidst, på din lokale maskine, kør tco-input-generator.py for at samle YARN-jobhistoriklogs på timebasis, før du bruger en Excel-skabelon til at beregne den optimerede TCO. Dette trin er afgørende, fordi resultaterne simulerer Hadoop-arbejdsbelastningerne i fremtidige EMR-tilfælde.
Forudsætningen for TCO-simulering er at køre tco-input-generator.py
, som genererer aggregerede logfiler på timebasis. Derefter åbner du en Excel-skabelonfil for at aktivere makroer og angive dine input i grønne celler til beregning af TCO. Med hensyn til inputdata indtaster du den faktiske datastørrelse uden replikering og hardwarespecifikationerne (vCore, mem) for Hadoop primære node og data noder. Du skal også vælge og uploade tidligere genererede timelige aggregerede logfiler. Når du har indstillet TCO-simuleringsvariablerne, såsom region, EC2-type, Amazon EMR høj tilgængelighed, motoreffekt, Amazon EC2 og Amazon EBS-rabat (EDP), Amazon S3 volumenrabat, lokal valutakurs og EMR EC2 opgave/kerneprisforhold og pris/time, beregner TCO-simulatoren automatisk de optimale omkostninger for fremtidige EMR-forekomster på Amazon EC2. Følgende skærmbilleder viser et eksempel på HMDK TCO-resultater.
For yderligere information og instruktioner om HMDK TCO-beregninger henvises til optimized-tco-calculator GitHub repo.
Ryd op
Når du har gennemført alle trinene og afsluttet testen, skal du udføre følgende trin for at slette ressourcer for at undgå at pådrage dig omkostninger:
- På AWS CloudFormation-konsollen skal du vælge den stak, du har oprettet.
- Vælg Slette.
- Vælg Slet stakken.
- Opdater siden, indtil du ser status
DELETE_COMPLETE
. - På Amazon S3-konsollen skal du slette S3-bøtten, du har oprettet.
Konklusion
AWS ProServe HMDK TCO-værktøjet reducerer migrationsplanlægningsindsatsen betydeligt, som er de tidskrævende og udfordrende opgaver at vurdere dine Hadoop-arbejdsbelastninger. Med HMDK TCO-værktøjet tager vurderingen normalt 2-3 uger. Du kan også bestemme den beregnede TCO for fremtidige EMR-arkitekturer. Med HMDK TCO-værktøjet er du i stand til hurtigt at forstå dine arbejdsbelastninger og ressourceforbrugsmønstre. Med den indsigt, der genereres af værktøjet, er du rustet til at designe optimale fremtidige EMR-arkitekturer. I mange tilfælde giver en 1-årig TCO af den optimerede refactored-arkitektur betydelige omkostningsbesparelser (64-80 % reduktion) på databehandling og lagring sammenlignet med lift-and-shift Hadoop-migreringer.
For at lære mere om at accelerere dine Hadoop-migreringer til Amazon EMR og HMDK CTO-værktøjet, se Hadoop Migration Delivery Kit TCO GitHub repo, eller tag fat i AWS-HMDK@amazon.com.
Om forfatterne
Sungyoul Park er Senior Practice Manager hos AWS ProServe. Han hjælper kunder med at innovere deres forretning med AWS Analytics, IoT og AI/ML-tjenester. Han har et speciale i big data-tjenester og -teknologier og en interesse i at opbygge kundernes forretningsresultater sammen.
Jiseong Kim er Senior Data Architect hos AWS ProServe. Han arbejder hovedsageligt med virksomhedskunder for at hjælpe migrering og modernisering af datasøer og yder vejledning og teknisk assistance til big data-projekter såsom Hadoop, Spark, data warehousing, databehandling i realtid og maskinlæring i stor skala. Han forstår også, hvordan man anvender teknologier til at løse big data-problemer og opbygge en veldesignet dataarkitektur.
George Zhao er Senior Data Architect hos AWS ProServe. Han er en erfaren analyseleder, der arbejder med AWS-kunder for at levere moderne dataløsninger. Han er også en ProServe Amazon EMR-domænespecialist, som gør det muligt for ProServe-konsulenter om bedste praksis og leveringssæt til Hadoop til Amazon EMR-migrering. Hans interesseområde er datasøer og levering af cloud moderne dataarkitektur.
Kalen Zhang var Global Segment Tech Lead of Partner Data and Analytics hos AWS. Som en betroet rådgiver for data og analyser kurerede hun strategiske initiativer til datatransformation, ledede data- og analysearbejdsbelastningsmigrering og moderniseringsprogrammer og accelererede kundemigreringsrejser med partnere i stor skala. Hun har specialiseret sig i distribuerede systemer, virksomhedsdatastyring, avanceret analyse og store strategiske initiativer.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://aws.amazon.com/blogs/big-data/deep-dive-into-the-aws-proserve-hadoop-migration-delivery-kit-tco-tool/
- 000
- 1
- 10
- 100
- 7
- a
- I stand
- Om
- fremskynde
- accelereret
- accelererer
- accelererende
- acceleration
- tilgængelighed
- Konto
- tværs
- Ad
- Desuden
- Yderligere
- yderligere information
- Derudover
- fremskreden
- rådgiver
- Efter
- mod
- AI / ML
- Alle
- Amazon
- Amazon EC2
- Amazon EMR
- blandt
- analyse
- analytics
- analysere
- analysere
- ,
- api
- Anvendelse
- applikationer
- Indløs
- passende
- arkitektur
- OMRÅDE
- vurdering
- Assistance
- forbundet
- automatisk
- tilgængelighed
- AWS
- AWS CloudFormation
- baseret
- grundlag
- fordi
- være
- fordele
- BEDSTE
- bedste praksis
- Bedre
- mellem
- Big
- Big data
- kortvarigt
- bygge
- Bygning
- virksomhed
- beregne
- beregnet
- beregner
- beregning
- Kalender
- kaldet
- ringer
- kapaciteter
- Kapacitet
- tilfælde
- Celler
- vis
- udfordrende
- Chart
- Diagrammer
- Vælg
- vælge
- Cloud
- Cluster
- indsamler
- Indsamling
- samling
- solfanger
- indsamler
- KOM
- sammenlignelig
- sammenligne
- sammenlignet
- fuldføre
- Compute
- koncentrere
- koncentration
- Adfærd
- udførelse
- Tilslut
- tilslutning
- forbinder
- træk
- overvejelse
- Konsol
- konsulenter
- forbrug
- indeholder
- Tilsvarende
- Koste
- omkostningsbesparelser
- Omkostninger
- CPU
- oprettet
- skaber
- kriterier
- afgørende
- CTO
- kurateret
- Valuta
- Nuværende
- kunde
- Kunder
- cykler
- dagligt
- instrumentbræt
- data
- Data Lake
- datastyring
- databehandling
- datasæt
- dag
- Dage
- dedikeret
- dyb
- dyb dykke
- levere
- levering
- demonstreret
- implementering
- Design
- designe
- detaljer
- Bestem
- Udvikling
- afvigelse
- forskellige
- Rabat
- distribuere
- distribueret
- distribuerede systemer
- fordeling
- domæne
- ned
- i løbet af
- hver
- nemt
- EBS
- udgave
- effekt
- effektivitet
- indsats
- indlejret
- muliggøre
- aktiveret
- muliggør
- ende til ende
- Engine (Motor)
- Motorer
- sikre
- Indtast
- Enterprise
- virksomhedskunder
- udstyret
- etablere
- Ether (ETH)
- begivenheder
- Hver
- eksempel
- eksempler
- Excel
- eksisterende
- erfarne
- faciliterende
- familier
- familie
- Feature
- Funktionalitet
- felt
- Figur
- File (Felt)
- Filer
- Finde
- slut
- efter
- format
- fra
- funktionaliteter
- yderligere
- fremtiden
- Generelt
- genereret
- genererer
- få
- få
- GitHub
- Global
- Grøn
- gruppe
- retningslinjer
- Hadoop
- Hardware
- hjælpe
- hjælper
- Høj
- historie
- Hive
- helligdage
- holistisk
- HOURS
- Hvordan
- How To
- HTML
- HTTPS
- ICON
- in
- omfatter
- Herunder
- individuel
- enkeltpersoner
- oplysninger
- initiativer
- innovere
- indgang
- indsigt
- instans
- anvisninger
- interesse
- interesser
- introduceret
- tingenes internet
- IT
- Job
- Karriere
- Journeys
- json
- Nøgle
- kit
- sø
- stor
- storstilet
- lancere
- føre
- leder
- LÆR
- læring
- Led
- Led data
- Lister
- belastning
- lokale
- Lang
- lang tid
- Se
- Lot
- maskine
- machine learning
- makroer
- Main
- lave
- ledelse
- leder
- Ledere
- mange
- midler
- I mellemtiden
- Hukommelse
- sammenlægning
- Metrics
- migration
- minutter
- blandet
- Moderne
- modernisering
- Måned
- månedligt
- mere
- flere
- Natur
- Behov
- næste
- node
- noder
- nummer
- numre
- observere
- opnå
- ONE
- åbent
- drift
- drift
- optimal
- optimeret
- optimering
- optimal
- organisationer
- Andet
- særlig
- partner
- partnere
- mønstre
- Peak
- udføre
- ydeevne
- periode
- tilladelse
- Steder
- planlægning
- plato
- Platon Data Intelligence
- PlatoData
- politik
- mulig
- Indlæg
- praksis
- praksis
- forudsætninger
- tidligere
- prissætning
- primære
- Forud
- problemer
- forarbejdning
- Programmer
- projekter
- passende
- foreslog
- give
- giver
- Python
- hurtigt
- Sats
- forholdet
- nå
- klar
- realtid
- data i realtid
- anbefaler
- anbefales
- optegnelser
- reducerer
- om
- region
- fast
- fjernelse
- replikation
- ressource
- Ressourcer
- Resultater
- tilbageholdelse
- runder
- Kør
- kører
- samme
- Besparelser
- Scale
- planlægge
- screenshots
- sektioner
- segment
- senior
- Series
- Tjenester
- sæt
- indstilling
- flere
- delt
- Vis
- udstillingsvindue
- signifikant
- betydeligt
- lignende
- Simpelt
- simulation
- simulator
- Situationen
- Størrelse
- lille
- So
- Løsninger
- SOLVE
- nogle
- Spark
- specialist
- specialiseret
- Specialty
- specifikke
- specifikationer
- stable
- påbegyndt
- statistik
- Status
- Trin
- Steps
- opbevaring
- Strategisk
- indsende
- sådan
- Understøttet
- systemet
- Systemer
- bord
- skræddersyet
- tager
- mål
- opgaver
- hold
- hold
- tech
- Teknisk
- Teknologier
- skabelon
- skabeloner
- Test
- Fremtiden
- deres
- derfor
- Gennem
- tid
- Tidsserier
- tidskrævende
- tidslinje
- til
- sammen
- værktøj
- Transform
- Transformation
- omdannet
- sand
- betroet
- typer
- under
- forstå
- forståelse
- forstår
- Brug
- brug
- Bruger
- brugere
- sædvanligvis
- forskellige
- verificere
- visualisering
- bind
- gå
- Warehousing
- uge
- ugentlig
- uger
- Hvad
- Hvad er
- som
- WHO
- vinduer
- uden
- workflow
- arbejder
- virker
- yaml
- Din
- zephyrnet