Что такое Hadoop?

Что такое Hadoop Изучение

Платформа Hadoop предоставляет платформу с открытым исходным кодом для обработки больших объемов данных на кластерах компьютеров. Благодаря своим мощным функциям он стал чрезвычайно популярным в области больших данных. Hadoop позволяет нам хранить любые данные и обрабатывать несколько одновременных задач. Мы собираемся углубиться в платформу Hadoop и обсудить экосистему Hadoop, принципы работы Hadoop, ее плюсы и минусы и многое другое.

Что такое Apache Hadoop?

Hadoop — это программная среда с открытым исходным кодом, разработанная Apache Software Foundation. Он использует модели программирования для обработки больших наборов данных. Hadoop написан на Java и построен на кластерах Hadoop. Эти кластеры представляют собой наборы компьютеров или узлов, которые работают вместе для выполнения вычислений с данными. У Apache есть и другие программные проекты, которые интегрируются с Hadoop, в том числе проекты для хранения данных, управления заданиями Hadoop, анализа данных и многого другого. Мы можем использовать Hadoop с облачными сервисами, такими как Amazon AWS, Microsoft Azure и Cloudera, для управления и организации наших усилий по работе с большими данными.

История Hadoop

Apache Hadoop появился в 2002 году, когда Дуг Каттинг и Майк Кафарелла работали над Apache Nutch. Они узнали, что Nutch не полностью способен обрабатывать большие объемы данных, поэтому начали поиск решения. Они узнали об архитектуре файловой системы Google (GFS) и технологии MapReduce, которая обрабатывает большие наборы данных. Также они начали внедрять методы GFS и MapReduce в свой проект Nutch с открытым исходным кодом, но Nutch все еще не полностью отвечал их потребностям.

Когда Каттинг присоединился к Yahoo в 2006 году, он основал новый проект под названием Hadoop. Он отделил распределенные вычислительные части от Apache Nutch и работал с Yahoo над разработкой Hadoop, способного обрабатывать тысячи узлов. В 2007 году Yahoo протестировала Hadoop на кластере из 1000 узлов и начала использовать его для внутренних целей. В начале 2008 года Hadoop был выпущен как проект с открытым исходным кодом в Apache Software Foundation. Позже в том же году они успешно протестировали Hadoop на кластере из 4000 узлов.

В 2009 году Hadoop был способен обрабатывать миллиарды поисковых запросов и индексировать миллионы веб-страниц. В это время Каттинг присоединился к команде Cloudera, чтобы помочь распространить Hadoop в облачной индустрии. Наконец, в 2011 году была выпущена версия 1.0 Hadoop. Последняя версия (3.3.1) вышла в 2021 году.

Экосистема Hadoop

Экосистема Hadoop — это набор сервисов, которые мы можем использовать для работы с инициативами в области больших данных. Четыре основных элемента экосистемы включают:

  • Уменьшение карты
  • Распределенная файловая система Hadoop (HDFS)
  • Еще один посредник по согласованию ресурсов (YARN)
  • Hadoop Common

Давайте подробнее рассмотрим каждую из этих служб.

Уменьшение карты

Hadoop MapReduce — это модель программирования, используемая для распределенных вычислений. С помощью этой модели мы можем обрабатывать большие объемы данных параллельно на больших кластерах стандартного оборудования. С MapReduce мы можем использовать Map и Reduce. А также с помощью Map мы можем преобразовать набор данных в кортежи (пары ключ / значение). Reduce принимает выходные данные Map в качестве входных данных и объединяет кортежи в меньшие наборы кортежей. MapReduce упрощает масштабирование обработки данных для работы десятков тысяч машин в кластере.

Читайте также:  Cracking the Machine Learning Interview: подходы к проектированию систем

Во время выполнения заданий MapReduce Hadoop отправляет задачи на соответствующие серверы в кластере. Когда задачи завершены, кластеры собирают и преобразуют данные в результат и отправляют результат обратно на сервер Hadoop.

Распределенная файловая система Hadoop (HDFS)

Как следует из названия, HDFS — это распределенная файловая система. Он обрабатывает большие наборы данных и работает на стандартном оборудовании. HDFS помогает масштабировать отдельные кластеры Hadoop на несколько узлов и помогает выполнять параллельную обработку. Встроенные серверы NameNode и DataNode помогают нам проверять состояние наших кластеров. HDFS отличается высокой отказоустойчивостью, портативностью и экономичностью.

Еще один посредник по согласованию ресурсов (YARN)

Hadoop YARN — это инструмент управления ресурсами кластера и планирования заданий. YARN также работает с данными, которые мы храним в HDFS, что позволяет нам выполнять такие задачи, как:

  • Обработка графиков
  • Интерактивная обработка
  • Потоковая обработка
  • Пакетная обработка

Он динамически распределяет ресурсы и планирует обработку приложений. YARN поддерживает MapReduce, а также множество других моделей обработки. Он эффективно использует ресурсы и имеет обратную совместимость, что означает, что он может работать с предыдущими версиями Hadoop без каких-либо проблем.

Hadoop Common

Hadoop Common, также известный как Hadoop Core, предоставляет библиотеки Java, которые мы можем использовать во всех наших модулях Hadoop.

Другие компоненты включают:

  • Cassandra: Cassandra — это система управления базами данных NoSQL с широкими колонками.
  • Flume: Flume объединяет, собирает и перемещает большие объемы данных журнала.
  • Pig: Pig — это язык программирования высокого уровня, используемый для анализа больших наборов данных.
  • HBase — HBase — это система управления нереляционными базами данных, работающая поверх HDFS.
  • Hive: Apache Hive — это отказоустойчивое и похожее на SQL программное обеспечение хранилища данных, которое обрабатывает чтение, запись и управление данными.
  • Lucene: Lucene — это библиотека программного обеспечения для поисковых систем с открытым исходным кодом, написанная на Java. Он предоставляет надежные функции поиска и индексирования.
  • Mahout: Apache Mahout — это проект с открытым исходным кодом, используемый для создания масштабируемых алгоритмов машинного обучения.
  • Oozie: Oozie — это система планирования рабочей нагрузки, используемая для обработки заданий Hadoop.
  • Spark MLib: MLlib — это масштабируемая библиотека машинного обучения с API Java, Scala, R и Python.
  • Solr: Solr — это платформа корпоративного поиска, построенная на Lucene.
  • Sqoop: Sqoop — это приложение CLI, используемое для передачи данных между реляционными базами данныхи Hadoop.
  • Submarine: Submarine — это облачная платформа для машинного обучения и глубокого обучения. Он поддерживает обработку данных, разработку алгоритмов, фреймворки машинного обучения и усилия по контейнеризации.
  • Zookeeper: Zookeeper — это централизованный сервер для надежной координации распределенных облачных приложений.

Как работает Hadoop?

В предыдущем разделе мы обсудили большое количество сервисов, которые интегрируются с Hadoop. Теперь мы знаем, что экосистема Hadoop большая и расширяемая. Это позволяет нам выполнять множество задач, таких как сбор, хранение, анализ, обработка и управление большими данными. Hadoop предоставляет нам платформу, на которой мы можем создавать другие сервисы и приложения.

Приложения могут использовать операции API для подключения к NameNode и размещения данных в кластерах Hadoop. NameNodeреплицирует эти данные по частям между узлами данных. Мы можем использовать MapReduce для выполнения заданий, запроса данных и сокращения количества задач в HDFS. Задачи карты выполняются на каждом узле для файлов, которые мы предоставляем, а задачи сокращения или редукторы объединяют и организуют наш вывод.

Приложения могут использовать операции API для подключения

Плюсы, минусы и варианты использования Hadoop

Hadoop — популярная платформа, у которой есть свои плюсы и минусы. Давайте посмотрим на них, а затем обсудим несколько вариантов использования.

Плюсы

  • Рентабельность: традиционно хранение больших объемов данных стоит больших денег. Hadoop решает эту проблему, а также сохраняет все необработанные данные, чтобы к ним можно было получить доступ в любое время.
  • Высокая доступность: функция высокой доступности HDFS позволяет нам запускать два или более избыточных NameNodes в одном кластере, что обеспечивает быстрое переключение в случае сбоя машины или сбоя.
  • Масштабируемость: мощность хранилища и обработки можно легко увеличить, добавив больше узлов.
  • Систематичность: HDFS тщательно обрабатывает все компоненты и программы.
  • Гибкость: Hadoop может обрабатывать структурированные и неструктурированные данные.
  • Активное сообщество: у Hadoop большая база пользователей, поэтому можно легко найти полезную документацию или помощь по любой проблеме, с которой вы столкнетесь.
  • MapReduce: MapReduce — мощный инструмент, который можно использовать через Java или Apache Pig.
  • Богатая экосистема: у Hadoop так много дополнительных инструментов и сервисов, которые легко интегрируются в платформу. Эти службы позволяют нам выполнять множество различных задач, связанных с нашими данными.
  • Параллельная обработка: Hadoop эффективно выполняет параллельную обработку и может обрабатывать даже петабайты данных.
  • Форматирование данных: переключение между различными типами форматов данных иногда может привести к потере данных, но форматы не нужно менять в Hadoop.
Читайте также:  4 лучших дистрибутива Linux, которые помогут вам сохранить анонимность

Минусы

  • Маленькие файлы: HDFS не поддерживает небольшие файлы, потому что она предназначена для работы с большими объемами.
  • Нет обработки в реальном времени: Hadoop не подходит для обработки данных в реальном времени. Apache Spark или Apache Flink — отличные ресурсы, которые помогут ускорить процесс.
  • Безопасность. В Hadoops отсутствует шифрование на уровне хранилища и сети, что означает, что ваши данные могут быть в опасности. Spark предоставляет бонусы безопасности, помогающие преодолеть ограничения Hadoop.
  • Время отклика. Среда программирования MapReduce временами работает медленно.
  • Кривая обучения: существует множество различных модулей и сервисов, доступных для использования с Hadoop, и их изучение может занять много времени.
  • Сложный интерфейс: интерфейс не очень интуитивно понятен, поэтому знакомство с платформой может занять некоторое время.

Случаи применения

Решения на основе данных

Мы можем интегрировать структурированные и неструктурированные данные, которые не используются в хранилище данных или реляционной базе данных. Это позволяет нам принимать более точные решения, основанные на обширных данных.

Аналитика и доступ к большим данным

Hadoop отлично подходит для специалистов по обработке данных и инженеров машинного обучения, поскольку он позволяет нам выполнять расширенную аналитику для поиска закономерностей и разработки точных и эффективных моделей прогнозирования.

Озера данных

Решения для управления Hadoop могут помочь нам с интеграцией данных, безопасностью и качеством для озер данных.

Финансовые услуги

Hadoop может помочь нам создавать и запускать приложения для оценки рисков, разработки инвестиционных моделей и торговых алгоритмов.

Здравоохранение

Hadoop помогает нам отслеживать крупномасштабные индексы здоровья и вести записи пациентов.

Прогноз продаж

Hadoop используется в розничных компаниях для прогнозирования продаж и увеличения прибыли путем изучения исторических данных.

Hadoop против Spark

Apache Hadoop и Apache Spark часто сравнивают друг с другом, потому что это обе платформы с открытым исходным кодом для обработки больших данных. Spark — это новый проект, который изначально был разработан в 2012 году. Он ориентирован на параллельную обработку данных в кластере и работает в памяти. Это означает, что он намного быстрее, чем MapReduce.

Hadoop — лучшая платформа, если вы работаете с пакетной обработкой больших объемов данных. Spark — лучшая платформа для потоковой передачи данных, создания графических вычислений или машинного обучения. Spark также поддерживает обработку данных в реальном времени и пакетную обработку. Со Spark можно использовать множество различных библиотек, в том числе для машинного обучения, задач SQL, потоковой передачи данных и построения графиков.

Оцените статью
bestprogrammer.ru
Добавить комментарий