Что такое распределенная файловая система Hadoop (HDFS)? Архитектура, функции и операции
Опубликовано: 2020-02-03Распределенная файловая система Hadoop или HDFS — это основная система хранения данных Hadoop. Он хранит большие файлы данных, которые работают на обычном оборудовании. Эта система хранения является масштабируемой, легко расширяемой и устойчивой к сбоям.
Когда на одной физической машине хранится слишком много данных, хранилище распределяется между несколькими машинами, чтобы избежать потери данных. HDFS — одна из таких распределенных систем хранения файлов, которая управляет операциями хранения на многих физических машинах. Вот учебное пособие по HDFS, которое поможет вам лучше понять, как работает эта система. Начнем с его архитектуры.
Оглавление
Архитектура HDFS
Распределенная файловая система Hadoop имеет архитектуру master-slave со следующими компонентами:
- Namenode : это обычное оборудование, которое содержит как программное обеспечение namenode, так и ОС Linux/GNU. Программное обеспечение Namenode может без проблем работать на обычном оборудовании без каких-либо проблем. Система с namenode в качестве компонента функционирует как главный сервер. Он выполняет задачи, включающие регулирование доступа клиентов к файлам, управление пространством имен файловой системы и выполнение операций, включая открытие, закрытие и переименование каталогов и файлов.
- Datanode : это стандартное аппаратное обеспечение, которое содержит программное обеспечение узла данных и ОС Linux/GNU. Узлы в кластере всегда будут иметь связанные с ними узлы данных. Эти узлы отвечают за управление хранилищем стандартного оборудования/системы. Некоторые из задач, которые выполняют узлы данных, включают операции чтения/записи в соответствии с запросом клиента, а также создание, репликацию и удаление блоков на основе инструкций, данных узлом имени.
- Блок : все пользовательские данные хранятся в файлах HDFS. Каждый файл, принадлежащий определенной файловой системе, делится на один или несколько сегментов, которые затем хранятся в узлах данных. Сегменты файлов, на которые делятся файлы, являются блоками. Итак, наименьшие данные, которые HDFS способна читать или записывать, — это блок. Изначально каждый блок имеет размер 64 МБ. Но этот размер можно увеличить в соответствии с изменениями конфигурации HDFS.
Архитектура HDFS дает четкое и однозначное представление о работе HDFS. Он состоит из нескольких узлов данных, но только одного узла имен. Метаданные хранятся в узле имен, в то время как фактический рабочий узел двух типов узлов является узлом данных. Узлы организованы в разные стойки, на которых хранятся блоки данных, для повышения отказоустойчивости и надежности данных. Клиенты должны взаимодействовать с namenode для чтения/записи файла. Кластер имеет несколько узлов данных, которые используют локальный диск для хранения доступных данных. Datanode и namenode постоянно связаны друг с другом. Datanode также отвечает за репликацию данных с использованием функции репликации на разные узлы данных.
Операции чтения и записи в HDFS выполняются на самом низком уровне, то есть на уровне блоков. Концепция репликации данных занимает центральное место в работе HDFS — высокая доступность данных обеспечивается при сбое узла за счет создания реплик блоков и их распределения по всему кластеру.
Операции HDFS
Файловые системы HDFS и Linux очень похожи друг на друга. Итак, HDFS позволяет нам выполнять все операции, которые мы привыкли выполнять с локальными файловыми системами — мы можем создать директорию, изменить разрешения, скопировать файлы и многое другое. У нас также есть несколько прав доступа к файлам, включая чтение, запись и выполнение.

Операция чтения в HDFS: если вы хотите прочитать файл, хранящийся в HDFS, вам придется взаимодействовать с namenode. Как уже упоминалось, все метаданные хранятся в namenode. Как только вы взаимодействуете с namenode, он предоставит вам адрес узла данных, где хранится искомый файл. Затем вы можете взаимодействовать с узлом данных, адрес которого вам был предоставлен namenode, а затем читать оттуда информацию.
Вы взаимодействуете с API файловой системы, который запрашивает namenode для совместного использования адреса блока. Прежде чем предоставить эту информацию, namenode запускает проверку, чтобы узнать, имеете ли вы право на доступ к этим данным или нет. После того, как эта проверка выполнена, namenode либо делится местоположением блока, либо отказывает в доступе из-за ограничений.
Узел имени дает вам форму токена, который вы должны показать соответствующему узлу данных для доступа к файлу. Это форма механизма безопасности, которую HDFS использует для обеспечения доступа к данным нужного человека. Узел данных позволит вам прочитать файл только после того, как вы отобразите токен.

Операция записи: Операция записи следует тому же начальному шаблону. Вам нужно запросить namenode, чтобы вы могли записывать данные. Взамен он предоставит вам расположение узла данных, на котором должна быть выполнена операция записи. Как только вы закончите выполнение этой операции, узел данных начнет реплицировать эти блоки записанных данных на другие узлы данных. После завершения репликации вы получите подтверждение. Механизм аутентификации в операции записи такой же, как и в операции чтения.

Особенности HDFS
- Доступность . Существует не так уж много файловых систем с высокой доступностью HDFS. Файловая система следует механизму репликации данных в виде блочных реплик на узлах данных (ведомых устройствах) по всему кластеру. Чтобы получить доступ к этим данным, вам необходимо взаимодействовать с узлами данных, которые содержат блоки информации, которую они ищут.
- Надежность : распределенная файловая система Hadoop — это высоконадежная система хранения данных. Объем данных, которые можно хранить в HDFS, измеряется петабайтами. Он использует кластер для хранения всех своих данных, которые разделены на блоки. Затем он использует узлы кластера для хранения этих блоков.
- Отказоустойчивость : эта функция является рабочей силой HDFS в условиях, которые не так благоприятны, как обычно. HDFS допускает ошибки, как никакая другая файловая система. Он защищает ваши данные от любых непредвиденных последствий, даже в будущем. Как уже упоминалось, репликация данных выполняется на разных машинах. Что произойдет, если какая-либо из этих машин перестанет работать? Это могло быть серьезной проблемой с любой другой системой, но не с HDFS. HDFS позволяет вам получить доступ к вашим данным с любого другого компьютера, на котором также есть копия блоков данных, которые вы ищете. Это называется истинной отказоустойчивостью.
- Масштабируемость : HDFS использует разные узлы в кластере для хранения данных. Когда требования к хранилищу возрастают, вы всегда можете масштабировать кластер. Это еще одна особенность, уникальная для HDFS. Система распространения файлов предоставляет вам два механизма масштабирования кластера — горизонтальную и вертикальную масштабируемость.
- Репликация : Репликация — это функция, которая отличает HDFS от других систем хранения. Репликация сводит к минимуму случаи потери данных из-за неблагоприятных событий, таких как сбой узла, сбой оборудования и другие. Процесс тиражирования осуществляется регулярно и на разных машинах. Таким образом, нет потери данных, если машина выходит из строя. Вы можете использовать любую другую машину для получения данных.
Цели HDFS
- Управление огромными наборами данных. В отличие от других систем распространения файлов, HDFS имеет необходимую архитектуру для управления приложениями, содержащими огромные наборы данных. В зависимости от размера рассматриваемых наборов данных, он может иметь сотни узлов для каждого кластера.
- Обнаружение и устранение сбоев. Немногие могут превзойти HDFS по возможностям, связанным с обнаружением сбоев и их последующим устранением. Большое количество рассматриваемого аппаратного обеспечения делает HDFS подверженной частым отказам компонентов. Однако это не недостаток. Любая система, работающая с таким массовым оборудованием, может выйти из строя. Однако остается вопрос, способна ли система быстро и автоматически обнаруживать эти сбои и одновременно обеспечивать восстановление. HDFS, безусловно, способна.
- Повышенная пропускная способность: HDFS эффективно обрабатывает каждую задачу, поскольку фактические вычисления выполняются рядом с самими данными. Это особенно важно, когда мы имеем дело с огромными наборами данных. Этот механизм увеличивает пропускную способность и значительно решает проблему сетевого трафика.
В заключение мы хотели бы сказать, что HDFS может надежно хранить огромные объемы данных и не ощущать последствий сбоя оборудования. Он также обладает высокой отказоустойчивостью, высокой доступностью и высокой масштабируемостью.
Чтобы погрузиться в глубины Hadoop и стать экспертом, ознакомьтесь с сертификацией upGrad & BITS Pilani PG в области больших данных и аналитики. Получите практический опыт, общаясь один на один с отраслевыми экспертами, преданным наставником, статусом выпускника BITS Pilani и многим другим.
Если вам интересно узнать больше о больших данных, ознакомьтесь с нашей программой PG Diploma в области разработки программного обеспечения со специализацией в области больших данных, которая предназначена для работающих профессионалов и включает более 7 тематических исследований и проектов, охватывает 14 языков и инструментов программирования, практические занятия. семинары, более 400 часов интенсивного обучения и помощь в трудоустройстве в ведущих фирмах.
Изучайте онлайн-курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.