Библиотека сайта rus-linux.net
Распределенная файловая система Hadoop
Глава 8 из книги "Архитектура приложений с открытым исходным кодом", том 1.
Оригинал: The Hadoop Distributed File System
Авторы: Robert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko, Suresh Srinivas
Дата публикации: 7 Июля 2012 г.
Перевод: А.Панин
Дата перевода: 8 Апреля 2013 г.
Распределенная файловая система Hadoop (The Hadoop Distributed File System - HDFS) спроектирована с учетом возможности надежного хранения чрезвычайно больших объемов данных и их передачи на высокой скорости пользовательским приложениям. В составе кластера большого размера пользовательские приложения выполняются на тысячах серверов, работающих с подключенными напрямую устройствами хранения данных. Распределяя хранилище данных и вычислительные ресурсы между множеством серверов, можно осуществлять наращивание ресурсов при необходимости, делая систему любого размера экономичной. Мы опишем архитектуру распределенной файловой системы HDFS и расскажем о нашем опыте использования данной файловой системы для управления 40 петабайтами данных компании Yahoo!
8.1. Введение
Hadoop1 является распределенной файловой системой, также включающей в свой состав фреймворк для проведения анализа и преобразований очень больших объемов данных с использованием парадигмы MapReduce [DG04]. Хотя интерфейс HDFS и проектировался по аналогии с интерфейсами файловых систем из состава Unix, разработчики пожертвовали точностью следования стандартам в угоду повышению производительности используемых приложений.
Важной характеристикой файловой системы Hadoop является распределение данных и вычислительных ресурсов между многими (тысячами) узлов, а также выполнение предусмотренных приложениями вычислений параллельно с доставкой необходимых данных. Кластер Hadoop позволяет масштабировать вычислительные ресурсы, емкость устройств хранения данных и пропускную способность каналов для осуществления операций ввода/вывода путем простого добавления приобретаемых серверов. Кластеры Hadoop в компании Yahoo! в совокупности состоят из 40000 серверов и хранят 40 петабайт данных приложений, при этом самый большой кластер состоит из 4000 серверов. Около ста других организаций со всего мира заявляют об использовании Hadoop.
Файловая система HDFS хранит метаданные и данные приложений отдельно. Как и другие распределенные файловые системы, такие, как PVFS [CIRT00], Lustre2 и GFS [GGL03], HDFS хранит метаданные на выделенном сервере, называемом сервером метаданных (NameNode). Данные приложений хранятся на других серверах, называемых серверами данных приложений (DataNode). Все серверы взаимодействуют друг с другом посредством протоколов, основывающихся на протоколе TCP. В отличие от файловых систем Lustre и PVFS, используемые HDFS серверы данных приложений (DataNode) не полагаются с целью повышения надежности хранения данных на такие механизмы их защиты, как RAID. Напротив, аналогично файловой системе GFS, содержимое файла распределяется между множеством серверов данных приложений для его надежного хранения. Гарантируя надежность хранения данных, применяемая стратегия позволяет использовать преимущество умножения пропускной способности канала передачи данных, а также в случае ее использования появляется возможность проводить вычисления параллельно с доставкой необходимых данных.
Далее: 8.2. Архитектура