Щоб підвищити ефективність програми Spark, важливо стежити за її продуктивністю та поведінкою. У цій публікації ми демонструємо, як публікувати докладні показники Spark з Amazon EMR до Amazon CloudWatch. Це дасть вам можливість виявити вузькі місця під час оптимізації використання ресурсів.
CloudWatch надає надійне, масштабоване та економічно ефективне рішення для моніторингу ресурсів і додатків AWS із потужними можливостями налаштування та бездоганною інтеграцією з іншими службами AWS. За умовчанням Amazon EMR надсилає основні показники до CloudWatch для відстеження активності та стану кластера. Настроювана система показників Spark дозволяє збирати показники в різноманітних приймачах, включаючи файли HTTP, JMX і CSV, але потрібна додаткова конфігурація, щоб дозволити Spark публікувати показники в CloudWatch.
Огляд рішення
Це рішення включає конфігурацію Spark для надсилання метрик до спеціального приймача. Спеціальний приймач збирає лише показники, визначені у файлі Metricfilter.json. Він використовує агент CloudWatch для публікації показників у спеціальному просторі імен Cloudwatch. Включений сценарій початкового завантаження відповідає за встановлення та налаштування агента CloudWatch і бібліотеки показників на Обчислювальна хмара Amazon Elastic (Amazon EC2) Примірники EMR. Інформаційна панель CloudWatch може надати миттєве уявлення про продуктивність програми.
На наступній діаграмі показано архітектуру рішення та робочий процес.
Робочий процес включає наступні кроки:
- Користувачі запускають завдання Spark EMR, створюючи крок у кластері EMR. За допомогою Apache Spark робоче навантаження розподіляється між різними вузлами кластера EMR.
- У кожному вузлі (примірнику EC2) кластера бібліотека Spark збирає та надсилає дані метрик до агента CloudWatch, який агрегує дані метрик перед надсиланням їх у CloudWatch кожні 30 секунди.
- Користувачі можуть переглядати показники, отримуючи доступ до спеціального простору імен на консолі CloudWatch.
Ми надаємо AWS CloudFormation шаблон у цій публікації як загальний посібник. Шаблон демонструє, як налаштувати агент CloudWatch на Amazon EMR для передачі показників Spark у CloudWatch. Ви можете переглянути та налаштувати його за потреби, щоб включити конфігурації безпеки Amazon EMR. Як найкращу практику ми рекомендуємо включити конфігурації безпеки Amazon EMR у шаблон шифрувати дані під час передачі.
Ви також повинні знати, що деякі ресурси, розгорнуті цим стеком, несуть витрати, коли вони залишаються у використанні. Крім того, ЕМІ метрики не стягувати витрат на CloudWatch. Однак користувацькі показники стягують плату на основі ціни показників CloudWatch. Для отримання додаткової інформації див Ціни Amazon CloudWatch.
У наступних розділах ми виконаємо наступні кроки:
- Створіть і завантажте бібліотеку показників, сценарій встановлення та визначення фільтра в Служба простого зберігання Amazon (Amazon S3) відро.
- Використовуйте шаблон CloudFormation, щоб створити такі ресурси:
- Відстежуйте показники Spark на консолі CloudWatch.
Передумови
Цей пост передбачає, що у вас є наступне:
- An Обліковий запис AWS.
- Відро S3 для зберігання початкового сценарію, бібліотеки та визначення метричного фільтра.
- VPC, створений у Віртуальна приватна хмара Amazon (Amazon VPC), де буде запущено ваш кластер EMR.
- Ролі служби IAM за умовчанням для дозволів Amazon EMR для служб і ресурсів AWS. Ви можете створити ці ролі за допомогою команди aws emr create-default-roles у Інтерфейс командного рядка AWS (AWS CLI).
- Додаткова пара ключів EC2, якщо ви плануєте підключитися до свого кластера через SSH, а не Менеджер сеансів, здатність Менеджер систем AWS.
Визначте необхідні показники
Щоб уникнути надсилання непотрібних даних до CloudWatch, наше рішення реалізує метричний фільтр. Перегляньте Spark документація познайомитися з просторами імен і пов'язаними з ними метриками. Визначте, які показники відповідають вашому конкретному додатку та цілям ефективності. Для різних програм можуть знадобитися різні показники для моніторингу, залежно від робочого навантаження, вимог до обробки даних і цілей оптимізації. Назви показників, які ви хочете контролювати, мають бути визначені у файлі Metricfilter.json разом із пов’язаними просторами імен.
Ми створили приклад визначення Metricfilter.json, який містить метрики, пов’язані з введенням/виведенням даних, збиранням сміття, навантаженням на пам’ять і ЦП, а також показники завдань, етапів і завдань Spark.
Зауважте, що певні показники доступні не в усіх версіях Spark (наприклад, appStatus було представлено в Spark 3.0).
Створіть і завантажте необхідні файли в сегмент S3
Для отримання додаткової інформації див Завантаження об'єктів та Встановлення та запуск агента CloudWatch на ваших серверах.
Щоб створити та завантажити початковий сценарій, виконайте такі дії:
- На консолі Amazon S3 виберіть свій сегмент S3.
- на Об'єкти вкладку, виберіть Завантажувати.
- Вибирати Додати файли, а потім виберіть Metricfilter.json, installer.sh та examplejob.sh файли.
- Крім того, завантажте
emr-custom-cw-sink-0.0.1.jar
файл бібліотеки показників, який відповідає версії випуску Amazon EMR, яку ви використовуватимете: - Вибирати Завантажуватиі зверніть увагу на S3 URI для файлів.
Надання ресурсів за допомогою шаблону CloudFormation
Вибирати Запустити стек щоб запустити стек CloudFormation у вашому обліковому записі та розгорнути шаблон:
Цей шаблон створює роль IAM, профіль екземпляра IAM, кластер EMR і інформаційну панель CloudWatch. Кластер починає базовий Приклад застосування Spark. Якщо ви створите стек із цього шаблону, вам буде виставлено рахунок за використані ресурси AWS.
Майстер CloudFormation попросить вас змінити або надати ці параметри:
- InstanceType - The тип примірника для всіх груп екземплярів. Типовим є m5.2xlarge.
- InstanceCountCore – Кількість примірників у основній групі примірників. За замовчуванням 4.
- EMRReleaseLabel - The Етикетка випуску Amazon EMR ви хочете використовувати. Типовим є emr-6.9.0.
- BootstrapScriptPath – Шлях S3 початкового сценарію встановлення installer.sh, який ви скопіювали раніше.
- MetricFilterPath – Шлях S3 вашого визначення Metricfilter.json, який ви скопіювали раніше.
- MetricsLibraryPath – Шлях S3 вашої бібліотеки CloudWatch emr-custom-cw-sink-0.0.1.jar, яку ви скопіювали раніше.
- Простір імен CloudWatch – Ім’я спеціального простору імен CloudWatch, який буде використано.
- SparkDemoApplicationPath – Шлях S3 вашого сценарію examplejob.sh, який ви скопіювали раніше.
- Підмережа – Підмережа EC2, де запускається кластер. Ви повинні вказати цей параметр.
- EC2KeyPairName – Додаткова пара ключів EC2 для підключення до вузлів кластера як альтернатива Session Manager.
Переглянути показники
Після успішного розгортання стека CloudFormation приклад завдання запускається автоматично та займає приблизно 15 хвилин. На консолі CloudWatch виберіть Панелі на панелі навігації. Потім відфільтруйте список за префіксом SparkMonitoring.
Приклад інформаційної панелі містить інформацію про кластер і огляд завдань, етапів і завдань Spark. Показники також доступні в спеціальному просторі імен, починаючи з EMRCustomSparkCloudWatchSink
.
Пам’ять, ЦП, введення/виведення та додаткові показники розподілу завдань також включені.
Нарешті, детальні метрики збирання сміття Java доступні для кожного виконавця.
Прибирати
Щоб уникнути майбутніх платежів у вашому обліковому записі, видаліть ресурси, створені в цьому покроковому керівництві. Кластер EMR стягуватиме плату, доки кластер активний, тому зупиніть його, коли закінчите. Виконайте наступні дії:
- На консолі CloudFormation на панелі навігації виберіть Стеки.
- Виберіть стек, який ви запустили (
EMR-CloudWatch-Demo
), потім виберіть видаляти. - Спорожніть відро S3 ви створили.
- Видаліть сегмент S3 ви створили.
Висновок
Тепер, коли ви виконали кроки в цьому покроковому керівництві, агент CloudWatch запущено на ваших хостах кластера та налаштований для надсилання показників Spark до CloudWatch. За допомогою цієї функції ви можете ефективно контролювати стан і ефективність завдань Spark, які виконуються на Amazon EMR, виявляючи критичні проблеми в реальному часі та швидко визначаючи першопричини.
Ви можете запакувати та розгорнути це рішення за допомогою шаблону CloudFormation, подібного до цього прикладу шаблону, який створює роль профілю екземпляра IAM, інформаційну панель CloudWatch і кластер EMR. Вихідний код бібліотеки доступний на GitHub для налаштування.
Щоб розвинути це далі, подумайте про використання цих показників у будильниках CloudWatch. Ви можете зібрати їх разом з іншими будильниками в a композитна сигналізація або налаштувати дії тривоги, такі як надсилання Служба простих сповіщень Amazon (Amazon SNS) для запуску процесів, керованих подіями, наприклад AWS Lambda функції.
Про автора
Ле Клю Люббе є головним інженером AWS. Він працює з нашими найбільшими корпоративними клієнтами, щоб вирішити деякі з їхніх найскладніших технічних проблем. Він пропонує широкі рішення за допомогою інновацій, щоб впливати на життя наших клієнтів і покращувати їх.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- ChartPrime. Розвивайте свою торгову гру за допомогою ChartPrime. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :є
- : ні
- :де
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- здатність
- доступ до
- рахунки
- знайомі
- через
- дію
- дії
- активний
- діяльність
- Додатковий
- Додатково
- Агент
- тривога
- ВСІ
- дозволяє
- по
- Також
- альтернатива
- Amazon
- Amazon EC2
- Amazon EMR
- Amazon Web Services
- an
- та
- Apache
- Apache Spark
- додаток
- застосування
- приблизно
- архітектурний
- архітектура
- ЕСТЬ
- AS
- асоційований
- передбачає
- At
- автор
- автоматично
- доступний
- уникнути
- знати
- AWS
- заснований
- основний
- BE
- перед тим
- КРАЩЕ
- Bootstrap
- широкий
- але
- by
- CAN
- можливості
- захвати
- захопивши
- Причини
- певний
- вантажі
- Вибирати
- кластер
- код
- збирати
- збір
- збирає
- повний
- Зроблено
- комплекс
- обчислення
- конфігурація
- налаштувати
- З'єднуватися
- З'єднувальний
- Вважати
- Консоль
- Core
- відповідає
- рентабельним
- витрати
- може
- центральний процесор
- створювати
- створений
- створює
- створення
- критичний
- виготовлений на замовлення
- Клієнти
- настройка
- налаштувати
- приладова панель
- дані
- обробка даних
- дефолт
- певний
- визначення
- демонструвати
- демонструє
- Залежно
- розгортання
- розгорнути
- розгортає
- докладно
- Визначати
- різний
- розподілений
- розподіл
- зроблений
- Не знаю
- диски
- кожен
- Раніше
- фактично
- ефективність
- включіть
- інженер
- підприємство
- корпоративні клієнти
- істотний
- Ефір (ETH)
- приклад
- особливість
- філе
- Файли
- фільтрувати
- після
- для
- від
- Функції
- далі
- майбутнє
- Загальне
- отримати
- Давати
- Go
- Цілі
- Group
- Групи
- керівництво
- Мати
- he
- здоров'я
- хостів
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- IAM
- ідентифікувати
- ідентифікує
- if
- ілюструє
- ілюструють
- Impact
- implements
- удосконалювати
- in
- включати
- включені
- includes
- У тому числі
- інформація
- інновація
- розуміння
- установка
- установка
- екземпляр
- мить
- інтеграція
- в
- введені
- питання
- IT
- ЙОГО
- Java
- робота
- Джобс
- json
- ключ
- найбільших
- запуск
- запущений
- запуски
- бібліотека
- життя
- як
- Лінія
- список
- Довго
- менеджер
- Може..
- пам'ять
- метрика
- Метрика
- протокол
- змінювати
- монітор
- моніторинг
- більше
- найбільш
- повинен
- ім'я
- Імена
- навігація
- необхідний
- наступний
- вузол
- вузли
- увагу
- сповіщення
- Повідомлення
- номер
- цілей
- of
- on
- тільки
- оптимізація
- оптимізуючий
- Опції
- or
- Інше
- наші
- огляд
- пакет
- пара
- pane
- параметр
- параметри
- шлях
- для
- продуктивність
- Дозволи
- план
- plato
- Інформація про дані Платона
- PlatoData
- портрет
- пошта
- потужний
- практика
- тиск
- ціни без прихованих комісій
- Головний
- приватний
- проблеми
- процеси
- обробка
- профіль
- забезпечувати
- забезпечує
- публікувати
- Штовхати
- штовхає
- Натискання
- швидко
- швидше
- реальний
- реального часу
- рекомендувати
- пов'язаний
- звільнити
- доречний
- залишатися
- вимагати
- вимагається
- Вимога
- ресурс
- використання ресурсів
- ресурси
- відповідальний
- огляд
- міцний
- Роль
- ролі
- корінь
- біг
- масштабовані
- безшовні
- розділ
- розділам
- безпеку
- побачити
- послати
- відправка
- посилає
- обслуговування
- Послуги
- Сесія
- Повинен
- простий
- So
- рішення
- Рішення
- ВИРІШИТИ
- деякі
- Source
- вихідні
- Іскритися
- конкретний
- стек
- Стажування
- етапи
- старт
- Починаючи
- починається
- Крок
- заходи
- Стоп
- зберігання
- підмережі
- Успішно
- такі
- РЕЗЮМЕ
- система
- Systems
- Приймати
- приймає
- Завдання
- завдання
- технічний
- шаблон
- ніж
- Що
- Команда
- Джерело
- їх
- Їх
- потім
- Ці
- вони
- це
- через
- час
- до
- трек
- викликати
- при
- використання
- використовуваний
- використання
- використовує
- різноманітність
- версія
- вид
- Віртуальний
- покрокове керівництво
- хотіти
- було
- we
- Web
- веб-сервіси
- коли
- який
- в той час як
- волі
- з
- робочий
- працює
- X
- ямл
- ви
- вашу
- зефірнет