'

Стек технологий Apache Hadoop. Распределённая файловая система HDFS

Понравилась презентация – покажи это...





Слайд 0

Стек технологий Apache Hadoop. Распределённая файловая система HDFS Сергей Рябов


Слайд 1

Цели Осветить наиболее значимые технологии стека Apache Hadoop для распределённой обработки данных: MapReduce HDFS Hbase ZooKeeper Pig Hive Avro Рассмотреть архитектуру распределённой файловой системы HDFS


Слайд 2

Архитектурные принципы Линейная масштабируемость Надёжность и доступность Ненадёжное (commodity) оборудование Перемещение данных дороже перемещения программ Высокая производительность


Слайд 3

MapReduce Фреймворк для распределённых вычислений MapReduce job – 2 этапа Map: {<inpK,inpV>} -> {<intK,intV>} Reduce: {<intK,intV>} -> {<outK,outV>} Map – предварительная обработка Reduce – агрегация Shuffle – сортировка и слияние, невидимый для пользователя переход от Map к Reduce


Слайд 4

MapReduce


Слайд 5

MapReduce


Слайд 6

HDFS Иерархия каталогов и файлов Файлы поделены на блоки (128 MB) Метаданные отделены от данных NameNode хранит все метаданные в ОП DataNode хранит реплики блоков в виде файлов на диске Блоки дублируются на 3 DataNode


Слайд 7

HBase Распределённое ключ-значение хранилище на базе HDFS Таблицы: Строки с уникальными ключами Произвольное количество колонок Колонки сгруппированы в группы колонок Таблицы разбиты на «регионы» Горизонтально по строкам Вертикально по группам колонок


Слайд 8

ZooKeeper Распределённая служба координации распределённых задач Выборы лидера Распределённые блокировки Координация и уведомления о событиях


Слайд 9

Pig Платформа для анализа больших наборов данных Pig Latin – SQL-подобный язык Простота кодирования Возможности оптимизации Расширяемость Pig-программы преобразуются в набор MapReduce заданий (jobs)


Слайд 10

Hive Служит тем же целям, что и Pig Таблицы Типизированные колонки (int, float, string, date, boolean) Поддержка списков и отображений Реально данные хранятся в плоских файлах Хранит метаданные о Hive-таблицах в RDB Схемы таблиц Расположение в HDFS


Слайд 11

Avro Система сериализации данных Предоставляет: Компактный бинарный формат Удалённые вызовы процедур (RPC) Простая интеграция с динамическими языками Чтение/запись с использованием схем


Слайд 12

HDFS. Поставленные цели Очень большой объём распределённых данных 10К узлов, 100М файлов, 10ПБ данных Ненадёжное (commodity) оборудование Репликация данных Обнаружение и восстановление после сбоев Оптимизация для пакетной обработки Вычисление перемещается к данным Большая совокупная пропускная способность


Слайд 13

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


Слайд 14

HDFS. Архитектура Общее пространство имён для всего кластера Согласованность данных Write-once-read-many модель доступа Append-запись всё ещё нестабильна Файлы разбиваются на блоки Обычно по 128МБ Каждый блок дублируется на несколько узлов «Умный» клиент Может узнать местоположение блоков Доступ к данным непосредственно через DataNode


Слайд 15

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


Слайд 16

HDFS. NameNode Управляет пространством имён Связывает имя файла с набором блоков Связывает блок с набором DN Контролирует процессы репликации Единственная точка отказа Лог транзакций (journal) хранится в нескольких местах Локальный каталог Каталог в удалённой ФС (NFS/CIFS)


Слайд 17

HDFS. NameNode. Метаданные Метаданные для всего кластера хранятся в ОП Типы метаданных Списки файлов Списки блоков для каждого файла Списки DN для каждого блока Атрибуты файлов (время создания, количество реплик и т.д.)


Слайд 18

HDFS. DataNode Сервер блоков Хранит данные в локальной ФС Хранит метаданные блоков (CRC) Предоставляет данные и метаданные клиентам Периодически (3 секунды) посылает статусное сообщение (heartbeat) NN Список всех существующих блоков Объём занятого/свободного места Количество активных обменов данными Конвейерная работа с данными Передача данных заданным DN


Слайд 19

HDFS. CheckpointNode Периодически создаёт новый checkpoint образ из checkpoint и journal, загруженных с NN Загружает новый checkpoint на NN. Существующий journal урезается


Слайд 20

HDFS. Запись Клиент запрашивает у NN список DN-кандидатов на запись Начинает конвейерную запись с ближайшего узла


Слайд 21

HDFS. Чтение Клиент запрашивает местоположение реплик блока у NN Начинает чтение с ближайшего узла, содержащего реплику блока


Слайд 22

HDFS. Расположение реплик Первая реплика помещается на локальном узле Вторая реплика – на узел удалённой стойки Третья – на другой узёл той же удалённой стойки Остальные размещаются случайно DN содержит не более одной реплики блока Стойка содержит не более двух реплик блока


Слайд 23

HDFS. Balancer Процент используемого дискового пространства на всех DN должен быть одинаков Обычно запускается при добавлении новой DN Не мешает основной работе HDFS При сильной загрузке сети трафик урезается до минимума (1 Мбит/с)


Слайд 24

HDFS. Block Scanner Каждая DN периодически запускает BS BS проверяет, что контрольные суммы соответствуют блокам данных Если BS находит повреждённый блок, он оповещает об этом NN NN помечает реплику как испорченную и начинает процесс репликации для блока По окончании повреждённая реплика готова к удалению


Слайд 25

HDFS. Интерфейс пользователя Команды пользователя HDFS hadoop fs –mkdir /foodir hadoop fs –cat /foodir/barfile.txt hadoop fs –ls /foodir Команды администратора HDFS hadoop dfsadmin -report hadoop dfsadmin –safemode enter Веб-интерфейс http://namenode:port/dfshealth.jsp


Слайд 26

HDFS. Веб-интерфейс


Слайд 27

HDFS. Использование в Yahoo! 3500 узлов 2 процессора Xeon@2.5GHz (по 4 ядра) Red Hat Enterprise Linux Server Release 5.1 Sun Java JDK 1.6.0_13-b03 4 SATA диска (1 TB каждый) 16GB RAM 1-gigabit Ethernet NamaNode с 64 GB RAM 3.3 PB данных (9.8 PB с репликами) 1-2 узла выходят из строя каждый день


Слайд 28

HDFS. Benchmarks Gray Sort benchmark. Сортировка 1 ТБ и 1 ПБ данных. Записи по 100 байт. При сортировке ТБ количество реплик было сокращено до одной, при сортировке ПБ - до двух. NameNode benchmark. Несколько локальных клиентских потоков выполняют одну и ту же операцию.


Слайд 29

Спасибо за внимание Вопросы?


×

HTML:





Ссылка: