[MongoDB, Big Data, Hadoop] Hadoop или MongoDB: что использовать для Big Data? (перевод)
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Ни одно обсуждение Big Data не будет полным без упоминания Hadoop и MongoDB: двух наиболее популярных инструментов, доступных сегодня. Из-за обилия информации по ним, в том числе об их преимуществах и недостатках, не всегда легко сделать правильный выбор. Каждый из них силен в своей области, но что подойдет вам и вашей организации? Эта статья поможет сделать правильный выбор.Что такое HadoopHadoop — это набор программ с открытым исходным кодом, предназначенный для обработки Big Data. В его состав входят несколько компонент, каждый из которых выполняет определенную задачу, связанную с аналитикой Big Data.В состав Hadoop входят:
- Distributed File-System
- MapReduce
- Hadoop Common
- Hadoop YARN
Distributed File-SystemЭто один из двух наиболее важных компонентов Hadoop. Distributed File-System (DFS, распределенная файловая система) важна, потому что:
- Позволяет легко хранить и обмениваться данными, а также получать к ним доступ через обширную сеть связанных серверов.
- Это позволяет работать с данными так, как будто вы работаете с локальным хранилищем.
- В отличие от других вариантов хранилищ, таких как расшаренные сетевые папки, у вас остается доступ к данным даже в офлайне.
- Hadoop DFS не ограничивается ОС хоста. Вы можете получить к ней доступ с любого компьютера или поддерживаемой ОС.
MapReduceMapReduce — второй из двух наиболее важных компонентов, позволяющий работать с данными. Он выполняет две задачи:
- Map (отображение) — преобразование данных в формат, который можно легко анализировать. Это достигается путем фильтрации и сортировки.
- Reduce (свертка) — следует за map. При reduce выполняются математические операции (например, подсчет количества клиентов старше 21 года) на данных map.
Hadoop CommonHadoop Common — это набор инструментов (библиотек и утилит), которые используются тремя другими модулями Hadoop. Здесь содержатся скрипты и модули, необходимые для запуска Hadoop, а также исходный код, документация и раздел, посвященный участию в сообществе Hadoop.Hadoop YARNЭто архитектурный фреймворк для управления ресурсами и планирования заданий. YARN предоставляет разработчикам эффективный способ разработки приложений и управления большими наборами данных. С помощью Hadoop YARN можно реализовать интерактивную, потоковую и пакетную обработку.Почему стоит использовать Hadoop?Теперь, когда мы знаем, что такое Hadoop, следующий вопрос, на который стоит ответить — ПОЧЕМУ Hadoop. Мы выделили шесть преимуществ Hadoop.
- Можно быстро сохранять и обрабатывать большие объемы разнообразных данных. Объемы данных, генерируемые Интернетом вещей и социальными сетями, постоянно растут. Это делает Hadoop ключевым инструментом для работы с подобными источниками данных большого объема.
- Distributed File-System обеспечивает Hadoop высокой вычислительной мощностью, необходимой для быстрых вычислений.
- Hadoop обрабатывает сбои оборудования, перенаправляя задания на другие узлы и автоматически поддерживая несколько копий данных.
- Можно хранить разнообразные структурированные или неструктурированные данные без предварительной обработки (включая изображения и видео).
- Фреймворк работает на обычных серверах, которые более эффективны с точки зрения затрат, чем специальные выделенные хранилища.
- При увеличении объема обрабатываемых данных можно добавлять узлы, что позволяет системе масштабироваться. С точки зрения администрирования это делается очень просто.
Ограничения HadoopКаким бы хорошим ни был Hadoop, у него есть ряд ограничений. Среди них:
- MapReduce хорошо подходит для обработки простых запросов. Интерактивные и итеративные задачи решаются не так эффективно, как независимые, требующие простой сортировки (sort) и тасовки (shuffle). Итеративные задачи решаются в несколько отображений (map) и сверток (reduce). В результате между этапами Map и Reduce создается множество файлов, что делает его неэффективным при сложной аналитике.
- Не так уж и много Java-программистов, обладающих необходимыми знаниями MapReduce. Это привело к созданию SQL-решений поверх Hadoop, так как программистов, владеющих SQL, найти проще.
- Hadoop — сложное приложение, требующее знаний по настройке его безопасности. Также в Hadoop отсутствует шифрование хранилищ и каналов связи.
- В Hadoop нет полного набора инструментов, необходимых для обработки метаданных, управления, очистки и обеспечения качества данных.
- Сложная архитектура делает Hadoop непригодным для обработки небольших объемов данных, поскольку он не может эффективно работать с произвольным чтением небольших файлов.
- Hadoop почти полностью написан на Java — платформе которая часто подвергается атакам со стороны киберпреступников. Поэтому есть значительные риски безопасности.
Что такое MongoDBMongoDB — это гибкая и масштабируемая документноориентированная NoSQL СУБД, которая поддерживает различные модели данных и хранит данные в наборах ключ-значение. Она была разработана как решение для работы с большими объемами распределенных данных, которые не могут эффективно обрабатываться в реляционных моделях, содержащих строки и таблицы. Как и Hadoop, MongoDB бесплатная и с открытым исходным кодом.
- Ключевые особенности MongoDB:
- Богатый язык запросов, поддерживающий текстовый поиск, агрегирование и CRUD-операции.
- По сравнению с реляционными базами данных требует меньше операций ввода/вывода из-за встраиваемых моделей данных (embedded data model). Для ускорения выполнения запросов есть поддержка индексов.
- Отказоустойчивость обеспечивается через репликацию наборов данных. Репликация обеспечивает хранение данных на нескольких серверах, что создает избыточность и высокую доступность.
- Поддержка механизма шардинга для горизонтального масштабирования. Позволяет с меньшими затратами обрабатывать увеличивающийся объем данных (по сравнению с вертикальными способами масштабирования).
- Поддержка нескольких движков хранения, что позволяет выбирать оптимальный в зависимости от типа рабочей нагрузки.
Виды движков хранения:
- WiredTiger
Используется по умолчанию для версий 3.2 и выше. Справляется с большинством типов рабочих нагрузок и включает в себя возможности создания контрольных точек, сжатия и конкурентные операции при записи на уровне документа. Последнее позволяет редактировать документы одновременно нескольким пользователям.
- In-Memory Storage Engine
Этот движок хранит документы в оперативной памяти, а не на диске, что повышает предсказуемость задержек при обработке данных.
- MMAPv1 Storage Engine
Это самый старый движок и работает только в версии 3.0 и более ранних. Он хорошо справляется с рабочими нагрузками, включающих массовые обновления, чтения и вставки.Почему стоит использовать MongoDB?Сегодня бизнесу требуется быстрый и гибкий доступ к данным, чтобы понимать текущую ситуацию и принимать наиболее эффективные решения. MongoDB лучше подходит для решения этих новых задач, связанных с данными. Аргументы в пользу использования MongoDB сводятся следующим:
- При использовании реляционных баз данных вам потребуется использовать несколько таблиц. Mongo позволяет представить данные в виде одного объекта, что особенно удобно для неизменяемых данных.
- Язык запросов, используемый MongoDB, поддерживает динамические запросы.
- Схема в MongoDB неявная, т.е. вам не нужно заранее ее проектировать. Это упрощает представление наследования и полиморфизма в базе данных.
- Легко реализовать горизонтальное масштабирование.
Ограничения MongoDBХотя MongoDB предоставляет отличные возможности для решения многих проблем, связанных с Big Data, она также имеет ряд ограничений, таких как:
- Необходимо вручную обрабатывать соединения (JOIN), что может привести к снижению производительности.
- Следствием отсутствия JOIN является также то, что MongoDB потребляет много памяти, поскольку все файлы должны быть считаны с диска в память.
- Размер документа не может быть больше 16 МБ.
- Вложенность ограничена и не может превышать 100 уровней.
Что использовать для Big Data: MongoDB или Hadoop?Можно посмотреть, что используют крупные компании, и попробовать последовать их примеру. Например, eBay, SAP, Adobe, LinkedIn, McAfee, MetLife и Foursquare используют MongoDB. С другой стороны, Microsoft, Cloudera, IBM, Intel, Teradata, Amazon, Map R Technologies — известные пользователи Hadoop.В конечном счете и Hadoop и MongoDB являются популярными решениями для обработки Big Data. Хотя у них много общего (например, открытый исходный код, NoSQL, отсутствие схемы и Map-Reduce), их подход к обработке и хранению данных отличается. Именно эти различия помогут нам сделать выбор между Hadoop и MongoDB.Ни один, ни другой вариант не решит все ваши проблемы. Теорема CAP помогает выявить узкие места в приложениях, указывая на то, что распределенные системы могут оптимально работать только на двух из трех фронтов: согласованность (consistency), доступность (availability) и устойчивость к разделению (partition tolerance). При выборе инструмента для работы с Big Data стоит выбирать систему с двумя наиболее важными для вас свойствами.Что насчет реляционных СУБД?И у Hadoop и у MongoDB есть преимущества по сравнению с традиционными реляционными системами управления базами данных (РСУБД), которые включают в себя параллельную обработку, масштабируемость, обработку больших объемов агрегированных данных, архитектуру MapReduce и экономичность (благодаря открытому исходному коду). Кроме того, обработка данных осуществляется на множестве узлов, кластерах, что позволяет экономить на стоимости оборудования.Однако в контексте сравнения их с РСУБД, у каждой из платформ есть некоторые преимущества перед другой. Обсудим их подробнее.Замена РСУБДMongoDB — это гибкая платформа, которая может стать подходящей заменой РСУБД. Hadoop не заменяет РСУБД, а скорее дополняет ее, помогая архивировать данные.Работа с памятьюMongoDB написана на C++, что позволяет ей эффективно работать с памятью. Hadoop — это набор программного обеспечения на основе Java, который предоставляет платформу для хранения, извлечения и обработки данных.Импорт и хранение данныхДанные в MongoDB хранятся в JSON, BSON или в двоичном виде, и все поля могут быть запрошены, проиндексированы, агрегированы или реплицированы за раз. Кроме того можно импортировать данные в форматах JSON или CSV. Hadoop поддерживает различные форматы данных, что устраняет необходимость преобразования данных при их обработке.Big DataMongoDB не проектировалась для работы с Big Data. Hadoop, с другой стороны, был создан исключительно для этой цели. Таким образом, последний отлично подходит для пакетной обработки и выполнения длительных ETL-заданий. Также с помощью Hadoop удобно обрабатывать логи из-за их большого размера и постоянного увеличения. Реализация MapReduce в Hadoop более эффективна, чем в MongoDB, что снова делает его более эффективным решением для анализа больших наборов данных.Обработка данных в реальном времениMongoDB лучше справляется с анализом данных в реальном времени, а также из-за своего формата хранения, более удобна при работе с данными на фронтенде. Кроме того, геопространственные индексы делают MongoDB идеальным решением для сбора и анализа GPS и географических данных в реальном времени. С другой стороны, Hadoop не очень хорош в обработке данных в реальном времени. Но если вы используете Hadoop SQL-подобные запросы в Hive, вы можете делать запросы намного быстрее и эффективнее, чем JSON.РезюмеУ каждой компании свои уникальные потребности и проблемы, поэтому универсального решения не существует. Выбирать Hadoop или MongoDB вы должны исходя из ваших требований. Но как только вы сделаете этот выбор, убедитесь, что вы и ваши коллеги хорошо разбираетесь в этих технологиях.
Материал подготовлен в рамках курса "MongoDB". Всех желающих приглашаем на открытый урок «Работа с геоданными в MongoDB используя Python». На уроке нам предстоит разобрать, как загрузить Geo-обьекты в MongoDB и получать их, а также отобразить их в браузере, используя Python. Также рассмотрим особенности работы Geo-индексов и соответствующие возможности MongoDB. РЕГИСТРАЦИЯ
===========
Источник:
habr.com
===========
===========
Автор оригинала: Simplilearn
===========Похожие новости:
- [Управление проектами, Управление персоналом] Полноценное руководство по проведению встреч one-on-one для менеджеров (перевод)
- [Сетевые технологии] Технология программно-определяемых сетей для управления сетями ЦОД: обзор
- [IT-инфраструктура, Хранение данных, IT-компании] Платформа обработки данных Билайн
- [Python, IT-инфраструктура, Git] Как контейнеризировать среды ML разработки и не посадить на мель процессы MLOps
- [Python, Алгоритмы, Big Data, Машинное обучение, Искусственный интеллект] Open Data Science Odessa Meetup #3
- [Python, Программирование, Accessibility, Здоровье] Эксперимент для сотрудника с нарушением слуха, ч. 2, проверка на себе
- [Программирование, .NET, C#] Даты, время и часовые пояса: улучшения в .NET 6
- [Тестирование IT-систем] Тестирование или управление качеством? Часть 1. Что такое тестирование? (перевод)
- [Сетевые технологии] Путь Namex IXP к IP-фабрикам
- [Python, CAD/CAM, Промышленное программирование, Прототипирование, Визуальное программирование] Slicer: нарезка твердотельных объектов под раскрой
Теги для поиска: #_mongodb, #_big_data, #_hadoop, #_mongodb, #_hadoop, #_big_data, #_geodannye (геоданные), #_python, #_blog_kompanii_otus (
Блог компании OTUS
), #_mongodb, #_big_data, #_hadoop
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 06:54
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Ни одно обсуждение Big Data не будет полным без упоминания Hadoop и MongoDB: двух наиболее популярных инструментов, доступных сегодня. Из-за обилия информации по ним, в том числе об их преимуществах и недостатках, не всегда легко сделать правильный выбор. Каждый из них силен в своей области, но что подойдет вам и вашей организации? Эта статья поможет сделать правильный выбор.Что такое HadoopHadoop — это набор программ с открытым исходным кодом, предназначенный для обработки Big Data. В его состав входят несколько компонент, каждый из которых выполняет определенную задачу, связанную с аналитикой Big Data.В состав Hadoop входят:
Материал подготовлен в рамках курса "MongoDB". Всех желающих приглашаем на открытый урок «Работа с геоданными в MongoDB используя Python». На уроке нам предстоит разобрать, как загрузить Geo-обьекты в MongoDB и получать их, а также отобразить их в браузере, используя Python. Также рассмотрим особенности работы Geo-индексов и соответствующие возможности MongoDB. РЕГИСТРАЦИЯ
=========== Источник: habr.com =========== =========== Автор оригинала: Simplilearn ===========Похожие новости:
Блог компании OTUS ), #_mongodb, #_big_data, #_hadoop |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 06:54
Часовой пояс: UTC + 5