Что такое Hadoop?
Apache Hadoop - это программная среда с открытым исходным кодом, используемая для разработки приложений обработки данных, которые выполняются в распределенной вычислительной среде.
Приложения, созданные с помощью HADOOP, работают с большими наборами данных, распределенными по кластерам обычных компьютеров. Товарные компьютеры дешевы и широко доступны. В основном они полезны для достижения большей вычислительной мощности при низких затратах.
Подобно данным, находящимся в локальной файловой системе персонального компьютера, в Hadoop данные находятся в распределенной файловой системе, которая называется распределенной файловой системой Hadoop . Модель обработки основана на концепции « локальности данных», в которой вычислительная логика отправляется на узлы кластера (сервер), содержащие данные. Эта вычислительная логика - не что иное, как скомпилированная версия программы, написанной на языке высокого уровня, таком как Java. Такая программа обрабатывает данные, хранящиеся в Hadoop HDFS.
Вы знаете? Компьютерный кластер состоит из набора нескольких процессоров (диск + процессор), которые соединены друг с другом и действуют как единая система.
В этом руководстве вы узнаете,
- Экосистема Hadoop и компоненты
- Архитектура Hadoop
- Особенности Hadoop
- Топология сети в Hadoop
Экосистема Hadoop и компоненты
На диаграмме ниже показаны различные компоненты экосистемы Hadoop.
Apache Hadoop состоит из двух подпроектов -
- Hadoop MapReduce: MapReduce - это вычислительная модель и программная среда для написания приложений, запускаемых на Hadoop. Эти программы MapReduce способны обрабатывать огромные объемы данных параллельно на больших кластерах вычислительных узлов.
- HDFS ( Распределенная файловая система Hadoop ): HDFS отвечает за хранилище приложений Hadoop. Приложения MapReduce используют данные из HDFS. HDFS создает несколько реплик блоков данных и распределяет их по вычислительным узлам в кластере. Это распределение обеспечивает надежные и чрезвычайно быстрые вычисления.
Хотя Hadoop больше всего известен благодаря MapReduce и его распределенной файловой системе HDFS, этот термин также используется для семейства связанных проектов, которые подпадают под действие распределенных вычислений и крупномасштабной обработки данных. Другие проекты Apache, связанные с Hadoop, включают Hive, HBase, Mahout, Sqoop, Flume и ZooKeeper.
Архитектура Hadoop
Hadoop имеет архитектуру Master-Slave для хранения данных и распределенной обработки данных с использованием методов MapReduce и HDFS.
Имя Узел:
NameNode представляет все файлы и каталог, которые используются в пространстве имен.
DataNode:
DataNode помогает управлять состоянием узла HDFS и позволяет взаимодействовать с блоками.
Мастер-узел:
Главный узел позволяет проводить параллельную обработку данных с помощью Hadoop MapReduce.
Ведомый узел:
Подчиненные узлы - это дополнительные машины в кластере Hadoop, которые позволяют хранить данные для проведения сложных вычислений. Более того, все подчиненные узлы имеют Task Tracker и DataNode. Это позволяет синхронизировать процессы с NameNode и Job Tracker соответственно.
В Hadoop ведущую или ведомую систему можно настроить в облаке или локально.
Особенности Hadoop
• Подходит для анализа больших данных.
Поскольку большие данные имеют тенденцию быть распределенными и неструктурированными по своей природе, кластеры HADOOP лучше всего подходят для анализа больших данных. Поскольку к вычислительным узлам поступает логика обработки (а не фактические данные), потребляется меньшая пропускная способность сети. Эта концепция называется концепцией локальности данных, которая помогает повысить эффективность приложений на основе Hadoop.
• Масштабируемость
Кластеры HADOOP можно легко масштабировать до любой степени, добавляя дополнительные узлы кластера, что позволяет увеличить объем больших данных. Кроме того, масштабирование не требует изменения логики приложения.
• Отказоустойчивость
Экосистема HADOOP позволяет реплицировать входные данные на другие узлы кластера. Таким образом, в случае отказа узла кластера обработка данных может продолжаться с использованием данных, хранящихся на другом узле кластера.
Топология сети в Hadoop
Топология (расположение) сети влияет на производительность кластера Hadoop при увеличении размера кластера Hadoop. Помимо производительности, нужно также позаботиться о высокой доступности и обработке сбоев. Для достижения этого Hadoop при формировании кластера используется топология сети.
Обычно пропускная способность сети является важным фактором, который следует учитывать при формировании любой сети. Однако, поскольку измерение пропускной способности может быть затруднено, в Hadoop сеть представлена в виде дерева, и расстояние между узлами этого дерева (количество переходов) считается важным фактором при формировании кластера Hadoop. Здесь расстояние между двумя узлами равно сумме их расстояний до их ближайшего общего предка.
Кластер Hadoop состоит из центра обработки данных, стойки и узла, который фактически выполняет задания. Здесь дата-центр состоит из стоек, а стойка состоит из узлов. Пропускная способность сети, доступная процессам, зависит от местоположения процессов. То есть доступная пропускная способность становится меньше по мере того, как мы уходим от-
- Процессы на одном узле
- Различные узлы на одной стойке
- Узлы на разных стойках одного дата-центра
- Узлы в разных дата-центрах