Hadoop

Apache Hadoop — это пакет утилит, библиотек и фреймворков, его используют для построения систем, которые работают с Big Data. Он хранит и обрабатывает данные для выгрузки в другие сервисы. У Hadoop открытый исходный код, написанный на языке Java. Это значит, что пользователи могут работать с ним и модифицировать его бесплатно.

Hadoop разделен на кластеры — группу серверов (узлов), которые используют как единый ресурс. Так данные удобнее и быстрее собирать и обрабатывать. Деление позволяет выполнять множество элементарных заданий на разных серверах кластера и выдавать конечный результат. Это нужно в первую очередь для перегруженных сайтов, например Facebook.

Внутри Hadoop существует несколько проектов, которые превратились в отдельные стартапы: Cloudera, MapR и Hortonworks. Эти проекты — дистрибутивы или установочный пакет программы, которые обрабатывают большие данные.

Архитектура Hadoop

Источник

Основные компоненты

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

Hadoop Common набор библиотек, сценариев и утилит для создания инфраструктуры, аналог командной строки.

Hadoop HDFS (Hadoop Distributed File System) иерархическая система хранения файлов большого размера с возможностью потокового доступа. Это значит, что HDFS позволяет легко находить и дублировать данные.

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

MapReduce — это модель программирования, которая впервые была использована Google для индексации своих поисковых операций. MapReduce построен по принципу «мастер–подчиненные». Главный в системе — сервер JobTracker, раздающий задания подчиненным узлам кластера и контролирующий их выполнение. Функция Map группирует, сортирует и фильтрует несколько наборов данных. Reduce агрегирует данные для получения желаемого результата.

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

Дополнительные компоненты

Hive: хранилище данных

Система хранения данных, которая помогает запрашивать большие наборы данных в HDFS. До Hive разработчики сталкивались с проблемой создания сложных заданий MapReduce для запроса данных Hadoop. Hive использует HQL (язык запросов Hive), который напоминает синтаксис SQL.

Pig: сценарий преобразований данных

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

Flume: прием больших данных

Flume — это инструмент для приема больших данных, который действует как курьерская служба между несколькими источниками данных и HDFS. Он собирает, объединяет и отправляет огромные объемы потоковых данных (например файлов журналов, событий, созданных десктопными версиями социальных сетей) в HDFS.

Zookeeper: координатор

Zookeeper это сервис-координатор и администратор Hadoop, который распределяет информацию на разные сервера.

Курс

Data Scientist с нуля

Получите востребованные IT-навыки за один год и станьте перспективным профессионалом. Мы поможем в трудоустройстве. Дополнительная скидка 5% по промокоду BLOG.

Узнать б

Hadoop решает несколько ключевых задач по работе с большими данными:

  • Обеспечивает устойчивость. Данные, хранящиеся в любом узле, воспроизводятся в других узлах кластера. Это помогает избежать поломок. Если что-то случилось с одним из узлов, то всегда есть резервная копия данных, доступная в кластере.
  • Повышает скорость обработки данных. Файловая система Hadoop, параллельная обработка и модель MapReduce обеспечивают запуск сложных запросов в считанные секунды.
  • Обрабатывает разнообразные данные. HDFS имеет возможность хранить различные форматы данных, такие как неструктурированные (например видео), полуструктурированные (например файлы XML). Работа с разными форматами расширяет спектр возможностей программиста.

Другие термины на букву «H»

HTML
HTTP-протокол

Все термины

Какие курсы вам подходят

Курс «Data Science»

От 7500 Р/мес

12 мес

Подробнее о курсе

Профессия «Data Scientist»

От 6900 Р/мес

24 мес

Подробнее о курсе
Блог SkillFactory
Добавить комментарий