Проект Big Data на облачной платформе AWS

Поскольку доверие к облачным сервисам возрастает, все больше и больше компаний сегодня отдают им предпочтение. Среди таких сервисов — обладающая широким функционалом платформа Amazon Web Services.

Задача

После предварительного анализа инженеры СКЭНД получили следующий набор требований к разрабатываемому ПО:

  • Обработка интенсивного потока данных об использовании приложений на мобильных устройствах. Объем данных будет расти.
  • Возможность вычислять необходимую статистику на основе собранных данных и добавлять новые виды статистики. То есть требуется бессрочное хранение данных.
  • Возможность фильтровать результаты вычислений и строить графики по соответствующим критериям.
  • Возможность автоматически рассчитывать статистику для заданных временных интервалов.

Подход

Расчеты статистики требуют большого объема дискового пространства и вычислительной мощности. Выбранная в качестве основы платформа Amazon Web Services предоставляет набор услуг и ресурсов, необходимых для разрабатываемого ПО, по оптимальной стоимости. AWS обеспечивает сравнительно дешевое хранение почти неограниченного объема данных и поддерживает автоматическое развертывание кластеров Hadoop, что требовалось для выполнения поставленной задачи.

Разработчики СКЭНД реализовали конвейер обработки данных, состоящий из нескольких этапов.

Первый этап: сбор необработанных данных. Чтобы снизить стоимость API для сбора данных и защитить его от несанкционированного доступа, команда веб-разработчиков использовала Amazon Cognito. Этот сервис обеспечивает точное управление правами зарегистрированных и новых пользователей. Отчеты об использовании Android-приложений собираются на устройствах и передаются напрямую в корзину Amazon S3 с доступом только для записи, которая контролируется сервисом Cognito. Это совершенно безопасная операция, поскольку из такой корзины невозможно извлечь информацию. Полученные в результате описанных выше операций данные содержат большое количество маленьких файлов-отчетов в специальной «буферной» корзине S3.

Второй этап: сжатие данных. До сохранения в основной корзине данные преобразуются в сжатые файлы значительно большего размера, имеющие колоночный формат, более эффективный при чтении данных по частям. Конвертация осуществляется с помощью кода Spark, выполняемого в Hadoop-кластере AWS EMR на спотовых инстансах. Кластер запускается и останавливается автоматически. Здесь очевидны преимущества панели управления AWS для проекта: сервис EMR дает возможность автоматического управления Hadoop-кластером с минимальными усилиями со стороны разработчиков.

Третий этап: подсчет статистики. Инженеры СКЭНД по требованию запускают похожий кластер на EMR, где выполняется распределенная программа на Spark, подсчитывающая требуемую статистику. Результаты вычислений хранятся в большой SQL базе данных на Amazon в виде нескольких таблиц, оптимизированных для поиска по определенным периодам времени.

Четвертый этап: отображение статистики. Веб-фронтенд на Apache Tomcat использует JavaScript-библиотеку D3 для построения графиков на основе выборки из базы данных по заданным критериям.

 

Результат

Платформа Amazon Web Services позволяет создать сложный конвейер обработки больших данных, обойдя основные узкие места при работе с такими объемами информации: дисковое пространство, вычислительную мощность и распределенные вычисления.

Amazon S3 — одно из самых недорогих хранилищ типа “Ключ-Значение” в своем роде, а кластер EMR обеспечивает простой, высокоавтоматизированный способ быстрого развертывания и настройки большого кластера Hadoop, что существенно сокращает затраты на разработку.

Нуждаетесь в разработке похожего проекта?

Свяжитесь с нами

Наша команда к вашим услугам! Напишите нам, и мы ответим вам в ближайшее время.

Спасибо, что написали нам! Ваше сообщение было успешно отправлено. Мы обязательно ответим на него в ближайшее время. Пожалуйста, проверьте, получили ли Вы от нас письмо-подтверждение на указанную Вами почту.