Экосистема Hadoop
#HadoopОбзор: Apache Hadoop — это платформа с открытым исходным кодом, предназначенная для облегчения взаимодействия с большими данными. Однако для тех, кто не знаком с этой технологией, возникает вопрос: что такое большие данные? Большие данные — это термин, присваиваемый наборам данных, которые не могут быть эффективно обработаны с помощью традиционной методологии, такой как RDBMS. Hadoop занял свое место в отраслях и компаниях, которым необходимо работать с большими наборами данных, которые являются чувствительными и требуют эффективной обработки. Hadoop — это структура, которая позволяет обрабатывать большие наборы данных, которые находятся в форме кластеров. Будучи основой, Hadoop состоит из нескольких модулей, которые поддерживаются большой экосистемой технологий.
Введение: Hadoop Ecosystem представляет собой платформу или пакет, который предоставляет различные услуги для решения проблем больших данных. Он включает в себя проекты Apache и различные коммерческие инструменты и решения. Существует четыре основных элемента Hadoop: HDFS , MapReduce , YARN и Hadoop Common . Большинство инструментов или решений используются для дополнения или поддержки этих основных элементов. Все эти инструменты работают совместно для предоставления таких услуг, как поглощение, анализ, хранение и обслуживание данных и т. д.
Ниже приведены компоненты, которые в совокупности образуют экосистему Hadoop:
- HDFS: распределенная файловая система Hadoop
- YARN: еще один переговорщик по ресурсам
- MapReduce: обработка данных на основе программирования
- Spark: обработка данных в памяти
- PIG, HIVE: обработка данных на основе запросов
- HBase: база данных NoSQL
- Mahout, Spark MLLib: библиотеки алгоритмов машинного обучения
- Solar, Lucene: поиск и индексирование
- Zookeeper: Управление кластером
- Узи: Планирование работы

Примечание. Помимо вышеупомянутых компонентов, есть много других компонентов, которые являются частью экосистемы Hadoop.
Все эти наборы инструментов или компоненты вращаются вокруг одного термина, т.е. данных . В этом прелесть Hadoop, поскольку он вращается вокруг данных и, следовательно, облегчает его синтез.
HDFS:
- HDFS является основным или основным компонентом экосистемы Hadoop и отвечает за хранение больших наборов данных структурированных или неструктурированных данных на различных узлах и, таким образом, поддерживает метаданные в форме файлов журнала.
- HDFS состоит из двух основных компонентов, т.е.Имя узла
- Узел данных
- Узел имени — это основной узел, который содержит метаданные (данные о данных), требующие сравнительно меньшего количества ресурсов, чем узлы данных, в которых хранятся фактические данные. Эти узлы данных являются стандартным оборудованием в распределенной среде. Несомненно, что делает Hadoop экономически эффективным.
- HDFS поддерживает всю координацию между кластерами и оборудованием, таким образом, работая в самом сердце системы.

ПРЯЖА:
- Еще одно средство согласования ресурсов, как следует из названия, YARN — это тот, кто помогает управлять ресурсами в кластерах. Короче говоря, он выполняет планирование и распределение ресурсов для системы Hadoop.
- Состоит из трех основных компонентов, т.е.Менеджер ресурсов
- Диспетчер узлов
- Менеджер приложений
- Диспетчер ресурсов имеет право выделять ресурсы для приложений в системе, в то время как диспетчеры узлов работают над распределением ресурсов, таких как ЦП, память, пропускная способность для каждой машины, и позже подтверждают наличие диспетчера ресурсов. Диспетчер приложений работает как интерфейс между диспетчером ресурсов и диспетчером узлов и выполняет согласования в соответствии с требованием обоих.
Уменьшение карты:
- Используя распределенные и параллельные алгоритмы, MapReduce позволяет переносить логику обработки и помогает писать приложения, которые преобразуют большие наборы данных в управляемый.
- MapReduce использует две функции:
Map()иReduce(), задача которых:Map () выполняет сортировку и фильтрацию данных и тем самым организует их в виде группы. Map генерирует результат на основе пары ключ-значение, который затем обрабатывается методом Reduce (). - Reduce () , как следует из названия, выполняет суммирование путем агрегирования сопоставленных данных. Проще говоря, Reduce () принимает вывод, сгенерированный Map (), в качестве входных данных и объединяет эти кортежи в меньший набор кортежей.
PIG:
- Pig был в основном разработан Yahoo, который работает на латинском языке, который основан на запросах и похож на SQL.
- Это платформа для структурирования потока данных, обработки и анализа огромных массивов данных.
- Свинья выполняет работу по выполнению команд, а в фоновом режиме все действия MapReduce выполняются. После обработки свинья сохраняет результат в HDFS.
- Язык Pig Latin специально разработан для этой среды, которая работает в среде Pig Runtime. Так же, как Java работает на JVM .
- Свинья помогает достичь простоты программирования и оптимизации и, следовательно, является основным сегментом экосистемы Hadoop.
Улей:
- С помощью методологии и интерфейса SQL, HIVE выполняет чтение и запись больших наборов данных. Тем не менее, его язык запросов называется HQL (Hive Query Language).
- Он обладает высокой масштабируемостью, поскольку позволяет одновременно выполнять обработку в реальном времени и пакетную обработку. Кроме того, Hive поддерживает все типы данных SQL, что упрощает обработку запросов.
- Как и в средах обработки запросов, HIVE также включает два компонента: драйверы JDBC и командную строку HIVE .
- JDBC вместе с драйверами ODBC работают над установкой разрешений и подключений для хранения данных, тогда как командная строка HIVE помогает в обработке запросов.
Mahout:
- Mahout позволяет машинному обучению системы или приложения. Машинное обучение , как следует из названия, помогает системе развиваться, основываясь на некоторых шаблонах, взаимодействии пользователя и окружающей среды или на основе алгоритмов.
- Он предоставляет различные библиотеки или функции, такие как совместная фильтрация, кластеризация и классификация, которые являются не чем иным, как концепцией машинного обучения. Это позволяет вызывать алгоритмы в соответствии с нашими потребностями с помощью своих собственных библиотек.
Apache Spark:
- Это платформа, которая обрабатывает все важные для процесса задачи, такие как пакетная обработка, интерактивная или итеративная обработка в реальном времени, преобразование графиков, визуализация и т. Д.
- Следовательно, он потребляет ресурсы памяти, поэтому он быстрее, чем предыдущий, с точки зрения оптимизации.
- Spark лучше всего подходит для данных в реальном времени, тогда как Hadoop лучше всего подходит для структурированных данных или пакетной обработки, поэтому оба они используются в большинстве компаний взаимозаменяемо.
Apache HBase:
- Это база данных NoSQL, которая поддерживает все виды данных и, следовательно, способна обрабатывать все, что угодно в базе данных Hadoop. Он обеспечивает возможности BigTable от Google, что позволяет эффективно работать с наборами больших данных.
- В тех случаях, когда нам нужно искать или извлекать вхождения чего-то небольшого в огромную базу данных, запрос должен обрабатываться в течение короткого быстрого промежутка времени. В такие моменты HBase оказывается полезным, поскольку дает нам приемлемый способ хранения ограниченных данных.
Другие компоненты: Помимо всех этих, есть и другие компоненты, которые выполняют огромную задачу, чтобы Hadoop мог обрабатывать большие наборы данных. Они заключаются в следующем:
- Solr, Lucene: это две службы, которые выполняют задачу поиска и индексации с помощью некоторых библиотек Java, особенно Lucene основана на Java, которая также позволяет проверять орфографию. Однако Lucene управляет Solr.
- Zookeeper: Существовала огромная проблема управления координацией и синхронизацией между ресурсами или компонентами Hadoop, что часто приводило к несогласованности. Zookeeper преодолел все проблемы, выполнив синхронизацию, межкомпонентную связь, группировку и обслуживание.
- Oozie: Oozie просто выполняет задачу планировщика, таким образом планируя задания и связывая их вместе как единое целое. Существует два вида заданий .ie
Oozie workflowиOozie coordinator jobs. Рабочий процесс Oozie — это задания, которые должны выполняться последовательно, в то время как задания Oozie Coordinator — это задания, которые запускаются, когда ему передаются некоторые данные или внешние стимулы.