Za izboljšanje učinkovitosti aplikacije Spark je nujno spremljati njeno delovanje in obnašanje. V tej objavi prikazujemo, kako objaviti podrobne meritve Spark iz Amazonski EMR do amazoncloudwatch. To vam bo dalo možnost, da prepoznate ozka grla in hkrati optimizirate uporabo virov.
CloudWatch zagotavlja robustno, razširljivo in stroškovno učinkovito rešitev za spremljanje virov in aplikacij AWS z zmogljivimi možnostmi prilagajanja in brezhibno integracijo z drugimi storitvami AWS. Amazon EMR privzeto pošilja osnovne metrike v CloudWatch za sledenje dejavnosti in zdravju gruče. Sparkov nastavljiv sistem meritev omogoča zbiranje meritev v različnih ponorih, vključno z datotekami HTTP, JMX in CSV, vendar je potrebna dodatna konfiguracija, da Spark omogoči objavo meritev v CloudWatch.
Pregled rešitev
Ta rešitev vključuje konfiguracijo Spark za pošiljanje meritev v ponor po meri. Ponor po meri zbira samo metrike, definirane v datoteki Metricfilter.json. Za objavo meritev v imenskem prostoru Cloudwatch po meri uporablja agenta CloudWatch. Vključeni zagonski akcijski skript je odgovoren za namestitev in konfiguracijo agenta CloudWatch in knjižnice metrik na Amazonski elastični računalniški oblak (Amazon EC2) primerki EMR. Nadzorna plošča CloudWatch lahko zagotovi takojšen vpogled v delovanje aplikacije.
Naslednji diagram ponazarja arhitekturo rešitve in potek dela.
Potek dela vključuje naslednje korake:
- Uporabniki začnejo opravilo Spark EMR in ustvarijo korak v gruči EMR. Z Apache Spark se delovna obremenitev porazdeli po različnih vozliščih gruče EMR.
- V vsakem vozlišču (primerek EC2) gruče knjižnica Spark zajame in potisne metrične podatke agentu CloudWatch, ki združi metrične podatke, preden jih potisne v CloudWatch. vsakih 30 sekund.
- Uporabniki si lahko ogledajo meritve, ki dostopajo do imenskega prostora po meri na konzoli CloudWatch.
Ponujamo Oblikovanje oblaka AWS predlogo v tej objavi kot splošni vodnik. Predloga prikazuje, kako konfigurirati agenta CloudWatch na Amazon EMR za pošiljanje meritev Spark v CloudWatch. Po potrebi ga lahko pregledate in prilagodite, da vključi vaše varnostne konfiguracije Amazon EMR. Kot najboljšo prakso priporočamo, da v predlogo vključite varnostne konfiguracije Amazon EMR šifriranje podatkov med prenosom.
Prav tako se morate zavedati, da imajo nekateri viri, ki jih uporablja ta sklad, stroške, ko ostanejo v uporabi. Poleg tega EMR meritve ne povzročajo stroškov CloudWatch. Vendar meritve po meri povzročajo stroške glede na cene meritev CloudWatch. Za več informacij glejte Cene storitve Amazon CloudWatch.
V naslednjih razdelkih gremo skozi naslednje korake:
- Ustvarite in naložite knjižnico meritev, namestitveni skript in definicijo filtra v Preprosta storitev shranjevanja Amazon (Amazon S3) vedro.
- S predlogo CloudFormation ustvarite naslednje vire:
- Spremljajte meritve Spark na konzoli CloudWatch.
Predpogoji
Ta objava predvideva, da imate naslednje:
- An AWS račun.
- Vedro S3 za shranjevanje definicije zagonskega skripta, knjižnice in metričnega filtra.
- VPC, ustvarjen v Navidezni zasebni oblak Amazon (Amazon VPC), kjer bo zagnana vaša gruča EMR.
- Privzete storitvene vloge IAM za dovoljenja Amazon EMR za storitve in vire AWS. Te vloge lahko ustvarite z ukazom aws emr create-default-roles v Vmesnik ukazne vrstice AWS (AWS CLI).
- Izbirni par ključev EC2, če se nameravate z gručo povezati prek SSH in ne Upravljalec zvez, zmožnost Upravitelj sistemov AWS.
Določite zahtevane meritve
Da bi se izognili pošiljanju nepotrebnih podatkov v CloudWatch, naša rešitev implementira metrični filter. Preglejte Dokumentacija Spark da se seznanite z imenskimi prostori in z njimi povezanimi metrikami. Ugotovite, katere metrike so pomembne za vašo specifično aplikacijo in cilje uspešnosti. Različne aplikacije lahko zahtevajo različne metrike za spremljanje, odvisno od delovne obremenitve, zahtev za obdelavo podatkov in ciljev optimizacije. Imena meritev, ki jih želite spremljati, morajo biti definirana v datoteki Metricfilter.json skupaj z njihovimi povezanimi imenskimi prostori.
Ustvarili smo primer definicije Metricfilter.json, ki vključuje zajemanje meritev, povezanih z V/I podatkov, zbiranjem smeti, pomnilnikom in pritiskom CPE ter meritvami opravil, stopnje in opravil Spark.
Upoštevajte, da nekatere metrike niso na voljo v vseh različicah za izdajo Spark (na primer, appStatus je bil predstavljen v Spark 3.0).
Ustvarite in naložite zahtevane datoteke v vedro S3
Za več informacij si oglejte Nalaganje predmetov in Namestitev in zagon agenta CloudWatch na vaših strežnikih.
Če želite ustvariti in naložiti zagonski skript, dokončajte naslednje korake:
- Na konzoli Amazon S3 izberite svoje vedro S3.
- o predmeti izberite jeziček Pošiljanje.
- Izberite Dodaj datoteke, nato izberite Metricfilter.json, namestitveni program.shin examplejob.sh datotek.
- Poleg tega naložite
emr-custom-cw-sink-0.0.1.jar
datoteka knjižnice metrik, ki ustreza različici izdaje Amazon EMR, ki jo boste uporabljali: - Izberite Pošiljanjein si zapomnite URI-je S3 za datoteke.
Zagotavljanje virov s predlogo CloudFormation
Izberite Izstrelite sklad da zaženete sklad CloudFormation v svojem računu in uvedete predlogo:
Ta predloga ustvari vlogo IAM, profil primerka IAM, gručo EMR in nadzorno ploščo CloudWatch. Grozd začne osnovno Primer aplikacije Spark. Če ustvarite sklad iz te predloge, vam bomo zaračunali uporabljene vire AWS.
Čarovnik za CloudFormation vas bo prosil, da spremenite ali zagotovite te parametre:
- InstanceType - vrsta primerka za vse skupine primerkov. Privzeta vrednost je m5.2xlarge.
- InstanceCountCore – Število primerkov v osrednji skupini primerkov. Privzeto je 4.
- EMRReleaseLabel - Oznaka za izdajo Amazon EMR želite uporabiti. Privzeta vrednost je emr-6.9.0.
- BootstrapScriptPath – Pot S3 namestitvenega zagonskega skripta installer.sh, ki ste ga prej kopirali.
- MetricFilterPath – Pot S3 vaše definicije Metricfilter.json, ki ste jo prej kopirali.
- MetricsLibraryPath – Pot S3 vaše knjižnice CloudWatch emr-custom-cw-sink-0.0.1.jar, ki ste jo prej kopirali.
- Imenski prostor CloudWatch – Ime imenskega prostora CloudWatch po meri, ki bo uporabljen.
- SparkDemoApplicationPath – Pot S3 vašega skripta examplejob.sh, ki ste ga prej kopirali.
- Podomrežje – Podomrežje EC2, kjer se zažene gruča. Ta parameter morate navesti.
- EC2KeyPairName – Izbirni par ključev EC2 za povezovanje z vozlišči gruče kot alternativa upravitelju sej.
Oglejte si meritve
Ko se sklad CloudFormation uspešno uvede, se vzorčno opravilo samodejno zažene in traja približno 15 minut. Na konzoli CloudWatch izberite Armaturnih plošč v navigacijskem podoknu. Nato filtrirajte seznam po predponi SparkMonitoring.
Primer nadzorne plošče vključuje informacije o gruči in pregled opravil, stopenj in nalog Spark. Meritve so na voljo tudi v imenskem prostoru po meri, ki se začne z EMRCustomSparkCloudWatchSink
.
Vključene so tudi metrike pomnilnika, CPU, V/I in dodatne meritve porazdelitve opravil.
Končno so na voljo podrobne metrike zbiranja smeti Java za vsakega izvajalca.
Čiščenje
Če se želite izogniti prihodnjim bremenitvam v svojem računu, izbrišite vire, ki ste jih ustvarili v tem koraku. Gruča EMR bo imela stroške, dokler bo gruča aktivna, zato jo ustavite, ko končate. Izvedite naslednje korake:
- Na konzoli CloudFormation v podoknu za krmarjenje izberite Skladovnice.
- Izberite sklad, ki ste ga zagnali (
EMR-CloudWatch-Demo
), nato izberite Brisanje. - Izpraznite vedro S3 si ustvaril.
- Izbrišite vedro S3 si ustvaril.
zaključek
Zdaj, ko ste dokončali korake v tem vodniku, se agent CloudWatch izvaja na vaših gostiteljih gruče in je konfiguriran za potiskanje meritev Spark v CloudWatch. S to funkcijo lahko učinkovito spremljate zdravje in učinkovitost svojih opravil Spark, ki se izvajajo na Amazon EMR, odkrivanje kritičnih težav v realnem času in hitro prepoznavanje temeljnih vzrokov.
To rešitev lahko zapakirate in uvedete prek predloge CloudFormation, kot je ta primer predloge, ki ustvari vlogo profila primerka IAM, nadzorno ploščo CloudWatch in gručo EMR. Izvorna koda za knjižnico je na voljo na GitHub za prilagajanje.
Če želite nadaljevati s tem, razmislite o uporabi teh meritev v alarmih CloudWatch. Lahko jih zberete z drugimi alarmi v a sestavljeni alarm ali konfigurirajte alarmna dejanja, kot je pošiljanje Amazon Simple notification Service (Amazon SNS) obvestila za sprožitev procesov, ki jih vodijo dogodki, kot je npr AWS Lambda funkcije.
O Author
Le Clue Lubbe je glavni inženir pri AWS. Sodeluje z našimi največjimi podjetniškimi strankami pri reševanju nekaterih njihovih najbolj zapletenih tehničnih težav. Spodbuja široke rešitve z inovacijami, da bi vplivale in izboljšale življenje naših strank.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Avtomobili/EV, Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- ChartPrime. Izboljšajte svojo igro trgovanja s ChartPrime. Dostopite tukaj.
- BlockOffsets. Posodobitev okoljskega offset lastništva. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- : je
- :ne
- :kje
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- sposobnost
- Dostop
- Račun
- seznanjeni
- čez
- Ukrep
- dejavnosti
- aktivna
- dejavnost
- Dodatne
- Poleg tega
- Agent
- Alarm
- vsi
- omogoča
- skupaj
- Prav tako
- alternativa
- Amazon
- Amazon EC2
- Amazonski EMR
- Amazon Web Services
- an
- in
- Apache
- Apache Spark
- uporaba
- aplikacije
- približno
- architectural
- Arhitektura
- SE
- AS
- povezan
- predpostavlja
- At
- Avtor
- samodejno
- Na voljo
- izogniti
- zaveda
- AWS
- temeljijo
- Osnovni
- BE
- pred
- BEST
- Bootstrap
- široka
- vendar
- by
- CAN
- zmožnost
- ujame
- Zajemanje
- vzroki
- nekatere
- Stroški
- Izberite
- Grozd
- Koda
- zbiranje
- zbirka
- zbira
- dokončanje
- Končana
- kompleksna
- Izračunajte
- konfiguracija
- konfigurirano
- Connect
- Povezovanje
- Razmislite
- Konzole
- Core
- ustreza
- stroškovno učinkovito
- stroški
- bi
- CPU
- ustvarjajo
- ustvaril
- ustvari
- Ustvarjanje
- kritično
- po meri
- Stranke, ki so
- customization
- prilagodite
- Armaturna plošča
- datum
- obdelava podatkov
- privzeto
- opredeljen
- opredelitev
- izkazati
- dokazuje,
- Odvisno
- razporedi
- razporejeni
- razpolaga
- podrobno
- Ugotovite,
- drugačen
- porazdeljena
- distribucija
- opravljeno
- dont
- diski
- vsak
- prej
- učinkovito
- učinkovitosti
- omogočajo
- inženir
- Podjetje
- podjetniške stranke
- bistvena
- Eter (ETH)
- Primer
- Feature
- file
- datoteke
- filter
- po
- za
- iz
- funkcije
- nadalje
- Prihodnost
- splošno
- dobili
- Daj
- Go
- Cilji
- skupina
- Skupine
- vodi
- Imajo
- he
- Zdravje
- Gostitelji
- Kako
- Kako
- Vendar
- HTML
- http
- HTTPS
- IAM
- identificirati
- identifikacijo
- if
- ponazarja
- ponazarja
- vpliv
- izvedbe
- izboljšanje
- in
- vključujejo
- vključeno
- vključuje
- Vključno
- Podatki
- Inovacije
- vpogled
- namestitev
- Namestitev
- primer
- instant
- integracija
- v
- Uvedeno
- Vprašanja
- IT
- ITS
- Java
- Job
- Delovna mesta
- json
- Ključne
- Največji
- kosilo
- začela
- izstrelki
- Knjižnica
- življenje
- kot
- vrstica
- Seznam
- Long
- upravitelj
- Maj ..
- Spomin
- meritev
- Meritve
- min
- spremenite
- monitor
- spremljanje
- več
- Najbolj
- morajo
- Ime
- Imena
- ostalo
- potrebna
- Naslednja
- Vozel
- vozlišča
- Upoštevajte
- Obvestilo
- Obvestila
- Številka
- Cilji
- of
- on
- samo
- optimizacija
- optimizacijo
- možnosti
- or
- Ostalo
- naši
- pregled
- paket
- par
- podokno
- parameter
- parametri
- pot
- za
- performance
- Dovoljenja
- Načrt
- platon
- Platonova podatkovna inteligenca
- PlatoData
- portret
- Prispevek
- močan
- praksa
- tlak
- cenitev
- , ravnateljica
- zasebna
- Težave
- Procesi
- obravnavati
- profil
- zagotavljajo
- zagotavlja
- objavijo
- Push
- potiska
- Potiskanje
- hitro
- precej
- pravo
- v realnem času
- Priporočamo
- povezane
- sprostitev
- pomembno
- ostajajo
- zahteva
- obvezna
- Zahteve
- vir
- izkoriščanje virov
- viri
- odgovorna
- pregleda
- robusten
- vloga
- vloge
- koren
- tek
- razširljive
- brezšivne
- Oddelek
- oddelki
- varnost
- glej
- pošljite
- pošiljanja
- pošlje
- Storitev
- Storitve
- Zasedanje
- shouldnt
- Enostavno
- So
- Rešitev
- rešitve
- SOLVE
- nekaj
- vir
- Izvorna koda
- Spark
- specifična
- sveženj
- Stage
- postopka
- Začetek
- Začetek
- začne
- Korak
- Koraki
- stop
- shranjevanje
- subnet
- Uspešno
- taka
- POVZETEK
- sistem
- sistemi
- Bodite
- meni
- Naloga
- Naloge
- tehnični
- Predloga
- kot
- da
- O
- Vir
- njihove
- Njih
- POTEM
- te
- jih
- ta
- skozi
- čas
- do
- sledenje
- sprožijo
- pod
- uporaba
- Rabljeni
- uporabo
- izkorišča
- raznolikost
- različica
- Poglej
- Virtual
- walkthrough
- želeli
- je
- we
- web
- spletne storitve
- kdaj
- ki
- medtem
- bo
- z
- potek dela
- deluje
- X
- yaml
- jo
- Vaša rutina za
- zefirnet