Введение 3
Глава 1. Обзор технологий для обработки и хранения Больших данных 5
1.1. Big Data 5
1.2. Apache Hadoop 8
1.3. Hadoop MapReduce 11
1.4. Apache Spark 14
1.5 CouchDB 18
1.6 MongoDB 22
Глава 2. Оценка эффективности на практике 26
2.1. Тестовая задача 26
2.2. Алгоритм решения 27
2.3. Полигон исследования 28
2.4. Проведение тестов 29
Заключение 31
Список литературы 32
Термин "Большие данные" возник в 2008 году, что по меркам IT-индустрии уже достаточно давно. С тех пор проблема обработки больших объемов информации не стала менее актуальной. Каждый день человечество воспроизводит колоссальное количество данных, и все они нуждаются в обработке. Для решения этой проблемы были разработаны инструменты для работы с Большими данными. Начиная разработку решения задачи сегодня, нам необходимо сделать выбор в пользу той или иной технологии. Кроме того, если поставленная задача не может быть решена с использованием одного инструмента, то помимо эффективности каждой технологии по-отдельности необходимо учитывать их способность работы в связке.
Помимо обработки, данные также нуждаются в хранении. На сегодняшний день популярным решением являются NoSQL базы данных, которые позволяют хранить слабоструктурированные данные и обладают способностью к горизонтальному масштабированию. Распределенность данных физически означает, что связь между вычислительным узлом кластера и сервером базы данных в рамках организованной сети может состоять из двух и более маршрутизаторов.
В данной исследовательской работе была поставлена следующая цель - выбрать задачу и провести сравнительный анализ работы движка и СУБД в связке, выявить наиболее эффективную пару при условии взаимодействия вычислительного кластера и сервера базы данных по глобальной сети.
Для достижение поставленной цели исследования были определены следующие задачи:
• Рассмотреть существующие технологии для обработки Больших Данных и их хранения.
• Выбрать и реализовать тестовую задачу
• Провести тесты, оценить время работы и эффективность технологий в паре.
• Определить наиболее эффективную пару.
В рамках работы рассмотрены такие инструменты для работы с Big Data как Hadoop MapReduce, Apache Spark, CouchDB, MongoDB. Реализована тестовая задача для сравнения технологий на практике.
Проведен эксперимент по использованию данных технологий в связке. В результате эксперимента было выяснено, что NoSQL СУБД CouchDB проигрывает в скорости MongoDB при взаимодействии с Hadoop MapReduce и Apache Spark. При работе с удаленной базой данных разницы в эффективности между Hadoop MapReduce и Apache Spark не выявлено, т.к. скорость работы ограничена скоростью Сети.
При небольших объемах данных в рамках одной базы данных MongoDB можно воспользоваться возможностью запускать MapReduce задачи, т.к. это может оказаться быстрее, чем скачивать данные по Сети.
1. Big data: How do your data grow? https://www.nature.com/nature/journal/v455/n7209/full/455028a.html
2. Wikibon forecasts Big Data market to hit $92.2B by 2026 https://siliconangle.com/blog/2016/03/30/wikibon-forecasts-big-data-mar ket-to-hit-92-2bn-by-2026/
3. What Is Apache Hadoop? http://hadoop.apache.org/
4. MapReduce: Simplified Data Processing on Large Clusters https://research.google.com/archive/mapreduce-osdi04-slides/index.html
5. MapReduce Tutorial https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop- mapreduce-client-core/MapReduceTutorial.html#Purpose
6. Spark Programming Guide http://spark.apache.org/docs/latest/programming-guide.html
7. Кормен Т., Лейзерсон И. Ч., Ривест Р. Л., Штайн К. Алгоритмы: построение и анализ = INTRODUCTION TO ALGORITHMS — 2-е изд. — М.: «Вильямс», 2006. — С. 1296. — ISBN 0-07-013151-1.
8. MongoDB Drivers https://docs.mongodb.com/ecosystem/drivers/
9. Кайл Бэнкер. MongoDB в действии - М.: ДМК Пресс, 2012. - 395 с
10. What does tf-idf mean? http://www.tfidf.com/