Чтобы повысить эффективность приложения Spark, важно отслеживать его производительность и поведение. В этом посте мы покажем, как публиковать подробные метрики Spark из Амазонка ЭМИ в Amazon CloudWatch. Это даст вам возможность выявлять узкие места и оптимизировать использование ресурсов.
CloudWatch предоставляет надежное, масштабируемое и экономичное решение для мониторинга ресурсов и приложений AWS с мощными возможностями настройки и полной интеграцией с другими сервисами AWS. По умолчанию Amazon EMR отправляет основные показатели в CloudWatch для отслеживания активности и работоспособности кластера. Настраиваемая система метрик Spark позволяет собирать метрики в различных приемниках, включая файлы HTTP, JMX и CSV, но требуется дополнительная настройка, чтобы Spark мог публиковать метрики в CloudWatch.
Обзор решения
Это решение включает конфигурацию Spark для отправки метрик в пользовательский приемник. Пользовательский приемник собирает только метрики, определенные в файле Metricfilter.json. Он использует агент CloudWatch для публикации метрик в специальном пространстве имен Cloudwatch. Входящий в комплект сценарий начальной загрузки отвечает за установку и настройку агента CloudWatch и библиотеки метрик на Эластичное вычислительное облако Amazon (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).
- Дополнительная пара ключей EC2, если вы планируете подключаться к кластеру через SSH, а не через SSH. Диспетчер сеансов, способность Менеджер систем AWS.
Определите необходимые метрики
Чтобы избежать отправки ненужных данных в CloudWatch, в нашем решении реализован фильтр метрик. Обзор Документация Spark познакомиться с пространствами имен и связанными с ними метриками. Определите, какие метрики соответствуют вашему конкретному приложению и целям производительности. Разным приложениям могут потребоваться разные метрики для мониторинга в зависимости от рабочей нагрузки, требований к обработке данных и целей оптимизации. Имена метрик, которые вы хотите отслеживать, должны быть определены в файле Metricfilter.json вместе со связанными с ними пространствами имен.
Мы создали пример определения Metricfilter.json, который включает в себя сбор показателей, связанных с вводом-выводом данных, сборкой мусора, нагрузкой на память и ЦП, а также метриками заданий Spark, этапов и задач.
Обратите внимание, что некоторые метрики доступны не во всех версиях выпуска Spark (например, appStatus был представлен в Spark 3.0).
Создайте и загрузите необходимые файлы в корзину S3.
Для получения дополнительной информации см. Загрузка объектов и Установка и запуск агента CloudWatch на ваших серверах.
Чтобы создать и загрузить скрипт начальной загрузки, выполните следующие действия:
- На консоли Amazon S3 выберите корзину S3.
- На Объекты , выберите Загрузите.
- Выберите Добавить файлы, затем выберите Метрикфильтр.json, установщик.shи примерjob.sh файлы.
- Кроме того, загрузите
emr-custom-cw-sink-0.0.1.jar
файл библиотеки метрик, соответствующий версии выпуска Amazon EMR, которую вы будете использовать: - Выберите Загрузитеи обратите внимание на URI S3 для файлов.
Предоставление ресурсов с помощью шаблона CloudFormation
Выберите Стек запуска чтобы запустить стек CloudFormation в своей учетной записи и развернуть шаблон:
Этот шаблон создает роль IAM, профиль экземпляра IAM, кластер EMR и панель мониторинга CloudWatch. Кластер запускает базовый Пример приложения Spark. Если вы создадите стек на основе этого шаблона, вам будет выставлен счет за использованные ресурсы AWS.
Мастер CloudFormation попросит вас изменить или указать следующие параметры:
- Тип экземпляра - тип экземпляра для всех групп экземпляров. По умолчанию — m5.2xlarge.
- ЭкземплярКаунтКоре – Количество экземпляров в основной группе экземпляров. По умолчанию 4.
- EMRRReleaseLabel - Этикетка выпуска Amazon EMR вы хотите использовать. По умолчанию используется emr-6.9.0.
- BootstrapScriptPath – Путь S3 к сценарию начальной загрузки установки installer.sh, который вы скопировали ранее.
- МетрикФильтерПуть – Путь S3 к вашему определению Metricfilter.json, которое вы скопировали ранее.
- МетрикиБиблиотекаПуть – Путь S3 к вашей библиотеке CloudWatch emr-custom-cw-sink-0.0.1.jar, которую вы скопировали ранее.
- CloudWatchNamespace – Имя пользовательского пространства имен CloudWatch, которое будет использоваться.
- SparkDemoApplicationPath – Путь S3 к сценарию examplejob.sh, который вы скопировали ранее.
- Subnet – Подсеть EC2, в которой запускается кластер. Вы должны указать этот параметр.
- EC2KeyPairName – Дополнительная пара ключей EC2 для подключения к узлам кластера в качестве альтернативы диспетчеру сеансов.
Просмотр показателей
После успешного развертывания стека CloudFormation пример задания запускается автоматически и занимает около 15 минут. В консоли CloudWatch выберите Dashboards в панели навигации. Затем отфильтруйте список по префиксу SparkMonitoring.
Пример информационной панели включает информацию о кластере и обзор заданий, этапов и задач Spark. Метрики также доступны в специальном пространстве имен, которое начинается с EMRCustomSparkCloudWatchSink
.
Также включены показатели памяти, ЦП, ввода-вывода и дополнительные показатели распределения задач.
Наконец, для каждого исполнителя доступны подробные показатели сборки мусора Java.
Убирать
Чтобы избежать будущих расходов в вашей учетной записи, удалите ресурсы, созданные вами в этом пошаговом руководстве. Кластер EMR будет взимать плату, пока он активен, поэтому остановите его, когда закончите. Выполните следующие шаги:
- В консоли CloudFormation на панели навигации выберите Стеки.
- Выберите стек, который вы запустили (
EMR-CloudWatch-Demo
), тогда выбирай Удалить. - Опорожните ведро S3 вы создали.
- Удалить корзину S3 вы создали.
Заключение
Теперь, когда вы выполнили действия, описанные в этом пошаговом руководстве, агент CloudWatch работает на узлах вашего кластера и настроен на отправку метрик Spark в CloudWatch. Благодаря этой функции вы можете эффективно отслеживать работоспособность и производительность заданий Spark, выполняемых в Amazon EMR, обнаруживая критические проблемы в режиме реального времени и быстро выявляя их основные причины.
Вы можете упаковать и развернуть это решение с помощью шаблона CloudFormation, такого как этот пример шаблона, который создает роль профиля экземпляра IAM, панель мониторинга CloudWatch и кластер EMR. Исходный код библиотеки доступен на GitHub для настройки.
Чтобы пойти дальше, рассмотрите возможность использования этих показателей в сигналах тревоги CloudWatch. Вы можете собрать их вместе с другими сигнализациями в составная тревога или настроить действия по тревоге, такие как отправка Amazon Простая служба уведомлений (Amazon SNS) уведомления для запуска процессов, управляемых событиями, таких как AWS Lambda функции.
Об авторе
Ле Клю Люббе является главным инженером в AWS. Он работает с нашими крупнейшими корпоративными клиентами, решая некоторые из их наиболее сложных технических проблем. Он разрабатывает широкие решения посредством инноваций, чтобы повлиять на жизнь наших клиентов и улучшить ее.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- ЧартПрайм. Улучшите свою торговую игру с ChartPrime. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: 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 Web Services
- an
- и
- апаш
- Apache Spark
- Применение
- Приложения
- примерно
- архитектурный
- архитектура
- МЫ
- AS
- связанный
- предполагает,
- At
- автор
- автоматически
- доступен
- избежать
- знать
- AWS
- основанный
- основной
- BE
- до
- ЛУЧШЕЕ
- Начальная загрузка
- широкий
- но
- by
- CAN
- возможности
- перехватывает
- Захват
- Причины
- определенный
- расходы
- Выберите
- Кластер
- код
- собирать
- лыжных шлемов
- улавливается
- полный
- Заполненная
- комплекс
- Вычисление
- Конфигурация
- настроить
- Свяжитесь
- Соединительный
- Рассматривать
- Консоли
- Основные
- соответствует
- рентабельным
- Расходы
- может
- ЦП
- Создайте
- создали
- создает
- Создающий
- критической
- изготовленный на заказ
- Клиенты
- настройка
- настроить
- приборная панель
- данным
- обработка данных
- По умолчанию
- определенный
- определение
- демонстрировать
- демонстрирует
- в зависимости
- развертывание
- развернуть
- развертывает
- подробный
- Определять
- различный
- распределенный
- распределение
- сделанный
- Dont
- диски
- каждый
- Ранее
- фактически
- затрат
- включить
- инженер
- Предприятие
- корпоративные клиенты
- существенный
- Эфир (ETH)
- пример
- Особенность
- Файл
- Файлы
- фильтр
- после
- Что касается
- от
- Функции
- далее
- будущее
- Общие
- получить
- Дайте
- Go
- Цели
- группы
- Группы
- инструкция
- Есть
- he
- Медицина
- хостов
- Как
- How To
- Однако
- HTML
- HTTP
- HTTPS
- IAM
- определения
- идентифицирующий
- if
- иллюстрирует
- иллюстрирующая
- Влияние
- инвентарь
- улучшать
- in
- включают
- включены
- включает в себя
- В том числе
- информация
- Инновации
- понимание
- установка
- Установка
- пример
- мгновение
- интеграции.
- в
- выпустили
- вопросы
- IT
- ЕГО
- Java
- работа
- Джобс
- JSON
- Основные
- крупнейших
- запуск
- запустили
- запускает
- Библиотека
- ЖИЗНЬЮ
- такое как
- линия
- Список
- Длинное
- менеджер
- Май..
- Память
- метрический
- Метрика
- минут
- изменять
- монитор
- Мониторинг
- БОЛЕЕ
- самых
- должен
- имя
- имена
- Навигация
- необходимый
- следующий
- узел
- узлы
- в своих размышлениях
- уведомление
- Уведомления
- номер
- целей
- of
- on
- только
- оптимизация
- оптимизирующий
- Опции
- or
- Другое
- наши
- обзор
- пакет
- пара
- хлеб
- параметр
- параметры
- путь
- для
- производительность
- Разрешения
- план
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- портрет
- После
- мощный
- практика
- давление
- цены
- Основной
- частная
- проблемам
- Процессы
- обработка
- Профиль
- обеспечивать
- приводит
- публиковать
- Push
- выталкивает
- Нажимать
- быстро
- скорее
- реальные
- реального времени
- рекомендовать
- Связанный
- освободить
- соответствующие
- оставаться
- требовать
- обязательный
- Требования
- ресурс
- утилизация ресурсов
- Полезные ресурсы
- ответственный
- обзоре
- надежный
- Роли
- роли
- корень
- Бег
- масштабируемые
- бесшовные
- Раздел
- разделах
- безопасность
- посмотреть
- Отправить
- отправка
- посылает
- обслуживание
- Услуги
- Сессия
- должен
- просто
- So
- Решение
- Решения
- РЕШАТЬ
- некоторые
- Источник
- исходный код
- Искриться
- конкретный
- стек
- Этап
- этапы
- Начало
- Начало
- начинается
- Шаг
- Шаги
- Stop
- диск
- подсети
- Успешно
- такие
- РЕЗЮМЕ
- система
- системы
- взять
- принимает
- Сложность задачи
- задачи
- Технический
- шаблон
- чем
- который
- Ассоциация
- Источник
- их
- Их
- тогда
- Эти
- они
- этой
- Через
- время
- в
- трек
- вызвать
- под
- использование
- используемый
- через
- использует
- разнообразие
- версия
- Вид
- Виртуальный
- прохождение
- хотеть
- законопроект
- we
- Web
- веб-сервисы
- когда
- , которые
- в то время как
- будете
- рабочий
- работает
- X
- YAML
- являетесь
- ВАШЕ
- зефирнет