Hadoop Лекция 2. Распределенная файловая система HDFS.

Презентация:



Advertisements
Похожие презентации
Hadoop Лекция 8. Основы администрирования Hadoop.
Advertisements

Hadoop Лекция 1. Введение в Hadoop и MapReduce. Что такое Hadoop Инфраструктура (framework) для параллельной обработки больших объемов данных (терабайты)
Стек технологий Apache Hadoop. Распределённая файловая система HDFS Сергей Рябов.
UnixЭто: Семейство операционных систем Семейство операционных системФункция: Работа с большим количеством данных (вычисления). Работа с большим количеством.
Программное обеспечение серверов и клиентов. Программы-клиенты web-клиент ftp-клиент ssh-клиент mail-клиент.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Лекция 11 Файловые системы. FAT32 File Allocation Table «таблица размещения файлов» Максимально возможное число кластеров в FAT32 равно кластеров,
Файлы и файловая система Шинкаренко Евгений Александрович МОУ Гимназия 2 г. Черняховск Калининградской области.
Файловые архивы Internet Файловые архивы Internet Протокол FTP Протокол FTP Режимы обмена данными Режимы обмена данными Программное обеспечение доступа.
Операционные системы Файловые системы (часть 2). Организация ФС UNIX. Виды файлов Обычный файл (regular file) Каталог (directory) Специальный файл устройств.
Теневые копии общих папок представляют собой точные копии файлов, расположенных на общих ресурсах, таких как файловые серверы. Теневые копии общих папок.
Текстовые файлы Вербицкая Ольга Владимировна, Заозерная школа 16.
Программирование на языке Паскаль Работа с файловой системой.
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
Файлы и файловая система Файл – это объект в виде совокупности данных, имеющий имя и хранящийся в долговременной (внешней) памяти компьютера. Имя файла.
Учитель информатики Трашков О.Л.. Файловая система Windows позволяет выполнять следующие операции: Поиск Создание Копирование Перемещение Переименование.
Выполнила Ученица 11-В классаОленченкоСветлана Севастопольская специализированная школа I-III ступеней 3 с углублённым изучением английского языка Севастопольского.
Введение в параллельные вычисления. Технология программирования MPI (день первый) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Лекция 12 Файловые системы NTFS - продолжение. ТТХ.
Данные и программы. Файлы и файловые системы. 7 класс Учитель: Косенко Е.В.
Транксрипт:

Hadoop Лекция 2. Распределенная файловая система HDFS

План Мотивация использования распределенных файловых систем Архитектура HDFS Команды работы с HDFS Права доступа в HDFS Работа с HDFS из Java программ

Мотивация Что нужно для эффективной обработки терабайтов данных? Большая емкость Высокая производительная Надежность

Традиционное решение Системы хранения данных Емкость: сотни и тысячи дисков Производительность: сотни ГБ/с Надежность: RAID, дублирование компонентов, репликация Примеры: EMC Symmetrix VMAX, Hitachi VSP, HP XP20000 Недостаток: высокая стоимость (миллионы долларов)

Распределенные файловые системы Можно ли получить емкость, производительность и надежность дешево? Да, можно. Google: The Google File System, Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung. Proceedings of the 19th ACM Symposium on Operating Systems Principles, 2003, pp Для хранения данных используются диски недорогих обычных серверов Независимые диски объединяются в распределенную файловую систему GFS

Преимущества распределенных файловых систем Высокая емкость: Много серверов с внутренними дисками Высокая производительность: Параллельная запись на диски, много сетевых интерфейсов Высокая надежность: Репликация данных на разные серверы Низкая стоимость: Серверы стандартной архитектуры с Linux

HDFS Hadoop Distributed File System (HDFS) – распределенная файловая система, входящая в состав Hadoop Основывается на архитектуре Google File System HDFS - специализированная файловая система для приложений Hadoop

Потребности приложений Hadoop Типовое приложение – поисковый робот Файлы индексов содержимого Web больших размеров Файлы индексов записываются один раз, а затем только читаются (без изменений) Потоковые операции ввода-вывода Пакетная обработка

Ограничения HDFS Оптимизация для потоковых операций с большими файлами Случайный доступ работает медленно Модель доступа к файлам WORM (Write-Once-Read- Many) Запись в файл производиться только один раз, потом только чтение Не поддерживается POSIX Нельзя подмонтировать, не работают стандартные Linux команды ls, cp, mkdir и т.п. Кэширование не используется Накладные расходы слишком велики

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

Namenode (узел имен): Управляющий узел Обеспечивает единое пространство имен Регулирует доступ клиентов Хранит метаданные Datanode (узел данных) Хранит данные Узлы имен и данных – серверы Linux (как правило)

Хранение файлов в HDFS Блочная структура: Файл разбивается на блоки одинакового размера (64MБ по умолчанию) Блоки хранятся на одном или нескольких узлах хранения Возможна репликация блоков Узел имен хранит метаданные о распределении блоков по узлам хранения

Хранение файлов в HDFS

Репликация В большом кластере всегда будут неисправные узлы Для защиты от сбоев HDFS использует репликацию – хранение нескольких копий блока Фактор репликации – количество копий блока (3 шт. по умолчанию) Отказ сервера снижает производительность, но не приводит к потере данных

Репликация

Rack Awareness Дополнительный механизм защиты от сбоя группы серверов Rack – серверный шкаф: Отключение питания всего шкафа Потеря сетевого соединения со шкафом HDFS умеет распределять реплики между разными шкафами Отказ всего шкафа не приводит к потере данных

Rack Awareness

Доступ к HDFS Блоки HDFS распределены по разным серверам: HDFS нельзя подмонтировать Не работают стандартные Linux команды: ls, cp, mv и.т. Для работы с HDFS используются специальные команды: $bin/hadoop dfs -cmd

Структура HDFS Корневой каталог HDFS - / Домашние каталоги пользователей - /user/$USER Временный каталог - /tmp Нет понятия текущий каталог Нет команд cd, pwd Пути: Полные – начиная с / Относительные – из домашнего каталога пользователя

Просмотр файлов в каталоге Домашний каталог: Корневой каталог: bin/hadoop dfs -ls Found 3 items -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file1 -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file2 -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file3 bin/hadoop dfs -ls / Found 2 items drwxr-xr-x - hadoop supergroup :32 /tmp drwxr-xr-x - hadoop supergroup :35 /user

bin/hadoop dfs -cat /user/hadoop/file1 Hello, world! Hello, Hadoop! Просмотр файла Список файлов: Просмотр файла: Просмотр файла, полный путь: bin/hadoop dfs -ls Found 3 items -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file1 -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file2 -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file3 bin/hadoop dfs -cat file1 Hello, world! Hello, Hadoop!

Запись файлов в HDFS Команда: $bin/hadoop dfs –put localSrc hdfsDest Копирует из локальной файловой системы в HDFS Работает как с файлами, так и с каталогами Если файл уже существует, выдает ошибку Синоним -copyFromLocal

Запись файлов в HDFS Запись файла: Запись каталога: Файл существует: bin/hadoop dfs -put /tmp/file1 /user/hadoop bin/hadoop dfs -put /tmp/dir1 /user/hadoop bin/hadoop dfs -ls dir1 Found 3 items -rw-r--r-- 1 hadoop supergroup :49 /user/hadoop/dir1/filea -rw-r--r-- 1 hadoop supergroup :49 /user/hadoop/dir1/fileb -rw-r--r-- 1 hadoop supergroup :49 /user/hadoop/dir1/filec bin/hadoop dfs -put /tmp/file1 file1 put: Target file1 already exists

Получение файлов из HDFS Команда: $ bin/hadoop dfs –get hdfsSrc localDest Копирует из HDFS в локальную файловую систему Работает как с файлами, так и с каталогами Синоним -copyToLocal

Команды для работы с HDFS КомандаНазначение -mv src dest Перемещение файлов внутри HDFS -cp src dest Копирование файлов внутри HDFS -rm path Удаление файла или пустого каталога -rmr path Удаление файла или каталога рекурсивно -mkdir path Создание каталога (работает как mkdir –p в Linux) -stat path Выводит информацию по файлу или каталогу -tail [-f] path Вывод последнего килобайта файла (с -f выводит добавляемые данные) -help Перечень команд работы с HDFS

Web-интерфейс к HDFS

Права доступа в HDFS Модель прав доступа HDFS похожа на POSIX: Файл имеет владельца (owner) и группу (group) Права задаются отдельно для владельца, группы и всех остальных Права доступа rwx Нет sticky bit, setuid or setgid

Семантика прав доступа Для файлов: r – чтение w – запись x – не используется Для каталогов: r – просмотр содержимого каталога w – создание файлов или каталогов x – доступ к файлам и подкаталогам

Пользователи HDFS Пользователи HDFS соответствуют пользователям Linux: Пользователь: `whoami` Список групп: `bash -c groups` Суперпользователь Не действуют ограничения прав доступа Пользователь, который запустил Hadoop Нет постоянного суперпользователя

Просмотр прав доступа bin/hadoop dfs -ls Found 3 items -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file1 -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file2 -rw-r--r-- 1 hadoop supergroup :58 /user/hadoop/file3 Права доступа ВладелецГруппа

Управление правами доступа Команды Опция –R – рекурсивные изменения Права доступа записываются как в Linux КомандаНазначение -chmod [-R] mode path Изменение прав доступа -chown [-R] owner[:group] path Изменение владельца (и группы) -chgroup [-R] grm path Изменение группы

Исходные права доступа Цифровой режим Символьный режим Изменение прав доступа $ bin/hadoop dfs -ls /user/Andrey/file1 -rw-r--r-- 1 Andrey supergroup :20 /user/Andrey/file1 $ bin/hadoop dfs -chmod 600 /user/Andrey/file1 $ bin/hadoop dfs -ls /user/Andrey/file1 -rw Andrey supergroup :20 /user/Andrey/file1 $ bin/hadoop dfs -chmod g+rw /user/Andrey/file1 $ bin/hadoop dfs -ls /user/Andrey/file1 -rw-rw Andrey supergroup :20 /user/Andrey/file1

Изменение владельца и группы Исходное состояние Изменение владельца Изменение группы $ bin/hadoop dfs -ls /user/Andrey/file1 -rw-rw Andrey supergroup :20 /user/Andrey/file1 $ bin/hadoop dfs -chown anton /user/Andrey/file1 $ bin/hadoop dfs -ls /user/Andrey/file1 -rw-rw anton supergroup :20 /user/Andrey/file1 $ bin/hadoop dfs -chgrp project1 /user/Andrey/file1 $ bin/hadoop dfs -ls /user/Andrey/file1 -rw-rw anton project :20 /user/Andrey/file1

Работа с HDFS из Java // Настройка путей Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); Path filenamePath = new Path("hello.txt"); // Запись в файл FSDataOutputStream out = fs.create(filenamePath); out.writeUTF(«Hello, world"); out.close(); // Запись в файл FSDataInputStream in = fs.open(filenamePath); String messageIn = in.readUTF(); System.out.print(messageIn); in.close();

Подключение к файловой системе org.apache.hadoop.fs.FileSystem – интерфейс для работы с DFS и другими файловыми системами org.apache.hadoop.conf.Configuration – конфигурация Hadoop и HDFS Подключение к файловой системе: Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf);

Структура имени файла Файл в HDFS: hdfs://namenode:port/path/file hdfs://localhost:9000/user/hadoop/file1 hdfs://namenode:port – можно не указывать, тогда используется namenode из текущего конфигурационного файла Hadoop Файл на локальном диске: file://path/file

Запуск программы FileSystem может работать как с HDFS, так и с локальной файловой системой, в зависимости от способа запуска Локальный запуск: java HDFSHelloWorld Запуск через Hadoop (запись в HDFS): $bin/hadoop HDFSHelloWorld

Методы FileSystem МетодНазначение copyFromLocalFile Копирование из локальной файловой системы в HDFS copyToLocalFile Копирование из HDFS в локальную файловую систему create Создание файла mkdirs Создание каталога delete Удаление файла или каталога rename Переименование файла setOwner Установка владельца и группы файла setPermissions Установка прав доступа к файлу getFileBlockLocations Возвращает список серверов, хранящих блоки файла

Итоги Мотивация использования распределенных файловых систем Архитектура HDFS Команды работы с HDFS Права доступа в HDFS Работа с HDFS из Java программ

Дополнительные материалы The Google File System HDFS Architecture Guide HDFS Permissions Guide HDFS Users Guide

Вопросы?