Apache Spark в Amazon EMR

Преимущества Apache Spark для EMR

Сервис Amazon EMR идеально подходит для запуска Apache Spark. Вы можете быстро и просто создавать управляемые кластеры Spark с помощью консоли управления AWS, интерфейса командной строки или API сервиса Amazon EMR. Кроме того, можно использовать дополнительные функции Amazon EMR, в том числе быстрое подключение к Amazon S3 с помощью файловой системы Amazon EMR (EMRFS), интеграцию с магазином спотовых инстансов Amazon EC2 и Каталогом данных AWS Glue, а также сервис управляемого масштабирования EMR для добавления или удаления инстансов из кластера. Сервис AWS Lake Formation обеспечивает точное управление доступом, а интеграция с AWS Step Functions помогает оркестрировать конвейеры данных. Студия EMR (предварительная версия) – это интегрированная среда разработки (IDE), которая позволяет специалистам по работе с данными и инженерам по обработке данных упрощать процесс разработки, визуализации и отладки приложений для обработки или анализа данных, написанных на R, Python, Scala и PySpark. EMR Studio включает в себя полностью управляемые блокноты Jupyter и такие инструменты, как ИП Spark и сервис YARN Timeline, для упрощения отладки. Блокноты EMR упрощают проведение экспериментов и создание приложений с помощью Spark. При желании можно использовать Apache Zeppelin, чтобы создавать интерактивные блокноты с возможностью совместного использования для просмотра данных с помощью Spark.

Подробные сведения об Apache Spark см. здесь

Функции и преимущества

EMR предусматривает Среду выполнения Amazon EMR для Apache Spark – среду выполнения с оптимизированной производительностью для Apache Spark, по умолчанию доступную в кластерах Amazon EMR. Скорость в среде выполнения Amazon EMR для Apache Spark может быть более чем в три раза выше, чем скорость в кластерах без среды выполнения EMR. Кроме того, Amazon EMR имеет 100%-ю совместимость API со стандартным Apache Spark. Такая повышенная производительность означает, что рабочие нагрузки будут работать быстрее, что позволит сократить затраты на вычислительные ресурсы, не внося никаких изменений в приложения.

Используя механизм выполнения типа «направленный ациклический граф» (DAG), Spark может создавать эффективные планы запросов на преобразование данных. Spark сохраняет в памяти входные, выходные и промежуточные данные в виде устойчивых кадров данных, что обеспечивает быструю обработку без затрат на операции ввода‑вывода и повышает производительность повторяющихся или интерактивных нагрузок.

Apache Spark по умолчанию поддерживает Java, Scala, SQL и Python, что позволяет выбирать язык разработки приложений. Кроме того, можно отправлять запросы SQL или HiveQL, используя модуль Spark SQL. Помимо запуска приложений можно использовать API Spark совместно с Python или Scala прямо в оболочке Spark или через Студию EMR или Блокноты Jupyter в своем кластере. Поддержка Apache Hadoop 3.0 в EMR 6.0 обеспечивает поддержку контейнеров Docker для упрощения управления зависимостями. Кроме того, можно использовать независимые от кластеров Блокноты EMR (на основе Jupyter) или Zeppelin, чтобы создавать интерактивные и совместные блокноты для просмотра и визуализации данных. Настраивать и отлаживать рабочие нагрузки можно в консоли EMR, которая имеет постоянный сервер истории Spark, работающий вне кластеров.

Apache Spark включает несколько библиотек, помогающих создавать приложения для машинного обучения (MLlib), обработки потоков (Spark Streaming) и графов (GraphX). Эти библиотеки тесно интегрированы с семейством инструментов Spark и могут использоваться во множестве примеров использования как готовые инструменты. Дополнительно можно использовать платформы глубокого обучения вроде Apache MXNet совместно с приложениями Spark. Интеграция с AWS Step Functions позволяет добавлять в приложения оркестрацию и автоматизацию бессерверных рабочих процессов.

Запускайте задания Apache Spark с помощью API Step в сервисе EMR, используйте Spark вместе с файловой системой EMRFS для прямого доступа к данным в сервисе S3, снижайте затраты благодаря спотовым инстансам EC2, используйте сервис управляемого масштабирования EMR для динамического добавления и удаления ресурсов, а также запускайте долго работающие или транзитные кластеры в зависимости от рабочей нагрузки. Можно .tp труда настроить шифрование Spark и аутентификацию по протоколу Kerberos с помощью конфигурации безопасности EMR. Кроме того, можно использовать Каталог данных AWS Glue для хранения метаданных таблиц Spark SQL или применять Amazon SageMaker совместно с конвейерами машинного обучения Spark. Сервис EMR устанавливает систему Spark на платформе Hadoop YARN и управляет ею. При этом можно добавлять в свой кластер другие приложения для работы с большими данными. EMR в связке с Apache Hudi позволяет более эффективно управлять захватом меняющихся данных (CDC) и помогает соблюдать нормативные требования в области конфиденциальности, такие как GDPR и CCPA, упрощая удаление записей. Дополнительные сведения о функциях сервиса EMR см. здесь.

Примеры использования

Собирайте и обрабатывайте данные в режиме реального времени из Amazon Kinesis, Apache Kafka и других потоков данных с помощью расширения Spark Streaming в EMR. Используйте отказоустойчивые методы анализа потоковых данных и записывайте результаты в S3 или файловую систему HDFS на кластере.

Apache Spark в EMR включает библиотеку MLlib с множеством масштабируемых алгоритмов машинного обучения, а также позволяет использовать собственные библиотеки. Сохраняя наборы данных в памяти во время выполнения задачи, Spark повышает производительность повторяющихся запросов, которые часто встречаются в процессе машинного обучения. Расширить возможности Amazon SageMaker можно за счет подключения инстанса блокнота к кластеру Apache Spark, выполняемому в сервисе Amazon EMR, с помощью Amazon SageMaker Spark для легко обучаемых моделей и моделей размещения.

Используйте Spark SQL для отправки интерактивных запросов SQL или HiveQL с низкой задержкой. Spark в EMR может использовать файловую систему EMRFS, обеспечивая возможность спонтанного доступа к пакетам данных в сервисе S3. Кроме того, можно использовать EMR Studio, блокноты EMR Notebooks, блокноты Zeppelin или инструменты бизнес‑аналитики через подключения ODBC или JDBC.

Истории успеха клиентов

  • Yelp

    Группа по целевой рекламе компании Yelp создает прогнозирующие модели для определения вероятности реакции пользователя на рекламное сообщение. Используя систему Apache Spark в Amazon EMR для обработки больших объемов данных и тренировки моделей машинного обучения, специалисты Yelp повысили прибыль и процент переходов по рекламным ссылкам.

  • The Washington Post

    The Washington Post использует Apache Spark в Amazon EMR для построения на сайте газеты моделей работы рекомендательных систем, призванных повысить степень вовлеченности и удовлетворенности читателей. Компания использует скоростное соединение между сервисами Amazon EMR и Amazon S3 для обновления моделей в режиме, близком к реальному времени.

  • Krux

    С помощью системы Apache Spark компания Krux задействует множество процессов машинного обучения и общей обработки данных в составе своей платформы управления данными для анализа потребностей клиентов. Для снижения затрат компания Krux использует краткосрочные кластеры Amazon EMR на спотовых инстансах Amazon EC2, а также сервис Amazon S3 с файловой системой EMRFS в качестве уровня хранения данных для Apache Spark.

    Подробнее »
  • GumGum

    Платформа GumGum, предлагающая размещение рекламы с использованием технологий «in‑image» и «in‑screen», использует Spark в Amazon EMR для прогнозного учета ресурсов, обработки журналов истории посещений и спонтанного анализа неструктурированных данных в Amazon S3. Повышение производительности этих рабочих нагрузок благодаря Spark позволило компании GumGum сэкономить время и деньги.

    Подробнее »
  • Hearst Corporation

    Hearst Corporation, крупная компания, владеющая различными СМИ и медиаресурсами, предоставляет клиентам контент для просмотра более чем на 200 веб‑сайтах. Благодаря Apache Spark Streaming в Amazon EMR сотрудники редакции компании Hearst могут в режиме реального времени отслеживать, какие статьи вызывают положительный отклик и какие темы наиболее популярны.

    Подробнее »
  • CrowdStrike

    Компания CrowdStrike занимается защитой конечных точек от несанкционированного доступа. Ее специалисты используют сервис Amazon EMR с системой Spark, чтобы обрабатывать терабайты данных о событиях и преобразовывать их в более сложное поведенческое описание действий, производимых на хостах. На основании этих данных компания CrowdStrike может сформировать обобщенные данные о событиях и выявить вредоносную активность.

    Подробнее »