БОЛЬШИЕ ДАННЫЕ В МОБИЛЬНЫХ ПРИЛОЖЕНИЯХ
А.А. Абдуллаев, магистрант И.М. Мамадаев, магистрант Е.В. Червяков, магистрант
Московский государственный технический университет им. Н.Э. Баумана (Россия, г. Москва)
DOI:10.24412/2500-1000-2021-3-2-26-29
Аннотация. В данной статье анализируются причины возникновения больших данных в мобильных приложениях, а также их особенности и характеристики. Также для анализа больших данных мобильных приложений, рассматривается распространённый фреймворк для работы с Big Data под названием Spark, входящий в проектную экосистему Hadoop и предлагающий крайне эффективный и экономичный способ хранения слабоструктурированных и неструктурированных данных в значительных объёмах.
Ключевые слова: большие данные, Big Data, Hadoop, Spark, мобильные приложения.
Современные информационные системы ориентированы на данные, которые ежедневно генерируются в огромных объёмах [1]. Для получения ценных результатов при выполнении задач в научных, промышленных и бизнес отраслях важно уметь грамотно использовать инструменты для обработки доступных Big Data. Одним из наиболее активно развивающихся направлений в области информационных технологий, имеющих непосредственное отношение к большим данным, являются мобильные технологии, объединяющие Интернет вещей, ориентированный на устройства, и мобильные приложения, которые ориентированы на пользователя [2].
Особенности больших данных
Большие данные представляют собой комплекс подходов, методов и инструментов для обработки данных значительных объёмов, обладающих различной степенью структурированности. Основная цель обработки Big Data заключается в оперативном и эффективном использовании всех доступных видов информации при её непрерывном приросте и изменении в огромных объёмах. Большие данные позволяют работать с настолько обширным объёмом сведений, что его невозможно обработать стандартными аппаратными средствами и инструментами, например системами управления реляционными базами данных (БД) [3]. Основные задачи Big Data состоят в хранении и обработке информа-
ции, что требует применения особых технологий и инструментов, предназначенных для работы со сверхбольшим объёмом данных.
Big Data, применяемые в мобильных приложениях, характеризуются следующими основными признаками [4]:
1. Объём, относящийся к наборам сведений, размер которых превышает возможности программных средств, свойственных типичной БД, осуществляющей сбор, хранение, обработку и анализ данных. Поскольку с собранной БД нельзя взаимодействовать традиционными способами, для работы используются новые подходы и инструменты.
2. Скорость, определяющая реакцию на текущую информацию за период, ограниченный приложением. Этот признак указывает на возрастающую скорость накопления и обработки данных вплоть до обработки в реальном времени.
3. Многообразие, определяющее способность обрабатывать большое количество источников, типов и форматов данных от умных устройств, сенсоров, мобильных приложений и социальных сетей. Оно позволяет интегрировать увеличивающееся число источников, которые содержат различные полуструктурированные, структурированные и неструктурированные данные, извлекаемые из e-mail, web log файлов, web-страниц, документов и прочего.
4. Достоверность данных, являющаяся одним из наиболее важных критериев для пользователей, поскольку работа с недостоверными данными приводит к затруднению их анализа.
5. Ценность накопленной информации, определяющая пользу больших данных в совершенствовании составления отчётности, организации бизнес-процессов, оптимизации расходов компаний и прочей деятельности.
Основная причина появления больших данных заключается в достижениях в области мобильных устройств и приложений. Пользователи получают информацию в колоссальных количествах, а новые приложения, предоставляют функции сервера Big Data. При проектировании мобильных приложений, ориентированных на обработку больших данных, разработчикам приходится решать проблему создания гетерогенной системы для хранения, которая использовала бы разные модели данных [5]. Обычно программисты применяют шаблон проектирования, соответствующий выбранной архитектуре приложения. При этом данные выступают в качестве активов, поэтому нуждаются в надёжной системе защиты, что должна учитывать любая применяемая архитектура. Помимо этого, системы, стремящиеся к обеспечению системного анализа больших данных в мобильных приложениях, должны учитывать следующие факторы [6]:
1. Основой для обеспечения успешного анализа данных является их предварительная обработка. Исходная информация беспорядочна, поэтому для извлечения из неё пользы требуется её очищение, слияние, изменение, перемешивание и прочие действия.
2. Основополагающее понятие в сфере обработки больших данных - это итерация. Для проведения анализа и моделирования чаще всего требуются множественные проходы по одной и той же информации, что объясняется сутью статистических процедур и алгоритмов машинного обучения. Если при каждом обращении к диску фреймворку требуется читать один и тот же набор сведений, то это приводит к
задержке, тормозящей и ограничивающей всю работу.
3. Для полноценного использования возможностей Big Data необходимо превращение хорошо функционирующей модели из регрессионных коэффициентов, хранящихся в текстовом файле на устройстве разработчика, в информационные приложения, в которых модели превращаются в часть сервиса, работающего в режиме эксплуатации и требующего регулярной перестройки.
Принципы функционирования
Apache Spark
При создании мобильного приложения, предназначенного для практической эксплуатации, разработчики занимаются операционной аналитикой, превращая свои модели в сервисы, могущие выступать источником для различных практических решений. Для таких приложений постоянно отслеживается производительность, контролируются SLA и время доступности сервиса и совершенствуются различные характеристики. Для реализации преобразований требуется фреймворк, обеспечивающий удобство моделирования и подходящий для разработки разнонаправленных промышленных систем. Именно таким фреймворком является Apache Spark, обладающий открытым исходным кодом и сочетающий в себе изящную модель для написания программ поверх кластера машин с механизмом распределения программ по нему. Он входит в экосистему проектов Hadoop [7].
Apache Spark может рассматриваться как распределённое, кластерное приложение в процессе непосредственной обработки данных, а также как универсальная платформа, поддерживающая ряд режимов обработки данных, включая пакетную и потоковую обработку, обработку графов и SQL-запросы, и предоставляющая различные средства для этого [1]. Spark предназначен для разработки распределённых приложений, обрабатывающих данные, поэтому предполагает фиксированную master-slave архитектуру, основными компонентами которой выступают:
1. Driver, отвечающий за:
- оркестровку вычислении, то есть назначение задач на занимаемые при помощи executor'oB вычислительные ресурсы с учётом их использования информации;
- генерацию задач, а в случае отказов -их перезапуск;
- отслеживание состояния обработки;
- контроль за вычислительными ресурсами, их выделение и возврат менеджеру ресурсов.
2. Executor, отвечающий за выполнение вычислении над информациеи на ресурсах того вычислительного узла, где она располагается. Этот компонент обеспечивает:
- хранение сведений и предоставление к ним доступа для выполнения обработки, в том числе десериализацию либо загрузку данных с диска;
- контроль за потреблением вычислительных ресурсов;
- запуск задач и фиксирование их результатов.
Spark, как и его предшественник MapReduce, сохраняет отказоустойчивость и линейную масштабируемость, расширяя их в таких важных направлениях, как [6]:
- Выполнение универсального ориентированного ациклического графа, что позволяет передать промежуточные результаты непосредственно на следующий этап конвейера.
- Наличие большого количества преобразований, дающих пользователям возможность задавать вычисления естественным образом. Spark обладает потоковым
API, который способен задавать конвейеры всего в нескольких строках кода.
- Обработка в оперативной памяти, что позволяет разработчикам взаимодействовать с любым местом в обрабатываемом конвейере в машинной памяти кластера, благодаря чему на следующих этапах не требуется заново вычислять данные или считывать их с диска. Это расширяет возможности использования механизмов распределённой обработки.
Spark оптимален для высокоитеративных алгоритмов и приложений, быстро отвечающих на запросы пользователей за счёт просмотра больших наборов данных, расположенных в памяти. Он отличается хорошей интеграцией с большим числом инструментов из экосистемы Hadoop.
Заключение. Работа с большими данными в мобильных приложениях сопряжена с рядом сложностей, в число которых входит недостаточная инфраструктурная мощность, обеспечение должного уровня безопасности, организационные трудности при внедрении инновационных подходов к сбору данных и недостаток ресурсов. Для частичного решения этих проблем, в частности для повышения отказоустойчивости и скорости обработки данных, эффективного выполнения итеративных алгоритмов благодаря поддержке кэширования результатов в памяти и расширения технологий экосистемы Hadoop, применяется фреймворк Apache Spark, позволяющий решать актуальные практические задачи.
Библиографический список
1. Бутаков Н.А., Петров М.В., Насонов Д. Обработка больших данных с Apache Spark. -СПб.: Университет ИТМО, 2019. - 50 с.
2. Комаров М., Кучерявый Е., Источники Больших Данных и современные способы хранения данных // Тезисы докладов конференции «Большие Данные в национальной экономике» / под ред. Дубовой Н.А. - М.: «Открытые системы», 2014. - С. 9-11.
3. Серебряков М.А. Исследование архитектур построения и алгоритмов работы систем хранения и анализа больших данных: выпуск. квалиф. работа: 09.04.03 / М.А. Серебряков; Тольят. гос. ун-т. - Тольятти, 2019. - 97 с.
4. Кобзаренко Д.Н., Мустафаев А.Г. Учебное пособие дисциплины «Анализ больших данных» для направления подготовки 38.03.05«Бизнес-информатика», профиль «Электронный бизнес». - Махачкала: ДГУНХ, 2019. - 107 с.
5. Бойкова М.А., Петрова С.Ю. Пример реализации интероперабельности больших данных для мобильных приложений // Вестник Новгородского государственного университета. - 2017. - № 6 (104). - С. 6-10.
6. Риза С., Лезерсон У., Оуэн Ш., Уиллс Д. Spark для профессионалов: современные паттерны обработки больших данных. - М.: Из-во Питер, 2017. - 272 с.
7. Стаселько И.Д., Сычев А.Ю., Протасов А.П., Позняков Т.Д., Алексеев Ю.И. Форматы файлов больших данных: хранение данных в экосистеме Hadoop // Big Data and Advanced Analytics. - 2020. - № 6-2. - С. 335-339.
BIG DATA IN MOBILE APPS
A.A. Abdullaev, Graduate Student I.M. Mamadaev, Graduate Student E.V. Chervyakov, Graduate Student Bauman Moscow State Technical University (Russia, Moscow)
Abstract. This article analyzes the reasons for the emergence of big data in mobile applications, as well as their features and characteristics. Also, for the analysis of big data for mobile applications, we consider a common framework for working with Big Data called Spark, which is part of the Hadoop project ecosystem and offers an extremely efficient and cost-effective way to store weakly structured and unstructured data in significant volumes.
Keywords: big data, Big Data, Hadoop, Spark, mobile applications.