Aby poprawić wydajność aplikacji Spark, konieczne jest monitorowanie jej wydajności i zachowania. W tym poście pokazujemy, jak publikować szczegółowe metryki Spark z Amazon EMR do Amazon Cloud Watch. Dzięki temu będziesz w stanie zidentyfikować wąskie gardła i jednocześnie zoptymalizować wykorzystanie zasobów.
CloudWatch zapewnia solidne, skalowalne i ekonomiczne rozwiązanie do monitorowania zasobów i aplikacji AWS, z zaawansowanymi opcjami dostosowywania i bezproblemową integracją z innymi usługami AWS. Domyślnie wysyła Amazon EMR podstawowe metryki do CloudWatch, aby śledzić aktywność i stan klastra. Konfigurowalny system metryk Spark umożliwia gromadzenie metryk w różnych ujściach, w tym w plikach HTTP, JMX i CSV, ale wymagana jest dodatkowa konfiguracja, aby umożliwić Sparkowi publikowanie metryk w CloudWatch.
Omówienie rozwiązania
To rozwiązanie obejmuje konfigurację platformy Spark w celu wysyłania metryk do niestandardowego ujścia. Niestandardowy ujście zbiera tylko metryki zdefiniowane w pliku Metricfilter.json. Wykorzystuje agenta CloudWatch do publikowania metryk w niestandardowej przestrzeni nazw Cloudwatch. Dołączony skrypt akcji ładowania początkowego odpowiada za instalację i konfigurację agenta CloudWatch oraz biblioteki metryk na serwerze Elastyczna chmura obliczeniowa Amazon (Amazon EC2) Instancje EMR. Pulpit nawigacyjny CloudWatch może zapewnić natychmiastowy wgląd w wydajność aplikacji.
Poniższy diagram ilustruje architekturę rozwiązania i przepływ pracy.
Przepływ pracy obejmuje następujące kroki:
- Użytkownicy rozpoczynają zadanie Spark EMR, tworząc krok w klastrze EMR. W przypadku Apache Spark obciążenie jest rozkładane na różne węzły klastra EMR.
- W każdym węźle (instancja EC2) klastra biblioteka Spark przechwytuje i przesyła dane metryczne do agenta CloudWatch, który agreguje dane metryczne przed wypchnięciem ich do CloudWatch co 30 sekund.
- Użytkownicy mogą przeglądać metryki, uzyskując dostęp do niestandardowej przestrzeni nazw w konsoli CloudWatch.
Zapewniamy Tworzenie chmury AWS szablon w tym poście jako ogólny przewodnik. Szablon pokazuje, jak skonfigurować agenta CloudWatch w usłudze Amazon EMR w celu przesyłania metryk Spark do CloudWatch. Możesz go przeglądać i dostosowywać w razie potrzeby, aby uwzględnić konfiguracje zabezpieczeń Amazon EMR. Jako najlepszą praktykę zalecamy uwzględnienie konfiguracji zabezpieczeń Amazon EMR w szablonie szyfruj dane w tranzycie.
Należy również mieć świadomość, że niektóre zasoby wdrożone przez ten stos wiążą się z kosztami, gdy pozostają w użyciu. Dodatkowo, Wskaźniki EMR nie ponoszą kosztów CloudWatch. Jednak za metryki niestandardowe naliczane są opłaty na podstawie cen metryk CloudWatch. Aby uzyskać więcej informacji, zobacz Ceny Amazon CloudWatch.
W kolejnych sekcjach przechodzimy przez następujące kroki:
- Utwórz i prześlij bibliotekę metryk, skrypt instalacyjny i definicję filtra do pliku Usługa Amazon Simple Storage Łyżka (Amazon S3).
- Użyj szablonu CloudFormation, aby utworzyć następujące zasoby:
- Monitoruj metryki Spark na konsoli CloudWatch.
Wymagania wstępne
Ten post zakłada, że masz następujące elementy:
- An Konto AWS.
- Wiadro S3 do przechowywania skryptu ładowania początkowego, biblioteki i definicji filtra metrycznego.
- VPC utworzone w Wirtualna prywatna chmura Amazon (Amazon VPC), gdzie zostanie uruchomiony Twój klaster EMR.
- Domyślne role usług IAM dla uprawnień Amazon EMR do usług i zasobów AWS. Możesz utworzyć te role za pomocą polecenia aws emr create-default-roles w pliku Interfejs wiersza poleceń AWS (interfejs wiersza poleceń AWS).
- Opcjonalna para kluczy EC2, jeśli planujesz połączyć się z klastrem za pośrednictwem protokołu SSH Menedżer sesji, zdolność Menedżer systemów AWS.
Zdefiniuj wymagane metryki
Aby uniknąć wysyłania niepotrzebnych danych do CloudWatch, nasze rozwiązanie implementuje filtr metryczny. Przejrzyj Dokumentacja Spark aby zapoznać się z przestrzeniami nazw i powiązanymi z nimi metrykami. Określ, które metryki są istotne dla konkretnych celów aplikacji i wydajności. Różne aplikacje mogą wymagać monitorowania różnych metryk, w zależności od obciążenia, wymagań dotyczących przetwarzania danych i celów optymalizacji. Nazwy metryk, które chcesz monitorować, powinny być zdefiniowane w pliku Metricfilter.json wraz z powiązanymi z nimi przestrzeniami nazw.
Stworzyliśmy przykładową definicję Metricfilter.json, która obejmuje przechwytywanie metryk związanych z operacjami we/wy danych, wyrzucaniem elementów bezużytecznych, obciążeniem pamięci i procesora oraz metrykami zadań, etapów i zadań platformy Spark.
Należy pamiętać, że niektóre metryki nie są dostępne we wszystkich wersjach platformy Spark (na przykład appStatus został wprowadzony w platformie Spark 3.0).
Utwórz i prześlij wymagane pliki do segmentu S3
Aby uzyskać więcej informacji, zobacz Przesyłanie obiektów i Instalowanie i uruchamianie agenta CloudWatch na Twoich serwerach.
Aby utworzyć i przesłać skrypt ładowania początkowego, wykonaj następujące czynności:
- Na konsoli Amazon S3 wybierz swoje wiadro S3.
- Na Obiekty kartę, wybierz Prześlij.
- Dodaj Dodaj pliki, a następnie wybierz Metricfilter.json, instalator.sh, przykładpraca.sh akta.
- Dodatkowo prześlij plik
emr-custom-cw-sink-0.0.1.jar
metrics plik biblioteki odpowiadający wersji Amazon EMR, której będziesz używać: - Dodaj Prześliji zanotuj identyfikatory URI S3 plików.
Aprowizuj zasoby za pomocą szablonu CloudFormation
Dodaj Uruchom stos aby uruchomić stos CloudFormation na swoim koncie i wdrożyć szablon:
Ten szablon tworzy rolę uprawnień, profil instancji uprawnień, klaster EMR i pulpit nawigacyjny CloudWatch. Klaster rozpoczyna działanie podstawowe Przykładowa aplikacja Spark. Opłata zostanie naliczona za użyte zasoby AWS, jeśli utworzysz stos z tego szablonu.
Kreator CloudFormation poprosi Cię o zmodyfikowanie lub podanie następujących parametrów:
- Typ wystąpienia - rodzaj instancji dla wszystkich grup instancji. Wartość domyślna to m5.2xlarge.
- InstanceCountCore – Liczba instancji w podstawowej grupie instancji. Wartość domyślna to 4.
- Etykieta wydania EMRR - Etykieta wydania Amazon EMR chcesz użyć. Domyślnie jest to emr-6.9.0.
- Ścieżka skryptu Bootstrap – Ścieżka S3 skopiowanego wcześniej skryptu startowego instalacji installer.sh.
- Ścieżka filtra metrycznego – Ścieżka S3 skopiowanej wcześniej definicji Metricfilter.json.
- Ścieżka biblioteki metryk – Ścieżka S3 biblioteki CloudWatch emr-custom-cw-sink-0.0.1.jar, którą skopiowałeś wcześniej.
- Przestrzeń nazw CloudWatch – Nazwa niestandardowej przestrzeni nazw CloudWatch, która ma być używana.
- Ścieżka aplikacji SparkDemo – Ścieżka S3 skopiowanego wcześniej skryptu examplejob.sh.
- Subnet – Podsieć EC2, w której uruchamiany jest klaster. Musisz podać ten parametr.
- EC2KeyPairNazwa – Opcjonalna para kluczy EC2 do łączenia się z węzłami klastra, jako alternatywa dla Session Managera.
Zobacz metryki
Po pomyślnym wdrożeniu stosu CloudFormation przykładowe zadanie zostanie uruchomione automatycznie i zajmie około 15 minut. W konsoli CloudWatch wybierz Pulpity w panelu nawigacji. Następnie przefiltruj listę według prefiksu SparkMonitoring.
Przykładowy pulpit nawigacyjny zawiera informacje o klastrze oraz przegląd zadań, etapów i zadań platformy Spark. Metryki są również dostępne w niestandardowej przestrzeni nazw rozpoczynającej się od EMRCustomSparkCloudWatchSink
.
Uwzględnione są także wskaźniki dotyczące pamięci, procesora, operacji we/wy i dodatkowego rozkładu zadań.
Wreszcie, szczegółowe metryki zbierania elementów bezużytecznych Java są dostępne dla każdego modułu wykonującego.
Sprzątać
Aby uniknąć przyszłych opłat na koncie, usuń zasoby utworzone w tym przewodniku. Klaster EMR będzie naliczany opłat tak długo, jak klaster będzie aktywny, więc zatrzymaj go, gdy skończysz. Wykonaj następujące kroki:
- W konsoli CloudFormation w okienku nawigacji wybierz Półki na książki.
- Wybierz stos, który uruchomiłeś (
EMR-CloudWatch-Demo
), następnie wybierz Usuń. - Opróżnij wiadro S3 stworzyłeś.
- Usuń wiadro S3 stworzyłeś.
Wnioski
Po wykonaniu kroków opisanych w tym instruktażu agent CloudWatch działa na hostach klastra i jest skonfigurowany do wypychania metryk Spark do CloudWatch. Dzięki tej funkcji możesz skutecznie monitorować stan i wydajność zadań Spark działających na platformie Amazon EMR, wykrywając krytyczne problemy w czasie rzeczywistym i szybko identyfikując pierwotne przyczyny.
Możesz spakować i wdrożyć to rozwiązanie za pomocą szablonu CloudFormation, takiego jak ten przykładowy szablon, który tworzy rolę profilu instancji IAM, pulpit nawigacyjny CloudWatch i klaster EMR. Kod źródłowy biblioteki jest dostępny na stronie GitHub do personalizacji.
Aby pójść dalej, rozważ użycie tych metryk w alarmach CloudWatch. Można je zebrać z innymi alarmami w pliku alarm złożony lub skonfigurować działania alarmowe, takie jak wysyłanie Usługa prostego powiadomienia Amazon (Amazon SNS) powiadomienia do wyzwalania procesów sterowanych zdarzeniami, takich jak AWS Lambda funkcje.
O autorze
Le Clue Lubbe jest głównym inżynierem w AWS. Współpracuje z naszymi największymi klientami korporacyjnymi, rozwiązując niektóre z ich najbardziej złożonych problemów technicznych. Tworzy szerokie rozwiązania poprzez innowacje, które wpływają na życie naszych klientów i poprawiają je.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- PlatoData.Network Pionowe generatywne AI. Wzmocnij się. Dostęp tutaj.
- PlatoAiStream. Inteligencja Web3. Wiedza wzmocniona. Dostęp tutaj.
- PlatonESG. Motoryzacja / pojazdy elektryczne, Węgiel Czysta technologia, Energia, Środowisko, Słoneczny, Gospodarowanie odpadami. Dostęp tutaj.
- Platon Zdrowie. Inteligencja w zakresie biotechnologii i badań klinicznych. Dostęp tutaj.
- ChartPrime. Podnieś poziom swojej gry handlowej dzięki ChartPrime. Dostęp tutaj.
- Przesunięcia bloków. Modernizacja własności offsetu środowiskowego. Dostęp tutaj.
- Źródło: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :Jest
- :nie
- :Gdzie
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- zdolność
- Dostęp
- Konto
- obeznany
- w poprzek
- Działania
- działania
- aktywny
- działalność
- Dodatkowy
- do tego
- Agent
- alarm
- Wszystkie kategorie
- pozwala
- wzdłuż
- również
- alternatywny
- Amazonka
- Amazon EC2
- Amazon EMR
- Amazon Web Services
- an
- i
- Apache
- Apache Spark
- Zastosowanie
- aplikacje
- w przybliżeniu
- architektoniczny
- architektura
- SĄ
- AS
- powiązany
- zakłada
- At
- autor
- automatycznie
- dostępny
- uniknąć
- świadomy
- AWS
- na podstawie
- podstawowy
- BE
- zanim
- BEST
- Bootstrap
- szeroki
- ale
- by
- CAN
- zdolność
- przechwytuje
- Przechwytywanie
- Przyczyny
- pewien
- Opłaty
- Dodaj
- Grupa
- kod
- zbierać
- kolekcja
- zbiera
- kompletny
- Zakończony
- kompleks
- obliczać
- systemu
- skonfigurowany
- Skontaktuj się
- Podłączanie
- Rozważać
- Konsola
- rdzeń
- odpowiada
- opłacalne
- Koszty:
- mógłby
- CPU
- Stwórz
- stworzony
- tworzy
- Tworzenie
- krytyczny
- zwyczaj
- Klientów
- dostosowywanie
- dostosować
- tablica rozdzielcza
- dane
- analiza danych
- Domyślnie
- zdefiniowane
- definicja
- wykazać
- demonstruje
- W zależności
- rozwijać
- wdrażane
- wdraża się
- szczegółowe
- Ustalać
- różne
- dystrybuowane
- 分配
- zrobić
- nie
- dyski
- każdy
- Wcześniej
- faktycznie
- efektywność
- umożliwiać
- inżynier
- Enterprise
- klienci korporacyjni
- niezbędny
- Eter (ETH)
- przykład
- Cecha
- filet
- Akta
- filtrować
- następujący
- W razie zamówieenia projektu
- od
- Funkcje
- dalej
- przyszłość
- Ogólne
- otrzymać
- Dać
- Go
- Gole
- Zarządzanie
- Grupy
- poprowadzi
- Have
- he
- Zdrowie
- gospodarze
- W jaki sposób
- How To
- Jednak
- HTML
- http
- HTTPS
- IAM
- zidentyfikować
- identyfikacja
- if
- ilustruje
- ilustrujące
- Rezultat
- narzędzia
- podnieść
- in
- zawierać
- włączony
- obejmuje
- Włącznie z
- Informacja
- Innowacja
- wgląd
- instalacja
- Instalacja
- przykład
- natychmiastowy
- integracja
- najnowszych
- wprowadzono
- problemy
- IT
- JEGO
- Java
- Praca
- Oferty pracy
- json
- Klawisz
- największym
- uruchomić
- uruchomiona
- uruchamia
- Biblioteka
- życie
- lubić
- Linia
- Lista
- długo
- kierownik
- Może..
- Pamięć
- metryczny
- Metryka
- minuty
- modyfikować
- monitor
- monitorowanie
- jeszcze
- większość
- musi
- Nazwa
- Nazwy
- Nawigacja
- potrzebne
- Następny
- węzeł
- węzły
- noty
- powiadomienie
- Powiadomienia
- numer
- Cele
- of
- on
- tylko
- optymalizacja
- optymalizacji
- Opcje
- or
- Inne
- ludzkiej,
- przegląd
- pakiet
- đôi
- chleb
- parametr
- parametry
- ścieżka
- dla
- jest gwarancją najlepszej jakości, które mogą dostarczyć Ci Twoje monitory,
- uprawnienia
- krok po kroku
- plato
- Analiza danych Platona
- PlatoDane
- portret
- Post
- mocny
- praktyka
- nacisk
- wycena
- Główny
- prywatny
- problemy
- procesów
- przetwarzanie
- Profil
- zapewniać
- zapewnia
- publikować
- Naciskać
- wypycha
- Popychanie
- szybko
- raczej
- real
- w czasie rzeczywistym
- polecić
- związane z
- zwolnić
- pozostawać
- wymagać
- wymagany
- wymagania
- Zasób
- utylizacja zasobów
- Zasoby
- odpowiedzialny
- przeglądu
- krzepki
- Rola
- role
- korzeń
- bieganie
- skalowalny
- bezszwowy
- Sekcja
- działy
- bezpieczeństwo
- widzieć
- wysłać
- wysyłanie
- wysyła
- usługa
- Usługi
- Sesja
- powinien
- Prosty
- So
- rozwiązanie
- Rozwiązania
- ROZWIĄZANIA
- kilka
- Źródło
- Kod źródłowy
- Iskra
- specyficzny
- stos
- STAGE
- etapy
- początek
- Startowy
- rozpocznie
- Ewolucja krok po kroku
- Cel
- Stop
- przechowywanie
- podsieci
- Z powodzeniem
- taki
- PODSUMOWANIE
- system
- systemy
- Brać
- trwa
- Zadanie
- zadania
- Techniczny
- szablon
- niż
- że
- Połączenia
- Źródło
- ich
- Im
- następnie
- Te
- one
- to
- Przez
- czas
- do
- śledzić
- wyzwalać
- dla
- posługiwać się
- używany
- za pomocą
- wykorzystuje
- różnorodność
- wersja
- Zobacz i wysłuchaj
- Wirtualny
- solucja
- chcieć
- była
- we
- sieć
- usługi internetowe
- jeśli chodzi o komunikację i motywację
- który
- Podczas
- będzie
- w
- workflow
- działa
- X
- jamla
- ty
- Twój
- zefirnet