Распределенные файловые системы: сравнительный анализ Google File System (GFS) и Hadoop Distributed File System (HDFS) | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 23 ноября, печатный экземпляр отправим 27 ноября.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №17 (516) апрель 2024 г.

Дата публикации: 23.04.2024

Статья просмотрена: 35 раз

Библиографическое описание:

Дубровский, А. А. Распределенные файловые системы: сравнительный анализ Google File System (GFS) и Hadoop Distributed File System (HDFS) / А. А. Дубровский. — Текст : непосредственный // Молодой ученый. — 2024. — № 17 (516). — С. 13-15. — URL: https://moluch.ru/archive/516/113305/ (дата обращения: 13.11.2024).



В данной статье проводится исследование архитектур двух распределенных файловых систем (РФС) — Google File System (GFS) и Hadoop Distributed File System (HDFS). Автор анализирует структуру обеих систем, выделяя их ключевые особенности и уникальные характеристики.

Ключевые слова : РФС, GFS, HDFS, файловая система.

Распределенные файловые системы (РФС) играют важную роль в современных вычислительных средах, обеспечивая эффективное хранение и обработку огромных объемов данных. Две из самых известных и широко используемых РФС — Google File System (GFS) от Google и Hadoop Distributed File System (HDFS) от Apache, обладают рядом схожих черт, но имеют и свои особенности в архитектуре и применении.

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

В структуре файловой системы Google File System (GFS) файлы организованы иерархически с использованием каталогов, как и в аналогичных файловых системах, и идентифицируются своим путем. Пользователи могут выполнять стандартные операции с файлами в GFS, такие как создание, удаление, открытие, закрытие, чтение и запись. Кроме того, GFS предоставляет возможность создавать резервные копии, или снимки, файлов или дерева каталогов с минимальными затратами.

Основными компонентами GFS являются мастер-сервер и чанк-серверы, где хранятся данные. Обычно кластер GFS состоит из одного главного мастер-сервера и нескольких чанк-серверов. Файлы в GFS разбиваются на небольшие фрагменты, называемые чанками, которые хранятся на чанк-серверах и реплицируются для обеспечения отказоустойчивости. Мастер-сервер отвечает за управление метаданными всей файловой системы, включая пространства имен, контроль доступа и информацию о чанках.

Клиенты взаимодействуют с мастер-сервером только для операций, связанных с метаданными, в то время как операции с данными выполняются напрямую с чанк-серверами. GFS не поддерживает POSIX API, что освобождает разработчиков от необходимости работать с уровнем VNode в Linux. Обычный размер чанка в GFS составляет 64 мегабайта, что обеспечивает эффективную работу с крупными файлами. Общая архитектура GFS представлена на рис. 1.

Общая архитектура GFS

Рис. 1. Общая архитектура GFS

Исходя из вышеописанной архитектуры можно выделить преимущества такой системы:

— Высокая доступность и отказоустойчивость, достигающаяся с помощью репликации

— Операции пакетной обработки, такие как запись в журнал операций и сбор мусора, способствуют увеличению пропускной способности.

— Простой и эффективная архитектура с одним мастером обеспечивает хорошую производительность для последовательного чтения большого количества данных.

Также в данной архитектуре присутствуют и минусы:

— При увеличении записей производительность системы может уменьшаться.

— Система ограничена количеством памяти на GFS Мастере.

— Маленькие файлы разбиваются на малое количество частей, что может привести к увеличению нагрузки на серверах, хранящих такие файлы.

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

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

HDFS имеет архитектуру типа maser/slave. Кластер HDFS состоит из одного NameNode, мастер-сервера, который управляет пространством имен файловой системы и регулирует доступ к файлам клиентов. Кроме того, есть несколько DataNode, обычно по одному на узел в кластере, которые управляют хранилищем, присоединенным к узлам, на которых они работают. HDFS предоставляет пространство имен файловой системы и позволяет хранить пользовательские данные в файлах. Внутренне файл разбивается на один или несколько блоков, и эти блоки хранятся в наборе DataNode. NameNode выполняет операции пространства имен файловой системы, такие как открытие, закрытие и переименование файлов и каталогов. Он также определяет сопоставление блоков с DataNode. DataNode отвечают за обслуживание запросов на чтение и запись от клиентов файловой системы. DataNode также выполняют создание, удаление и репликацию блоков по инструкции от NameNode. Проиллюстрируем данную архитектуру на рис. 2.

Общая архитектура HDFS

Рис. 2. Общая архитектура HDFS

Преимущества HDFS:

— Большой размер блока по сравнению с другими файловыми системами.

— Принцип WORM (Write Once, Read Many) полностью освобождает систему от блокировок типа «запись-чтение».

— Запись в файл в одно время доступна только одному процессу, что исключает конфликты множественной записи.

— HDFS оптимизирована под потоковую передачу данных.

Недостатки HDFS:

— Сервер имён является центральной точкой всего кластера, и его отказ повлечёт сбой системы целиком.

— Нельзя дописывать или оставлять открытыми для записи файлы в HDFS.

Вывод

HDFS упрощает модель записи, разрешая только одного писателя или добавление данных одновременно, что обеспечивает более простую систему управления согласованностью данных. С другой стороны, GFS позволяет нескольким клиентам писать или добавлять данные в один файл одновременно, что увеличивает сложность обеспечения согласованности данных, но может повысить параллелизм записи данных.

Однако следует отметить, что GFS использует механизм аренды для обеспечения последовательной согласованности при записи данных на несколько реплик. Этот механизм позволяет определить порядок записи для каждой реплики и гарантирует согласованность данных в глобальном порядке.

В целом, HDFS и GFS являются мощными распределенными файловыми системами, которые оптимизированы для различных типов рабочих нагрузок. HDFS становится отраслевым стандартом для хранения больших объемов данных, в то время как GFS, с его поддержкой конкурентной записи, остается востребованным решением для приложений, требующих параллельной обработки данных.

Литература:

  1. White, Tom. Hadoop: The Definitive Guide. — O'Reilly Media, 2015.
  2. Kleppmann, Martin. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. — O'Reilly Media, 2017.
Основные термины (генерируются автоматически): GFS, HDFS, файловая система, POSIX, файл, общая архитектура, пространство имен, система, API, WORM.


Ключевые слова

HDFS, РФС, GFS, файловая система

Похожие статьи

Сравнительный анализ архитектур данных Data Fabric и Data Lake применительно к оперативным сценариям

В этой статье основное внимание будет уделено тому, какое хранилище больших данных является наиболее подходящим для крупномасштабных оперативных сценариев использования в режиме реального времени — фабрика данных (Date Fabric) или озеро данных (Date ...

Разработка веб-сервиса для хранения и передачи данных

В данной статье рассматривается процесс разработки веб-сервиса для облачного хранения и передачи данных, описываются основные аспекты создания серверной части с использованием фреймворка Spring и реализации клиентской части с использованием React, а ...

Теоретические аспекты создания обозревателя файловой директории с применением кроссплатформенного фреймворка Qt

В статье подробно разобран пример программы, написанной на языке C++ на основе кроссплатформенного фреймворка Qt. Программа InterView написана программистами компании Qt, и входит в состав примеров, поставляемых вместе с пакетом Qt Creator. На её при...

Systemd и SysVinit: сравнение систем инициализации Linux

В данной статье рассматривается сравнение систем инициализации Linux: SysVinit и systemd. Освещаются основные аспекты и роли этих систем, история появления и функциональность. Приводится анализ различий в модульности, управлении зависимостями и влиян...

Классификация систем поддержки принятия решений для использования в системе управления событиями и информацией о безопасности

В статье представлен обзор типов систем поддержки принятия решений (СППР) с целью определения оптимального решения для использования в SIEM-системах, рассмотрены возможные способы интеграции СППР в Государственную систему обнаружения, предупреждения ...

Создание хранилища данных для распределённой системы

В данной работе рассматривается реализация модуля хранения данных в распределённой системе, решающей задачи хранения и анализа файлов, содержащих данные в виде текста. Задачами модуля являются размещение файлов, а также управление загруженными файлам...

Сравнительный анализ современных подходов к построению корпоративных мультимедийных систем

В статье авторы классифицируют сферы использования аудиовизуальных систем и рассматривают два архитектурных подхода, используемые при построении корпоративных мультимедийных систем, сравнивая их с «домашними» решениями (без единого архитектурного под...

Автоматизированная информационно-справочная система по курсу моделирования

В данной статье рассматривается вариант организации, хранения и представления многочисленных разнородных файлов, располагающихся на компьютере. Основное внимание в работе акцентируется на сочетании словарно-справочной системы, системы хранения докуме...

Определение кратчайшего пути между двумя объектами с помощью программы QGIS с использованием модуля Road Graph

В этой статье представлена информация о модуле Road Graph в программе QGIS и пример того, как этот модуль работает. Модуль Road Graph работает на алгоритме Дейкстры, определяющем кратчайшие расстояния между двумя объектами (адресами).

Обзор систем контейнеризации Docker и Singularity в рамках кластеров суперкомпьютеров

В данной статье разбираются некоторые аспекты механизма контейнеризации в рамках высокопроизводительных кластеров и производится общий обзор технологии виртуализации, а так же двух технологий контейнеризации — Docker и Singularity.

Похожие статьи

Сравнительный анализ архитектур данных Data Fabric и Data Lake применительно к оперативным сценариям

В этой статье основное внимание будет уделено тому, какое хранилище больших данных является наиболее подходящим для крупномасштабных оперативных сценариев использования в режиме реального времени — фабрика данных (Date Fabric) или озеро данных (Date ...

Разработка веб-сервиса для хранения и передачи данных

В данной статье рассматривается процесс разработки веб-сервиса для облачного хранения и передачи данных, описываются основные аспекты создания серверной части с использованием фреймворка Spring и реализации клиентской части с использованием React, а ...

Теоретические аспекты создания обозревателя файловой директории с применением кроссплатформенного фреймворка Qt

В статье подробно разобран пример программы, написанной на языке C++ на основе кроссплатформенного фреймворка Qt. Программа InterView написана программистами компании Qt, и входит в состав примеров, поставляемых вместе с пакетом Qt Creator. На её при...

Systemd и SysVinit: сравнение систем инициализации Linux

В данной статье рассматривается сравнение систем инициализации Linux: SysVinit и systemd. Освещаются основные аспекты и роли этих систем, история появления и функциональность. Приводится анализ различий в модульности, управлении зависимостями и влиян...

Классификация систем поддержки принятия решений для использования в системе управления событиями и информацией о безопасности

В статье представлен обзор типов систем поддержки принятия решений (СППР) с целью определения оптимального решения для использования в SIEM-системах, рассмотрены возможные способы интеграции СППР в Государственную систему обнаружения, предупреждения ...

Создание хранилища данных для распределённой системы

В данной работе рассматривается реализация модуля хранения данных в распределённой системе, решающей задачи хранения и анализа файлов, содержащих данные в виде текста. Задачами модуля являются размещение файлов, а также управление загруженными файлам...

Сравнительный анализ современных подходов к построению корпоративных мультимедийных систем

В статье авторы классифицируют сферы использования аудиовизуальных систем и рассматривают два архитектурных подхода, используемые при построении корпоративных мультимедийных систем, сравнивая их с «домашними» решениями (без единого архитектурного под...

Автоматизированная информационно-справочная система по курсу моделирования

В данной статье рассматривается вариант организации, хранения и представления многочисленных разнородных файлов, располагающихся на компьютере. Основное внимание в работе акцентируется на сочетании словарно-справочной системы, системы хранения докуме...

Определение кратчайшего пути между двумя объектами с помощью программы QGIS с использованием модуля Road Graph

В этой статье представлена информация о модуле Road Graph в программе QGIS и пример того, как этот модуль работает. Модуль Road Graph работает на алгоритме Дейкстры, определяющем кратчайшие расстояния между двумя объектами (адресами).

Обзор систем контейнеризации Docker и Singularity в рамках кластеров суперкомпьютеров

В данной статье разбираются некоторые аспекты механизма контейнеризации в рамках высокопроизводительных кластеров и производится общий обзор технологии виртуализации, а так же двух технологий контейнеризации — Docker и Singularity.

Задать вопрос