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


Система управления выгрузкой данных в облачное хранилище

Работа №128317

Тип работы

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

Предмет

информатика

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

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


Введение 4
2 Постановка задачи 6
3 Обзор литературы и аналогов 7
4 Архитектура системы 12
4.1 Архитектура кластера 12
4.2 Архитектура системы на одном сервере 14
5 Сценарии восстановления системы 16
6 Программная реализация 18
7 Заключение 23
Список литературы 24
A Программный код 28
B Инструкция по запуску 46
B.1 Запуск на одной машине 46
B.2 Запуск на кластере 48

В современном мире появляется все больше и больше данных. Начиная со сбора метрик на интернет сайтах для анализа активности пользователей, улучшения дизайна или функциональности и заканчивая данными, получаемыми из сенсоров, GPS сигналов телефонов и так далее [1, 2]. Такой быстрый рост данных порождает различные проблемы, например, как анализировать эти данные [2]. Обычно данные хранятся в источниках, таких как реляционные и нереляционные базы данных. Как правило, аналитические запросы влияют на скорость работы БД, поскольку создают избыточную нагрузку, вследствие чего требуется переместить данные в аналитическое хранилище, прежде чем как-то взаимодействовать с ними [3].
В результате, появляется необходимость в инструменте, способном получать из источника, например, нереляционной базы данных, информацию, трансформировать ее в формат, соответствующий бизнес-требованиям, не нарушая правила конфиденциальности, и затем выгружать в виде файла в хранилище [4]. Такая последовательность действий называется ETL процессом — Extract, Transform, Load, в переводе — “извлечение, преобразование и загрузка”. В целом, процессы ETL позволяют автоматизировать операцию выбора, сбора и обработки данных из хранилища данных, а также производить выходные данные в наилучшем формате для последующей обработки или для задач бизнеса [5, 10].
При этом необходимо, чтобы инструменты по извлечению, преобразованию и загрузке данных могли выполнять свою задачу быстро и надежно. Это приводит к таким понятиям как: отказоустойчивость, “хотя бы один раз” (“at least once”) семантика доставки данных и масштабируемость.
Под отказоустойчивостью предполагается, что приложение является устойчивым к сбоям. Под сбоем понимается отклонение в выполнении одной компонентой системы предназначенных ей задач [6]. Добиться полной отказоустойчивости невозможно, тем не менее вероятность сбоя можно снизить с помощью правильного проектирования механизмов устойчивости к сбоям [6].
Может возникнуть ситуация, когда одна машина выгружает данные, например, какие-либо сообщения, но происходит сбой. В таких случаях система может обеспечивать “хотя бы один раз”, “как максимум один раз”, “ровно один раз” семантики доставки данных [7].
Увеличение нагрузки на систему или ограниченность данных, проходящих через обработку системой, приводит к понятию масштабируемости. Масштабируемость — это способность системы справляться с увеличенной нагрузкой [6]. Один из способов обеспечения масштабируемости является виртуализация, то есть абстрагирование от аппаратной реализации [8].
Итак, процесс выгрузки из источника данных, преобразование этих данных, загрузка в хранилище вместе с обеспечением “хотя бы один раз” семантики доставки, отказоустойчивости и масштабируемости является актуальной задачей в современном мире больших данных

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

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

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


В результате проделанной работы было разработано приложение по многопоточной пакетной выгрузке данных из хранилища MongoDB в распределенное аналитическое хранилище HDFS или в облачное хранилище Amazon S3 с выполнением требований:
— “хотя бы один раз” семантика доставки данных;
— отказоустойчивость;
— автоматическое масштабирование;
— фиксация версии системы в случае изменений конфигураций.
Данная система, находящаяся в открытом доступе, в поставленной задаче является уникальной и обходит аналогичные продукты по одному или более критериям.



[1] Rajendra Akerkar - Big Data Computing - CRC Press, 2013
[2] Qi, Chong-chong - Big data management in the mining industry. International Journal of Minerals, Metallurgy and Materials - 2020
[3] Michael Collins - Network Security Through Data Analysis: Building Situational Awareness - 1st Edition, 2014
[4] Castellanos, Malu; Dayal, Umeshwar; Miller, Renee J. - Enabling Real-Time Business Intelligence Volume 41 || Near Real-Time Data Warehousing Using State-of-the-Art ETL Tools - (2010). [Lecture Notes in Business Information Processing]
[5] Shaker H. Ali El-Sappagh; Abdeltawab M. Ahmed Hendawi; Ali Hamed El Bastawissy. A proposed model for data warehouse ETL processes - 2011
[6] Martin Kleppmann — Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems — First Edition — 0‘Reilly Media, 2017
[7] Bhimani, P., Panchal, G. - Message Delivery Guarantee and Status Update of Clients Based on IoT-AMQP. Lecture Notes in Networks and Systems - 2017
[8] Kon, Joichiro; Mizusawa, Naoki; Umezawa, Ayaka; Yamaguchi, Saneyasu; Tao, Jian - Highly consolidated servers with container-based virtualization - [IEEE 2017 IEEE International Conference on Big Data (Big Data) - Boston, MA, USA (2017.12.11-2017.12.14)] 2017 IEEE International Conference on Big Data (Big Data)
[9] Sabtu, Adilah; Azmi, Nurulhuda Firdaus Mohd; Sjarif, Nilam Nur Amir; Ismail, Saiful Adli; Yusop, 0thman Mohd; Sarkan, Haslina; Chuprat, Suriayati - The challenges of Extract, Transform and Loading (ETL) system implementation for near real-time environment - [IEEE 2017 5th International Conference on Research and Innovation in Information Systems (ICRIIS) - Langkawi, Malaysia (2017.7.16-2017.7.17)] 2017 International Conference on Research and Innovation in Information Systems (ICRIIS)
[10] Galici, Roberta; Ordile, Laura; Marchesi, Michele; Pinna, Andrea; Tonelli, Roberto. - Applying the ETL Process to Blockchain Data. Prospect and Findings. Information - 2019
[11] Gerardus Blokdyk — Apache Nifi — Third Edition — 5STARCooks, 2018
[12] Hari Shreedharan — Using Flume: Flexible, Scalable and Reliable Data Streaming — First Edition — O‘Reilly Media, 2014
[13] Quinto, Butch - Next-Generation Big Data || Batch and Real-Time Data Ingestion and Processing - 2018
[14] Singh, Pramod - Learn PySpark (Build Python-based Machine Learning and Deep Learning Models) - 2019
[15] Sudhakar Kalyan - Amazon Web Services (AWS) GLUE - 2018, International Journal of Management, IT and Engineering
[16] Shannon Bradshaw, Eoin Brazil, Kristina Chodorow - MongoDB: The Definitive Guide: Powerful and Scalable Data Storage - O‘Reilly Media, 2019
[17] Jan Kunigk, Ian Buss, Paul Wilkinson, Lars George - Architecting Modern Data Platforms: A Guide to Enterprise Hadoop at Scale - 1st Edition, 2019
[18] Muddinagiri, Ruchika; Ambavane, Shubham; Bayas, Simran - Self-Hosted Kubernetes: Deploying Docker Containers Locally With Minikube. - [IEEE 2019 International Conference on Innovative Trends and Advances in Engineering and Technology (ICITAET) - SHEGAON, India (2019.12.27¬2019.12.28)] 2019 International Conference on Innovative Trends and Advances in Engineering and Technology (ICITAET)
[19] Supun Kamburugamuve - Survey of Apache Big Data Stack - 2013
[20] Mahmoud, Hadeer; Hegazy, Abdelfatah; Khafagy, Mohamed H. - An approach for big data security based on Hadoop distributed file system. - [IEEE 2018 International Conference on Innovative Trends in Computer Engineering (ITCE) - Aswan, Egypt (2018.2.19-2018.2.21)] 2018 International Conference on Innovative Trends in Computer Engineering (ITCE)
[21] Palankar, Mayur R.; Iamnitchi, Adriana; Ripeanu, Matei; Garfinkel, Simson - Amazon S3 for science grids - [ACM Press the 2008 international workshop - Boston, MA, USA (2008.06.24-2008.06.24)] Proceedings of the 2008 international workshop on Data-aware distributed computing - DADC ’08
[22] Khan, Maqbool; Wu, Xiaotong; Xu, Xiaolong; Dou, Wanchun - Big data challenges and opportunities in the hype of Industry 4.0. - [IEEE ICC 2017 - 2017 IEEE International Conference on Communications - Paris, France (2017.5.21-2017.5.25)] 2017 IEEE International Conference on Communications (ICC)
[23] ZooKeeper: Distributed Process Coordination, https://zookeeper.apache.org/
[24] Curator zookeeper recipes, http://curator.apache.org/ (Apache Software Foundation)
[25] Apache Hadoop API 3.3.0, https://hadoop.apache.org/docs/current/api/overview-summary.html
[26] MongoDB Java Driver, https://mongodb.github.io/mongo-java-driver/
[27] Miika Moilanen - Deploying an application using Docker and Kubernetes
- 2018
[28] Docker Hub, https://index.docker.io/


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



Подобные работы


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