Тип работы:
Предмет:
Язык работы:


ПОТОЧНЫЙ АГРЕГАТОР ДАННЫХ

Работа №128281

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы32
Год сдачи2021
Стоимость4290 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
13
Не подходит работа?

Узнай цену на написание


1. Введение 4
2. Постановка задачи б
3. Обзор средств для решения задачи 7
3.1. Kafka Streams 7
3.2. Spark Streaming 7
3.3. Spark Structured Streaming 8
3.4. Flink 8
3.5. Сравнение описанных решений 9
3.5.1. Сравнение с Spark Streaming 9
3.5.2. Сравнение с Flink 10
3.5.3. Сравнение с Kafka Streams 10
4. Архитектура проекта 11
4.1. Временные окна и водяные знаки 12
5. Описание решения 15
5.1. Запуск необходимых сервисов 15
5.2. Региональный сервер 17
5.3. Центральный сервер 20
5.4. Генерация тестовых данных 22
6. Заключение 24
Литература 25
А. Листинг программы 27
А.1. SparkRegionServer 27
А. 1.1. Инициализация SparkSession 27
А. 1.2. Функция запуска класса 27
А. 1.3. Инициализация KafkaLoader 28
А. 1.4. Функции для сопоставления ip-адреса и города 28
А. 1.5. Функция подготовки информации о клиентах 29
А. 1.6. Подготовка географического распределения 29
А. 1.7. Подготовка расчета процента длительности сессии . . 30
А.2. SparkMainServer 32
А.2.1. Распаковка поступающих данных для географического распределения 32
А.2.2. Окончательный расчет географического распределения . 32
А.З. KafkaGenerator 34
А.3.1. Создание потоков рассылки 34


Перед современными системами обработки данных встает острая необходимости обрабатывать большие объемы информации, которая постоянно обновляется и увеличивается в размерах. В связи с важностью анализа больших данных было введено понятие Big Data. Одним из первых этот термин ввел Джон Мэши на конференции 1999 года USENIX [1]. Понятие Big Data развивалось настолько быстро и беспорядочно, что нет формального общепринятого определения. В докладе, прозвучавшем на конференции IC-ININFO 2014 [2], подробно разбирается проблема неструктурированного определения для Big Data. В статье выделяются четыре основных темы: информация, технологии, методы и влияние. В настоящей работе рассматриваются методы для анализа больших данных.
Разнообразные методы и технологии разработаны и адаптированы для агрегирования, анализа, обработки и визуализации больших данных. Эти методики основаны на статистике, информатике, прикладной математике и экономике. К подобным методам можно отнести A/В тестирование, обучение ассоциативным правилам, классификация, кластерный анализ, краудсорсинг, слияние и интеграция данных. К тому же их число постоянно возрастает. Более подробную информацию об этих и других методах можно прочитать в книге McKinsey [3].
Часто для управления разнообразными системами нет необходимости рассматривать все полученные данные. Для корректной работы достаточно использовать только наиболее актуальную информацию, поскольку устаревшая может быть не только бесполезна, но и сильно повлиять на достоверность результатов. В связи с этим при анализе выбираются только те данные, которые поступили не позднее, чем за некоторое "оптимальное" время. И уже в зависимости от системы обработки выбирается, какое время наиболее оптимально.
Для работы с данными с выборкой по времени наиболее удобны системы потоковой обработки (Stream processing). При такой обработке данные выстраиваются в упорядоченную последовательность экземпляров, которые могут быть прочитаны только один или некоторое малое число раз, при ограниченных возможностях вычисления и хранения. За счет этого потоковая обработка имеет высокую скорость работы. Такие приложения позволяют обойти загрузку и хранение поступающих данных в традиционные базы данных, что экономит не только пространство в памяти, но и время на ее выделение. К примерам работы таких приложений можно отнести мониторинг сетей, моделирование пользователей в веб-приложениях, сенсорные сети в электросетях, управление данными коммуникаций, прогнозирование на фондовых рынках и т. д. В современных тенденциях для пользователей наиболее важно получить, пусть и приблизительный ответ, но за как можно более короткий срок. Больше информации о Stream Processing можно узнать в книге Жуана Гама [4]. К сервисам, позволяющим выполнять подобные вычисления, можно отнести такие системы, как Kafka Streams, Spark Streaming, Spark Structured Streaming, Flink.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе решения поставленной задачи, мною были рассмотрены системы с открытым кодом, предназначенные для потоковой передачи и обработки дан- HBIX. На основе четырех рассмотренных решений была выбрана наиболее производительная и удобная система Apache Spark Structured Streaming.
В условиях поставленной задачи реализована архитектура, удовлетворяющая выдвинутым требованиям. Кроме того в соответствие с ней на языке программирования Python были разработаны соответствующие модули, работающие с данным из Apache Kafka. Поточные вычисления производятся на базе Spark Structured Streaming.
Реализованная программа позволяет вести статистику близкую к реальному времени в соответствии с фиксированными метриками, которые включают в себя отыскания распределений, расчет перцентилей и их медиан. К тому же написана программа для генерации тестовых данных в Apache Kafka.



[1] Silicon Graphics/Cray Research John R. Mashey. Big data and the next wave of infrastress problems, solutions, opportunities. 1999.
[2] Michele Grimaldi Andrea De Mauro, Marco Greco. What is big data? a consensual definition and a review of key research topics. 2014.
[3] McKinsey Global Institute Brad Brown Jacques Bughin Richard Dobbs Charles Roxburgh Angela Hung Byers James Manyika, Michael Chui. Big data: The next frontier for innovation, competition, and productivity. McKinsey Institute, 2011.
[4] JoBJo Gama and Pedro Rodrigues. Data Stream Processing. Springer Verlag, 2007.
[5] William P. Bejeck Jr. Kafka Streams in Action: Real-time apps and microservices with the Kafka Streams API. Manning Publications, 2018.
[6] Andy Konwinski Patrick Wendell Matei Zaharia, Holden Karau. Learning Spark: Lightning-Fast Big Data Analysis. O’Reilly Media, 2015.
[7] Gerard Maas Francois Garillot. Stream Processing with Apache Spark: Mastering Structured Streaming and Spark Streaming. O’Reilly Media, 2019.
[8] Kostas Tzoumas Ellen Friedman. Introduction to Apache Flink: Stream Processing for Real Time and Beyond. O’Reilly Media, 2016.
[9] Michael Armbrust, Tathagata Das, Joseph Torres, Burak Yavuz, Shixiong Zhu, Reynold Xin, Ali Ghodsi, Ion Stoica, and Matei Zaharia. Structured Streaming: A Declarative API for Real-Time Applications in Apache Spark SIGMOD ’18. Association for Computing Machinery, New York, NY, USA, 2018.
[10] Elkhan Shahverdi, Ahmed Awad, and Sherif Sakr. Big Stream Processing Systems: An Experimental Evaluation. 2019.
[11] PP(c)rez-Godoy M.D. GonzEYlez P. Puentes, F. An analysis of technological frameworks for data streams. 2020.
[12] Hamed Tabesh Elham Nazari, Mohammad Hasan Shahriari. Big Data Analysis in Healthcare: Apache Hadoop , Apache spark and Apache Flink
[13] Michael Greenwald and Sanjeev Khanna. Space-Efficient Online
Computation of Quantile Summaries, volume 30. Association for Computing Machinery, New York, NY, USA, May 2001.


Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ