HDFS расшифровывается, как Hadoop Distributed File System. Hadoop — название, Distributed File System — переводится, как “распределенная файловая система”. То есть, HDFS — это система хранения и передачи файлов большого размера, с информацией, которая поблочно распределена по различным вычислительным устройствам (кластерам) с возможностью потокового доступа.
HDFS может состоять из любых устройств, главное, чтобы они были соединены в общую сеть посредством Интернета. Является иерархической системой с каталогами и вложенным в них файлами.
Как используется Hadoop Distributed File System?
HDFS используется для хранения и анализа больших массивов данных. Большинство крупных компаний (Google, Amazon и др.) используют Hadoop для обработки огромного количества данных, проходящих, через эти компании ежедневно.
Hadoop имеет такие преимущества:
- Доступность. Благодаря использованию кластеров, стоимость использования HDFS наиболее выгодна, по сравнению с системами, изготовленными по индивидуальному заказу.
- Репликация. Все элементы дублируются и хранятся на различных узлах данных. Благодаря этому достигается максимальная отказоустойчивость, не позволяющая утратить данные из-за поломки одного из устройств.
- Открытый код. Исходный код Hadoop находится в открытом доступе. Над его совершенствованием работают как крупные коммерческие организации, так и отдельные специалисты, которые увлекаются такими разработками. Благодаря этому достигается доступность и развитие.
- Коммерческие версии. HDFS сложная система, не любой специалист сможет с ходу провести настройку под конкретные задачи. Поэтому разработаны коммерческие версии (Cloudera), позволяющие быстро развернуть систему Hadoop для выполнения задачи.
Архитектура HDFS
Кластер HDFS включает следующие элементы:
- Управляющий узел (сервер имен). Имеет также название NameNode. Узел с программным кодом, отвечающим за полное управление Hadoop. Может создавать, удалять каталоги, работать с файлами, контролирует связь между всеми элементами системами и т.д
- Вторичный узел имен. Специальный узел, как и предыдущий, может быть всего один в Hadoop. Копирует образ развернутой файловой системы, со всеми логами. Используется для быстрого ручного восстановления управляющего узла при возникновении ошибок или выходе из строя.
- Сервер данных. Еще одно название — DataNode. Отвечает за управления файлами и блоками данных, то есть копирует, удаляет, перемещает и т.д. Обрабатывает данные и выполняется команды, которые поступает от клиентов файловой системы.
- Клиент. Приложение или пользователь, которые взаимодействуют с Hadoop через API. В зависимости от наличия прав доступен различный уровень взаимодействия с файлами.