SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
Методы распределенной обработки
больших объемов данных в Hadoop
Москва 2014
Лекция 1: Введение в BigData и MapReduce
АЛЕКСЕЙ РОМАНЕНКО
Руководитель команды разработки поискового робота в проекте
Поиск@Mail.Ru. Участвовал в проектировании и реализации архитектуры
системы хранения и обработки данных на платформе Hadoop в проекте
Поиск@Mail.Ru.
Выпускник факультета Радиоэлектроники МАИ в 2001 г, кафедра
Вычислительные системы и сети.
v
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
МИХАИЛ ФИРУЛИК
Руководитель отдела анализа данных, департамент рекламных технологий,
компании Mail.Ru Group. Ранее занимался медийными рекламными
проектами в компании Яндекс, в том числе «Крипта» и «Поведенческий
ретаргетинг», а так же развитием автоматических стратегий управления
рекламными кампаниями в «Директ». До этого долгое время работал
ведущим разработчиком системы обработки данных проекта исследования
телевизионной аудитории «TV-Index» в компании TNS.
Выпускник Ленинградского Высшего Военного Училища Связи им. Ленсовета
(ныне Академии Связи), кафедра Математическое Обеспечение
Автоматизированных Систем Управления, 1995 г
v
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
НИКОЛАЙ АНОХИН
Программист-исследователь в отделе анализа данных Mail.ru. Работаю над
применением алгоритмов машинного обучения к задачам оптимизации
рекламного трафика. До Mail.ru занимался Data Mining в компаниях
Technicolor и AdMoment.
Окончил МФТИ по специальности «Прикладная Физика и Математика» в 2010
году и Университет Лиона по специальности «Data Mining & Knowledge
Management» в 2012.
v
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Чему посвящен данный курс?
• Вычисления на больших объемах данных (“Big
Data”)
• Основной фокус на приложениях и дизайне
алгоритмов
• MapReduce… и другие технологии
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Расписание занятий
Дата Время Лекция
13 сентября, суббота 15:00 — 18:00 Вводная лекция про BigData, введение про
MapReduce
19 сентября, пятница 18:00 — 21:00 Hadoop, основы
26 сентября, пятница 18:00 — 21:00 Распределенная файловая система HDFS
3 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, введение
10 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, продолжение I
17 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, продолжение II
24 октября, пятница 18:00 — 21:00 Введение в Hive и Pig
31 октября, пятница 18:00 — 21:00 NoSQL базы данных: BigTable, Hbase и Cassandra
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Расписание занятий, продолжение
Дата Время Лекция
7 ноября, пятница 18:00 — 21:00 Обработка текстов на естественных языках в
Hadoop
14 ноября, пятница 18:00 — 21:00 Machine learning в Hadoop: Mahout
21 ноября, пятница 18:00 — 21:00 Обработка данных realtime: Storm, Spark, Impal
28 ноября, пятница 18:00 — 21:00 Вычислительная модель Pregel
5 декабря, пятница 18:00 — 21:00 Hadoop 2.0
12 декабря, пятница 18:00 — 21:00 Hadoop: примеры использования в реальных
проектах
19 декабря, пятница 18:00 — 21:00 Итоговое занятие
16 января, пятница 18:00 — 21:00 Пересдача
Big Data
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Data Explosion
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
>10 PB данных, 75B DB
запросов в день (6/2012)
Обрабатывает 20 PB в день (2008)
Скачивает 20B веб-страниц в день (2012)
>100 PB польз. данных +
500 TB/день (8/2012)
S3: 449B объектов, макс 290k rps (7/2011)
1T объектов (6/2012)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Wayback Machine: 240B веб-страниц в архиве, 5
PB (1/2013)
LHC: ~15 PB в год
LSST: 6-10 PB в год
(~2015)
150 PB на 50k+ серверов
работает 15k apps (6/2011)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Много данных – это сколько?
640K должно
хватить каждому.
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Необходимые знания
• Программирование на Java и/или Python
– Этот курс не учит программировать
– Фокус на “thinking at scale” и разработка/дизайн
алгоритмов
– Самостоятельная установка Hadoop
(рекомендуется)
• Уметь отлаживать свой код
• Опыт работы в Linux (желательно)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Необходимые знания
• Основные знания по:
– Теория вероятностей и статистики
– Дискретная математика
– Архитектура компьютера
• Не обязателен опыт в:
– MapReduce
– Параллельном и распределенном
программировании
• Любознательность
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Как же стать гуру Hadoop?
• Посещать лекции, делать ДЗ
• Читать книги
– Tom White, “Hadoop: The Definitive Guide”
• Есть издание на русском языке
– Jimmy Lin and Chris Dyer, “Data-Intensive Text
Processing with MapReduce”
• RTFM
• RTFC(!)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Этот курс не для вас, если…
• Если вам не очень то интересен данный
раздел
• Если у вас нет время, чтобы в этом
разобраться
• Если вы чувствуете себя некомфортно с
непредсказуемостью, которая всегда есть в
bleeding-edge software
Иначе, это должно быть интересно!
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Оценка результатов
• Финальная оценка состоит из:
– Домашних заданий
– Финального проекта
• Вряд ли это подойдет в качестве отговорок:
– “Я слишком занят!”
– “Это требует слишком много времени, чем у
меня есть!”
– “Это труднее, чем я думал!”
– “Я отформатировал диск с домашней работой!”
– Ну и т.д.
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Использование Hadoop
• Hadoop на вашем компьютере
• Hadoop в виртуальной машине на вашем
компьютере
• Hadoop в нашей лаборатории
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Hadoop Дзен”
• Это передовая технология (т.е. незрелая!)
– Долгий путь с 2007, но до сих пор мы в начале пути…
– Баги, недокументированные “фичи”, неожиданное
поведение, потеря данных(!)
• Нельзя разочаровываться
– Эти WTF! моменты
• Быть терпеливым
– Мы неизбежно столкнемся со странными “ситуациями”
на протяжении курса
• Быть гибким
– Мы должны быть креативными в поиске workarounds
• Быть конструктивным
– Не паниковать!
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Hadoop Дзен”
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Интерлюдия: Облачные вычисления
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Облака” – это верх технологий?
• До облаков было…
– Грид-вычисления
• https://ru.wikipedia.org/wiki/Грид
– Суперкомпьютеры Connection machine
• https://ru.wikipedia.org/wiki/Connection_Machine
– Векторные суперкомпьютеры
– …
• «Облачные вычисления» означает много различных
вещей:
– Big data
– Ребрендинг Web 2.0
– Utility computing
– Everything as a service
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Ребрендинг Web 2.0
• Интерактивные интернет Rich-приложения
– Облако - это сервера, на которых они работают
– AJAX есть де-факто стандарт (хорошо это или
плохо…)
– Примеры: Facebook, YouTube, Gmail, Mail.Ru…
• “Сеть – это большой компьютер”: дайте два!
– Пользовательские данные хранятся “в облаках”
– Расцвет эпохи нетбуков, смартфонов, планшетов
и т.д..
– Браузер – это ОС
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Utility computing
• Что?
– Вычислительные ресурсы как сервис (“сколько
использовал, столько и оплати”)
– Возможность динамического предоставления
виртуальных машин
• Зачем?
– Цена: бюджет и оперативные расходы
– Масштабируемость: “бесконечное” кол-во ресурсов
– Эластичность: расширение on demand
• Это имеет смысл?
– Преимущества для пользователей облаков
– Бизнес для облачных провайдеров
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Технология: Виртуализация
Hardware
Operating System
App App App
Traditional
Stack
Hardware
OS
App App App
Hypervisor
OS OS
Virtualized Stack
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Everything as a Service
• Utility computing = Infrastructure as a Service
(IaaS)
– Зачем покупать сервера когда их можно
арендовать?
– Пример: Amazon’s EC2, Rackspace
• Platform as a Service (PaaS)
– Дай мне удобное API и позаботься об эксплуатации,
апргрейде, расширении, …
– Пример: Google App Engine
• Software as a Service (SaaS)
– Just run it for me!
– Example: Gmail, Salesforce
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Зачем все это нужно?
• Готовые для решения Big Data задачи
– Социальные сети, user-generated контент = Big Data
– Пример: предложение друзей в Facebook,
размещение рекламы Google
– Business intelligence: собрать все в data warehouse и
запустить аналитику для понимания выводов
• Utility computing предоставляет:
– Возможность предоставления Hadoop-кластеров по
запросу в облаке
– Меньший порог входа для решения Big Data
проблем
– Продуктовость и демократизация возможностей
работы с Big Data
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Работаем с Big Data
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Divide and Conquer
“Work”
w1 w2 w3
r1 r2 r3
“Result”
worker worker worker
Partition
Combine
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Вопросы параллелизма
• Как назначать части work по воркерам?
• А что есть у нас больше частей work чем
воркеров?
• А что если воркерам надо обмениваться
промежуточными результатами?
• Как мы объединяем промежуточные
результаты?
• Как мы узнаем, что все воркеры отработали?
• А что если воркер умрет?
Какая общая проблема объединяет эти вопросы?
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Общая проблема
• Проблемы параллелизма возникают из-за:
– Взаимодействия между воркерами (напр., обмен
состояниями)
– Доступ к общим ресурсам (напр., данные)
• Т.о. нам нужен механизм синхронизации
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Управление множеством воркеров
• Трудно потому что:
– Мы не знаем порядок, в котором воркеры запускаются
– Мы не знаем, когда воркеры прерывают друг друга
– Мы не знаем, когда воркерам надо обмениваться
промежуточным результатом
– Мы не знаем порядок, в котором воркеры имеют доступ к
общим данным
• Поэтому, нам нужны:
– Семафоры (lock, unlock)
– Conditional variables (wait, notify, broadcast)
– Barriers
• Все равно много проблем:
– Deadlock, livelock, race conditions...
– Dining philosophers, sleeping barbers, cigarette smokers...
• Мораль сей басни: будь осторожен!
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Текущие средства
• Программные модели
– Shared memory (pthreads)
– Message passing (MPI)
• Design Patterns
– Master-slaves
– Producer-consumer flows
– Shared work queues
Message Passing
P1 P2 P3 P4 P5
Shared Memory
P1 P2 P3 P4 P5
Memory
master
slaves
producer consumer
producer consumer
work queue
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Момент истины
• Concurrency сложная вещь
• Concurrency еще более сложная вещь…
– в рамках работы в нескольких датацентрах
– при наличии отказов
– с точки зрения множества интерактивных сервисов
• И мы еще промолчим про отладку!
• Реальность:
– Множество одноразовых и узкозаточенных решений
– Написание своих специальных библиотек, затем их
использование
– Бремя программиста все это поддерживать
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Датацентр - это большой компьютер!
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Так в чем же основной вопрос?
• Это все о правильном уровне абстракции
– Переместится поверх архитектуры фон Неймана
– Нам нужны программные модели получше!
• Скрыть детали системного уровня от
разработчиков
– Нет больше race conditions, lock contention и т.д..
• Отделение что от сейчас
– Разработчик определяет те вычисления, которые
надо произвести
– Сам фреймоворк (в “runtime”) обрабатывает процесс
запуска и выполнения вычислений
Датацентр – это компьютер!
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Big Ideas”
• Масштабирование “горизонтальное”, не
“вертикальное”
– Ограничения SMP и больших shared-memory машин
• Перенос процесса вычислений к данным
– Кластер имеет ограниченную пропускную
способность
• Последовательная обработка данных, избегать
произвольного доступа
– Seeks дороги, пропускная способность диска вполне
достаточная
• Полная масштабируемость
– От мифического человеко-час к понятному машино-
час
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Типичные задачи Big Data
• Пройтись по большому числу записей
• Извлечь что-то интересное из каждой из
записи
• Смешать и отсортировать промежуточные
результаты
• Объединить промежуточные результаты
• Сформировать выходной результат
Ключевая идея: предоставить функциональные
абстракции для этих двух операций
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Примеры задач для MapReduce
• В Google:
– Построение индекса в Google Search
– Кластеризация статей для Google News
– Статистический машинный перевод
• В Поиск@Mail.Ru:
– Парсинг скаченных web-страниц
– Поиск дубликатов документов
– Расчет ранков веб-страниц
• В Facebook:
– Задачи Data Mining
– Оптимизация показа рекламы
– Определение спама
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
g g g g g
f f f f fMap
Fold
Корни из функционального
программирования
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
• Программист определяет две функции:
map (k1, v1) → [<k2, v2>]
reduce (k2, [v2]) → [<k3, v3>]
– Все значения с одинаковым ключом
отправляются на один и тот же reducer
• Всем остальным управляет сам фреймворк…
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
mapmap map map
Shuffle and Sort: aggregate values by keys
reduce reduce reduce
k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6
ba 1 2 c c3 6 a c5 2 b c7 8
a 1 5 b 2 7 c 2 3 6 8
r1 s1 r2 s2 r3 s3
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
• Программист определяет две функции :
map (k, v) → <k’, v’>*
reduce (k’, v’) → <k’, v’>*
– Все значения с одинаковым ключом
отправляются на один и тот же reducer
• Всем остальным управляет сам фреймворк…
А что такое “всем остальным”?
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce “Runtime”
• Управление запуском
– Присваивает воркерам map или reduce таски
• Управление “data distribution”
– Перемещает код к данным
• Управление синхронизацией
– Собирает, сортирует и объединяет
промежуточные данные
• Управление ошибками и отказами
– Определяет отказ воркера и перезапускает таск
• Все работает поверх распределенной FS
(попозже об этом)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce
• Программист определяет две функции:
map (k, v) → <k’, v’>*
reduce (k’, v’) → <k’, v’>*
– Все значения с одинаковым ключом отправляются на один и
тот же reducer
• Всем остальным управляет сам фреймворк…
• Не совсем…обычно, программист также определяет:
partition (k’, number of partitions) → partition for k’
– Часто просто хеш от key, напр., hash(k’) mod n
– Разделяет множество ключей для параллельных операций
reduce
combine (k’, v’) → <k’, v’>*
– Мини-reducers которые выполняются в после завершения
фазы map
– Используется в качестве оптимизации для снижения сетевого
трафика на reduce
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
combinecombine combine combine
ba 1 2 c 9 a c5 2 b c7 8
partition partition partition partition
mapmap map map
k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6
ba 1 2 c c3 6 a c5 2 b c7 8
Shuffle and Sort: aggregate values by keys
reduce reduce reduce
a 1 5 b 2 7 c 2 9 8
r1 s1 r2 s2 r3 s3
c 2 3 6 8
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Еще пара деталей…
• Граница между фазами map и reduce
– Но можно начать копировать промежуточные
данные заранее
• Ключи приходят на каждый reducer в
отсортированном виде
– Но нет общей сортировки между редьюсерами
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
“Hello World”: Word Count
Map(String docid, String text):
for each word w in text:
Emit(w, 1);
Reduce(String term, Iterator<Int> values):
int sum = 0;
for each v in values:
sum += v;
Emit(term, value);
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
MapReduce можно понимать как…
• Программная модель
• Среда (фреймворк) выполнения (aka
“runtime”)
• Спецификация реализации
Использование обычно понятно из контекста!
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
split 0
split 1
split 2
split 3
split 4
worker
worker
worker
worker
worker
Master
User
Program
output
file 0
output
file 1
(1) submit
(2) schedule map (2) schedule reduce
(3) read
(4) local write
(5) remote read
(6) write
Input
files
Map
phase
Intermediate files
(on local disk)
Reduce
phase
Output
files
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Как же воркеры получают данные?
Compute Nodes
NAS
SAN
Какая тут проблема?
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Distributed File System
• Не надо копировать данные к воркерам… надо
отправлять воркеры к данным!
– Сохраняем данные на локальных дисках нод
кластера
– Запускаем воркеры на нодах, где данные локальны
• Зачем?
– Недостаточно RAM чтобы уместить все данные в
памяти
– Доступ к диску медленный, но скорость чтения с
диска приемлемая
• Ответ: распределенная файловая система
– GFS (Google File System) для Google’s MapReduce
– HDFS (Hadoop Distributed File System) для Hadoop
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
GFS: Предположения
• Обычное «железо» вместо «экзотики»
– Масштабируем “горизонтально”, а не “вертикально”
• Высокая частота отказа компонентов
– Недорогие компоненты обычного железа постоянно фейлятся
• “Умеренное” кол-во огромных файлов
– Мульти-гигабайтные файлы – обычная ситуация
• Файлы являются write-once, в основном дописываются
или перезаписываются полностью
– Возможно, многопоточно
• Последовательное чтение большого объема данных
вместо произвольного доступа
– Высокая пропускная способность (throughput) вместо
небольшой задержки (latency)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
GFS: Концепция дизайна
• Файлы хранятся в виде чанков (блоков)
– Фиксированный размер (64MB)
• Надежность через репликацию
– Каждый чанк реплицируется на 3 сервера
• Один мастер-процесс координирует доступ, хранит мета-
информацию
– Простое централизованное управление
• Данные не кешируются
– Небольшая польза для больших наборов данных, потоковое
чтение
• Простое API
– Push some of the issues onto the client (e.g., data layout)
HDFS = GFS клон (те же основные идеи)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
От GFS к HDFS
• Различия терминологии:
– GFS master = Hadoop namenode
– GFS chunkservers = Hadoop datanodes
• Отличия:
– Разная consistency model для file appends
– Реализация
– Производительность
В большинстве случаев будем использовать
терминологию Hadoop
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
(file name, block id)
(block id, block location)
instructions to datanode
datanode state
(block id, byte range)
block data
HDFS namenode
HDFS datanode
Linux file system
…
HDFS datanode
Linux file system
…
File namespace
/foo/bar
block 3df2
Application
HDFS Client
HDFS Architecture
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Обязанности Namenode
• Управление пространством имен файловой
системы:
– Хранить структуру файлов/директорий, метаданные,
маппинг file-to-bloc, права доступа и т.д.
• Координирование файловых операций:
– Направлять клиентов на датаноды для чтения и
записи
– Данные не проходят через namenode
• Поддерживать общее состояние системы:
– Периодические обращения к датанодам
– Дорепликация блоков и перебалансировка
– Сборка мусора
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Теперь соберем все вместе…
datanode daemon
Linux file system
…
tasktracker
slave node
datanode daemon
Linux file system
…
tasktracker
slave node
datanode daemon
Linux file system
…
tasktracker
slave node
namenode
namenode daemon
job submission node
jobtracker
(Не совсем… Позже поговорим про YARN)
ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
Вопросы?

Contenu connexe

Tendances

An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL databaseAn Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL databaseAli MasudianPour
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
Redis Introduction
Redis IntroductionRedis Introduction
Redis IntroductionAlex Su
 
Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)Takrim Ul Islam Laskar
 
Learn Hadoop Administration
Learn Hadoop AdministrationLearn Hadoop Administration
Learn Hadoop AdministrationEdureka!
 
Introduction to Hadoop Technology
Introduction to Hadoop TechnologyIntroduction to Hadoop Technology
Introduction to Hadoop TechnologyManish Borkar
 
Hadoop Architecture and HDFS
Hadoop Architecture and HDFSHadoop Architecture and HDFS
Hadoop Architecture and HDFSEdureka!
 
Hive User Meeting August 2009 Facebook
Hive User Meeting August 2009 FacebookHive User Meeting August 2009 Facebook
Hive User Meeting August 2009 Facebookragho
 
Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Kevin Weil
 
Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...
Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...
Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...Kolja Manuel Rödel
 
Big Data & Hadoop Tutorial
Big Data & Hadoop TutorialBig Data & Hadoop Tutorial
Big Data & Hadoop TutorialEdureka!
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Designing modern dw and data lake
Designing modern dw and data lakeDesigning modern dw and data lake
Designing modern dw and data lakepunedevscom
 
Apache hadoop technology : Beginners
Apache hadoop technology : BeginnersApache hadoop technology : Beginners
Apache hadoop technology : BeginnersShweta Patnaik
 
Copy of MongoDB .pptx
Copy of MongoDB .pptxCopy of MongoDB .pptx
Copy of MongoDB .pptxnehabsairam
 

Tendances (20)

Hadoop 1.x vs 2
Hadoop 1.x vs 2Hadoop 1.x vs 2
Hadoop 1.x vs 2
 
An Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL databaseAn Introduction to REDIS NoSQL database
An Introduction to REDIS NoSQL database
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Hadoop technology
Hadoop technologyHadoop technology
Hadoop technology
 
Redis Introduction
Redis IntroductionRedis Introduction
Redis Introduction
 
Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)Introduction to Apache Hive(Big Data, Final Seminar)
Introduction to Apache Hive(Big Data, Final Seminar)
 
Learn Hadoop Administration
Learn Hadoop AdministrationLearn Hadoop Administration
Learn Hadoop Administration
 
Introduction to Hadoop Technology
Introduction to Hadoop TechnologyIntroduction to Hadoop Technology
Introduction to Hadoop Technology
 
Hadoop Architecture and HDFS
Hadoop Architecture and HDFSHadoop Architecture and HDFS
Hadoop Architecture and HDFS
 
Hadoop hdfs
Hadoop hdfsHadoop hdfs
Hadoop hdfs
 
Hive User Meeting August 2009 Facebook
Hive User Meeting August 2009 FacebookHive User Meeting August 2009 Facebook
Hive User Meeting August 2009 Facebook
 
Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)Hadoop, Pig, and Twitter (NoSQL East 2009)
Hadoop, Pig, and Twitter (NoSQL East 2009)
 
Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...
Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...
Hadoop Data Lake vs classical Data Warehouse: How to utilize best of both wor...
 
Big Data & Hadoop Tutorial
Big Data & Hadoop TutorialBig Data & Hadoop Tutorial
Big Data & Hadoop Tutorial
 
Hadoop and Big Data
Hadoop and Big DataHadoop and Big Data
Hadoop and Big Data
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Designing modern dw and data lake
Designing modern dw and data lakeDesigning modern dw and data lake
Designing modern dw and data lake
 
Apache hadoop technology : Beginners
Apache hadoop technology : BeginnersApache hadoop technology : Beginners
Apache hadoop technology : Beginners
 
Copy of MongoDB .pptx
Copy of MongoDB .pptxCopy of MongoDB .pptx
Copy of MongoDB .pptx
 

En vedette

Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache MahoutTechnopark
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveTechnopark
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeperTechnopark
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Technopark
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Technopark
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Technopark
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARNTechnopark
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuTechnopark
 
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelTechnopark
 

En vedette (10)

Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 

Similaire à Лекция 1. Введение в Big Data и MapReduce

Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...it-people
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данныхОмские ИТ-субботники
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСYury Petrov
 
Слоны в облаках
Слоны в облакахСлоны в облаках
Слоны в облакахPavel Mezentsev
 
Hadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. BusinessHadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. BusinessRoman Zykov
 
Инфраструктура под аналитику и большие данные
Инфраструктура под аналитику  и большие данныеИнфраструктура под аналитику  и большие данные
Инфраструктура под аналитику и большие данныеCisco Russia
 
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПб
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПбСреды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПб
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПбAndrasz Husti
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache HadoopDotNetConf
 
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах EmbarcaderoПоддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
 
Ms SharePoint workspace for Project Management
Ms SharePoint workspace for Project ManagementMs SharePoint workspace for Project Management
Ms SharePoint workspace for Project ManagementVladimir Ivanov
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub.NET User Group Dnipro
 
зао «эвентос»
зао «эвентос»зао «эвентос»
зао «эвентос»ontosminerapi
 
Hadoop on OpenStack
Hadoop on OpenStackHadoop on OpenStack
Hadoop on OpenStackYandex
 
OSPconf. Big Data Forum 2015
OSPconf. Big Data Forum 2015OSPconf. Big Data Forum 2015
OSPconf. Big Data Forum 2015Ilya Gershanov
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...Alexey Zinoviev
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...HappyDev
 

Similaire à Лекция 1. Введение в Big Data и MapReduce (20)

Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Big Data и ArcGIS
Big Data и ArcGISBig Data и ArcGIS
Big Data и ArcGIS
 
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
DUMP-2013 Наука и жизнь - Использование Hadoop в машинном обучении - Созыкин ...
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиСИнфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
Инфраструктура Big data - от источников до быстрых витрин - версия для МИСиС
 
Слоны в облаках
Слоны в облакахСлоны в облаках
Слоны в облаках
 
Hadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. BusinessHadoop in Wikimart. Part 1. Business
Hadoop in Wikimart. Part 1. Business
 
Инфраструктура под аналитику и большие данные
Инфраструктура под аналитику  и большие данныеИнфраструктура под аналитику  и большие данные
Инфраструктура под аналитику и большие данные
 
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПб
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПбСреды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПб
Среды и инструменты для управления проектами. IKRA. Digital-продюсер'14/1, СПб
 
Data journalist
Data journalistData journalist
Data journalist
 
Платформа Apache Hadoop
Платформа Apache HadoopПлатформа Apache Hadoop
Платформа Apache Hadoop
 
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах EmbarcaderoПоддержка NoSQL и платформ MongoDB, Hive и Teradata  в продуктах Embarcadero
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах Embarcadero
 
Ms SharePoint workspace for Project Management
Ms SharePoint workspace for Project ManagementMs SharePoint workspace for Project Management
Ms SharePoint workspace for Project Management
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
зао «эвентос»
зао «эвентос»зао «эвентос»
зао «эвентос»
 
Hadoop on OpenStack
Hadoop on OpenStackHadoop on OpenStack
Hadoop on OpenStack
 
OSPconf. Big Data Forum 2015
OSPconf. Big Data Forum 2015OSPconf. Big Data Forum 2015
OSPconf. Big Data Forum 2015
 
HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...HappyDev'15 Keynote: Когда все данные станут большими...
HappyDev'15 Keynote: Когда все данные станут большими...
 
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
2015-12-05 Алексей Зиновьев - Когда все данные станут большими...
 

Plus de Technopark

СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...Technopark
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"Technopark
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...Technopark
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...Technopark
 
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"Technopark
 
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"Technopark
 
СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"Technopark
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8Technopark
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7Technopark
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6Technopark
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5Technopark
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3Technopark
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1Technopark
 
Java осень 2014 занятие 2
Java осень 2014 занятие 2Java осень 2014 занятие 2
Java осень 2014 занятие 2Technopark
 

Plus de Technopark (18)

СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
 
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
 
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
 
СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7
 
Java осень 2014 занятие 6
Java осень 2014 занятие 6Java осень 2014 занятие 6
Java осень 2014 занятие 6
 
Java осень 2014 занятие 5
Java осень 2014 занятие 5Java осень 2014 занятие 5
Java осень 2014 занятие 5
 
Java осень 2014 занятие 3
Java осень 2014 занятие 3Java осень 2014 занятие 3
Java осень 2014 занятие 3
 
Java осень 2014 занятие 1
Java осень 2014 занятие 1Java осень 2014 занятие 1
Java осень 2014 занятие 1
 
Java осень 2014 занятие 2
Java осень 2014 занятие 2Java осень 2014 занятие 2
Java осень 2014 занятие 2
 

Лекция 1. Введение в Big Data и MapReduce

  • 1. Методы распределенной обработки больших объемов данных в Hadoop Москва 2014 Лекция 1: Введение в BigData и MapReduce
  • 2. АЛЕКСЕЙ РОМАНЕНКО Руководитель команды разработки поискового робота в проекте Поиск@Mail.Ru. Участвовал в проектировании и реализации архитектуры системы хранения и обработки данных на платформе Hadoop в проекте Поиск@Mail.Ru. Выпускник факультета Радиоэлектроники МАИ в 2001 г, кафедра Вычислительные системы и сети. v ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 3. МИХАИЛ ФИРУЛИК Руководитель отдела анализа данных, департамент рекламных технологий, компании Mail.Ru Group. Ранее занимался медийными рекламными проектами в компании Яндекс, в том числе «Крипта» и «Поведенческий ретаргетинг», а так же развитием автоматических стратегий управления рекламными кампаниями в «Директ». До этого долгое время работал ведущим разработчиком системы обработки данных проекта исследования телевизионной аудитории «TV-Index» в компании TNS. Выпускник Ленинградского Высшего Военного Училища Связи им. Ленсовета (ныне Академии Связи), кафедра Математическое Обеспечение Автоматизированных Систем Управления, 1995 г v ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 4. НИКОЛАЙ АНОХИН Программист-исследователь в отделе анализа данных Mail.ru. Работаю над применением алгоритмов машинного обучения к задачам оптимизации рекламного трафика. До Mail.ru занимался Data Mining в компаниях Technicolor и AdMoment. Окончил МФТИ по специальности «Прикладная Физика и Математика» в 2010 году и Университет Лиона по специальности «Data Mining & Knowledge Management» в 2012. v ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 5. Чему посвящен данный курс? • Вычисления на больших объемах данных (“Big Data”) • Основной фокус на приложениях и дизайне алгоритмов • MapReduce… и другие технологии ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 6. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Расписание занятий Дата Время Лекция 13 сентября, суббота 15:00 — 18:00 Вводная лекция про BigData, введение про MapReduce 19 сентября, пятница 18:00 — 21:00 Hadoop, основы 26 сентября, пятница 18:00 — 21:00 Распределенная файловая система HDFS 3 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, введение 10 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, продолжение I 17 октября, пятница 18:00 — 21:00 MapReduce в Hadoop, продолжение II 24 октября, пятница 18:00 — 21:00 Введение в Hive и Pig 31 октября, пятница 18:00 — 21:00 NoSQL базы данных: BigTable, Hbase и Cassandra
  • 7. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Расписание занятий, продолжение Дата Время Лекция 7 ноября, пятница 18:00 — 21:00 Обработка текстов на естественных языках в Hadoop 14 ноября, пятница 18:00 — 21:00 Machine learning в Hadoop: Mahout 21 ноября, пятница 18:00 — 21:00 Обработка данных realtime: Storm, Spark, Impal 28 ноября, пятница 18:00 — 21:00 Вычислительная модель Pregel 5 декабря, пятница 18:00 — 21:00 Hadoop 2.0 12 декабря, пятница 18:00 — 21:00 Hadoop: примеры использования в реальных проектах 19 декабря, пятница 18:00 — 21:00 Итоговое занятие 16 января, пятница 18:00 — 21:00 Пересдача
  • 8. Big Data ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 9. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Data Explosion
  • 10. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE >10 PB данных, 75B DB запросов в день (6/2012) Обрабатывает 20 PB в день (2008) Скачивает 20B веб-страниц в день (2012) >100 PB польз. данных + 500 TB/день (8/2012) S3: 449B объектов, макс 290k rps (7/2011) 1T объектов (6/2012)
  • 11. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Wayback Machine: 240B веб-страниц в архиве, 5 PB (1/2013) LHC: ~15 PB в год LSST: 6-10 PB в год (~2015) 150 PB на 50k+ серверов работает 15k apps (6/2011)
  • 12. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Много данных – это сколько? 640K должно хватить каждому.
  • 13. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Необходимые знания • Программирование на Java и/или Python – Этот курс не учит программировать – Фокус на “thinking at scale” и разработка/дизайн алгоритмов – Самостоятельная установка Hadoop (рекомендуется) • Уметь отлаживать свой код • Опыт работы в Linux (желательно)
  • 14. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Необходимые знания • Основные знания по: – Теория вероятностей и статистики – Дискретная математика – Архитектура компьютера • Не обязателен опыт в: – MapReduce – Параллельном и распределенном программировании • Любознательность
  • 15. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Как же стать гуру Hadoop? • Посещать лекции, делать ДЗ • Читать книги – Tom White, “Hadoop: The Definitive Guide” • Есть издание на русском языке – Jimmy Lin and Chris Dyer, “Data-Intensive Text Processing with MapReduce” • RTFM • RTFC(!)
  • 16. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Этот курс не для вас, если… • Если вам не очень то интересен данный раздел • Если у вас нет время, чтобы в этом разобраться • Если вы чувствуете себя некомфортно с непредсказуемостью, которая всегда есть в bleeding-edge software Иначе, это должно быть интересно!
  • 17. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Оценка результатов • Финальная оценка состоит из: – Домашних заданий – Финального проекта • Вряд ли это подойдет в качестве отговорок: – “Я слишком занят!” – “Это требует слишком много времени, чем у меня есть!” – “Это труднее, чем я думал!” – “Я отформатировал диск с домашней работой!” – Ну и т.д.
  • 18. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Использование Hadoop • Hadoop на вашем компьютере • Hadoop в виртуальной машине на вашем компьютере • Hadoop в нашей лаборатории
  • 19. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE “Hadoop Дзен” • Это передовая технология (т.е. незрелая!) – Долгий путь с 2007, но до сих пор мы в начале пути… – Баги, недокументированные “фичи”, неожиданное поведение, потеря данных(!) • Нельзя разочаровываться – Эти WTF! моменты • Быть терпеливым – Мы неизбежно столкнемся со странными “ситуациями” на протяжении курса • Быть гибким – Мы должны быть креативными в поиске workarounds • Быть конструктивным – Не паниковать!
  • 20. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE “Hadoop Дзен”
  • 21. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Интерлюдия: Облачные вычисления
  • 22. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE “Облака” – это верх технологий? • До облаков было… – Грид-вычисления • https://ru.wikipedia.org/wiki/Грид – Суперкомпьютеры Connection machine • https://ru.wikipedia.org/wiki/Connection_Machine – Векторные суперкомпьютеры – … • «Облачные вычисления» означает много различных вещей: – Big data – Ребрендинг Web 2.0 – Utility computing – Everything as a service
  • 23. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Ребрендинг Web 2.0 • Интерактивные интернет Rich-приложения – Облако - это сервера, на которых они работают – AJAX есть де-факто стандарт (хорошо это или плохо…) – Примеры: Facebook, YouTube, Gmail, Mail.Ru… • “Сеть – это большой компьютер”: дайте два! – Пользовательские данные хранятся “в облаках” – Расцвет эпохи нетбуков, смартфонов, планшетов и т.д.. – Браузер – это ОС
  • 24. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Utility computing • Что? – Вычислительные ресурсы как сервис (“сколько использовал, столько и оплати”) – Возможность динамического предоставления виртуальных машин • Зачем? – Цена: бюджет и оперативные расходы – Масштабируемость: “бесконечное” кол-во ресурсов – Эластичность: расширение on demand • Это имеет смысл? – Преимущества для пользователей облаков – Бизнес для облачных провайдеров
  • 25. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Технология: Виртуализация Hardware Operating System App App App Traditional Stack Hardware OS App App App Hypervisor OS OS Virtualized Stack
  • 26. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Everything as a Service • Utility computing = Infrastructure as a Service (IaaS) – Зачем покупать сервера когда их можно арендовать? – Пример: Amazon’s EC2, Rackspace • Platform as a Service (PaaS) – Дай мне удобное API и позаботься об эксплуатации, апргрейде, расширении, … – Пример: Google App Engine • Software as a Service (SaaS) – Just run it for me! – Example: Gmail, Salesforce
  • 27. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Зачем все это нужно? • Готовые для решения Big Data задачи – Социальные сети, user-generated контент = Big Data – Пример: предложение друзей в Facebook, размещение рекламы Google – Business intelligence: собрать все в data warehouse и запустить аналитику для понимания выводов • Utility computing предоставляет: – Возможность предоставления Hadoop-кластеров по запросу в облаке – Меньший порог входа для решения Big Data проблем – Продуктовость и демократизация возможностей работы с Big Data
  • 28. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Работаем с Big Data
  • 29. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Divide and Conquer “Work” w1 w2 w3 r1 r2 r3 “Result” worker worker worker Partition Combine
  • 30. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Вопросы параллелизма • Как назначать части work по воркерам? • А что есть у нас больше частей work чем воркеров? • А что если воркерам надо обмениваться промежуточными результатами? • Как мы объединяем промежуточные результаты? • Как мы узнаем, что все воркеры отработали? • А что если воркер умрет? Какая общая проблема объединяет эти вопросы?
  • 31. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Общая проблема • Проблемы параллелизма возникают из-за: – Взаимодействия между воркерами (напр., обмен состояниями) – Доступ к общим ресурсам (напр., данные) • Т.о. нам нужен механизм синхронизации
  • 32. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 33. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Управление множеством воркеров • Трудно потому что: – Мы не знаем порядок, в котором воркеры запускаются – Мы не знаем, когда воркеры прерывают друг друга – Мы не знаем, когда воркерам надо обмениваться промежуточным результатом – Мы не знаем порядок, в котором воркеры имеют доступ к общим данным • Поэтому, нам нужны: – Семафоры (lock, unlock) – Conditional variables (wait, notify, broadcast) – Barriers • Все равно много проблем: – Deadlock, livelock, race conditions... – Dining philosophers, sleeping barbers, cigarette smokers... • Мораль сей басни: будь осторожен!
  • 34. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Текущие средства • Программные модели – Shared memory (pthreads) – Message passing (MPI) • Design Patterns – Master-slaves – Producer-consumer flows – Shared work queues Message Passing P1 P2 P3 P4 P5 Shared Memory P1 P2 P3 P4 P5 Memory master slaves producer consumer producer consumer work queue
  • 35. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Момент истины • Concurrency сложная вещь • Concurrency еще более сложная вещь… – в рамках работы в нескольких датацентрах – при наличии отказов – с точки зрения множества интерактивных сервисов • И мы еще промолчим про отладку! • Реальность: – Множество одноразовых и узкозаточенных решений – Написание своих специальных библиотек, затем их использование – Бремя программиста все это поддерживать
  • 36. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 37. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE
  • 38. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Датацентр - это большой компьютер!
  • 39. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Так в чем же основной вопрос? • Это все о правильном уровне абстракции – Переместится поверх архитектуры фон Неймана – Нам нужны программные модели получше! • Скрыть детали системного уровня от разработчиков – Нет больше race conditions, lock contention и т.д.. • Отделение что от сейчас – Разработчик определяет те вычисления, которые надо произвести – Сам фреймоворк (в “runtime”) обрабатывает процесс запуска и выполнения вычислений Датацентр – это компьютер!
  • 40. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE “Big Ideas” • Масштабирование “горизонтальное”, не “вертикальное” – Ограничения SMP и больших shared-memory машин • Перенос процесса вычислений к данным – Кластер имеет ограниченную пропускную способность • Последовательная обработка данных, избегать произвольного доступа – Seeks дороги, пропускная способность диска вполне достаточная • Полная масштабируемость – От мифического человеко-час к понятному машино- час
  • 41. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE MapReduce
  • 42. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Типичные задачи Big Data • Пройтись по большому числу записей • Извлечь что-то интересное из каждой из записи • Смешать и отсортировать промежуточные результаты • Объединить промежуточные результаты • Сформировать выходной результат Ключевая идея: предоставить функциональные абстракции для этих двух операций
  • 43. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Примеры задач для MapReduce • В Google: – Построение индекса в Google Search – Кластеризация статей для Google News – Статистический машинный перевод • В Поиск@Mail.Ru: – Парсинг скаченных web-страниц – Поиск дубликатов документов – Расчет ранков веб-страниц • В Facebook: – Задачи Data Mining – Оптимизация показа рекламы – Определение спама
  • 44. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE g g g g g f f f f fMap Fold Корни из функционального программирования
  • 45. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE MapReduce • Программист определяет две функции: map (k1, v1) → [<k2, v2>] reduce (k2, [v2]) → [<k3, v3>] – Все значения с одинаковым ключом отправляются на один и тот же reducer • Всем остальным управляет сам фреймворк…
  • 46. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE mapmap map map Shuffle and Sort: aggregate values by keys reduce reduce reduce k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6 ba 1 2 c c3 6 a c5 2 b c7 8 a 1 5 b 2 7 c 2 3 6 8 r1 s1 r2 s2 r3 s3
  • 47. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE MapReduce • Программист определяет две функции : map (k, v) → <k’, v’>* reduce (k’, v’) → <k’, v’>* – Все значения с одинаковым ключом отправляются на один и тот же reducer • Всем остальным управляет сам фреймворк… А что такое “всем остальным”?
  • 48. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE MapReduce “Runtime” • Управление запуском – Присваивает воркерам map или reduce таски • Управление “data distribution” – Перемещает код к данным • Управление синхронизацией – Собирает, сортирует и объединяет промежуточные данные • Управление ошибками и отказами – Определяет отказ воркера и перезапускает таск • Все работает поверх распределенной FS (попозже об этом)
  • 49. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE MapReduce • Программист определяет две функции: map (k, v) → <k’, v’>* reduce (k’, v’) → <k’, v’>* – Все значения с одинаковым ключом отправляются на один и тот же reducer • Всем остальным управляет сам фреймворк… • Не совсем…обычно, программист также определяет: partition (k’, number of partitions) → partition for k’ – Часто просто хеш от key, напр., hash(k’) mod n – Разделяет множество ключей для параллельных операций reduce combine (k’, v’) → <k’, v’>* – Мини-reducers которые выполняются в после завершения фазы map – Используется в качестве оптимизации для снижения сетевого трафика на reduce
  • 50. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE combinecombine combine combine ba 1 2 c 9 a c5 2 b c7 8 partition partition partition partition mapmap map map k1 k2 k3 k4 k5 k6v1 v2 v3 v4 v5 v6 ba 1 2 c c3 6 a c5 2 b c7 8 Shuffle and Sort: aggregate values by keys reduce reduce reduce a 1 5 b 2 7 c 2 9 8 r1 s1 r2 s2 r3 s3 c 2 3 6 8
  • 51. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Еще пара деталей… • Граница между фазами map и reduce – Но можно начать копировать промежуточные данные заранее • Ключи приходят на каждый reducer в отсортированном виде – Но нет общей сортировки между редьюсерами
  • 52. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE “Hello World”: Word Count Map(String docid, String text): for each word w in text: Emit(w, 1); Reduce(String term, Iterator<Int> values): int sum = 0; for each v in values: sum += v; Emit(term, value);
  • 53. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE MapReduce можно понимать как… • Программная модель • Среда (фреймворк) выполнения (aka “runtime”) • Спецификация реализации Использование обычно понятно из контекста!
  • 54. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE split 0 split 1 split 2 split 3 split 4 worker worker worker worker worker Master User Program output file 0 output file 1 (1) submit (2) schedule map (2) schedule reduce (3) read (4) local write (5) remote read (6) write Input files Map phase Intermediate files (on local disk) Reduce phase Output files
  • 55. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Как же воркеры получают данные? Compute Nodes NAS SAN Какая тут проблема?
  • 56. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Distributed File System • Не надо копировать данные к воркерам… надо отправлять воркеры к данным! – Сохраняем данные на локальных дисках нод кластера – Запускаем воркеры на нодах, где данные локальны • Зачем? – Недостаточно RAM чтобы уместить все данные в памяти – Доступ к диску медленный, но скорость чтения с диска приемлемая • Ответ: распределенная файловая система – GFS (Google File System) для Google’s MapReduce – HDFS (Hadoop Distributed File System) для Hadoop
  • 57. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE GFS: Предположения • Обычное «железо» вместо «экзотики» – Масштабируем “горизонтально”, а не “вертикально” • Высокая частота отказа компонентов – Недорогие компоненты обычного железа постоянно фейлятся • “Умеренное” кол-во огромных файлов – Мульти-гигабайтные файлы – обычная ситуация • Файлы являются write-once, в основном дописываются или перезаписываются полностью – Возможно, многопоточно • Последовательное чтение большого объема данных вместо произвольного доступа – Высокая пропускная способность (throughput) вместо небольшой задержки (latency)
  • 58. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE GFS: Концепция дизайна • Файлы хранятся в виде чанков (блоков) – Фиксированный размер (64MB) • Надежность через репликацию – Каждый чанк реплицируется на 3 сервера • Один мастер-процесс координирует доступ, хранит мета- информацию – Простое централизованное управление • Данные не кешируются – Небольшая польза для больших наборов данных, потоковое чтение • Простое API – Push some of the issues onto the client (e.g., data layout) HDFS = GFS клон (те же основные идеи)
  • 59. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE От GFS к HDFS • Различия терминологии: – GFS master = Hadoop namenode – GFS chunkservers = Hadoop datanodes • Отличия: – Разная consistency model для file appends – Реализация – Производительность В большинстве случаев будем использовать терминологию Hadoop
  • 60. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE (file name, block id) (block id, block location) instructions to datanode datanode state (block id, byte range) block data HDFS namenode HDFS datanode Linux file system … HDFS datanode Linux file system … File namespace /foo/bar block 3df2 Application HDFS Client HDFS Architecture
  • 61. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Обязанности Namenode • Управление пространством имен файловой системы: – Хранить структуру файлов/директорий, метаданные, маппинг file-to-bloc, права доступа и т.д. • Координирование файловых операций: – Направлять клиентов на датаноды для чтения и записи – Данные не проходят через namenode • Поддерживать общее состояние системы: – Периодические обращения к датанодам – Дорепликация блоков и перебалансировка – Сборка мусора
  • 62. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Теперь соберем все вместе… datanode daemon Linux file system … tasktracker slave node datanode daemon Linux file system … tasktracker slave node datanode daemon Linux file system … tasktracker slave node namenode namenode daemon job submission node jobtracker (Не совсем… Позже поговорим про YARN)
  • 63. ЛЕКЦИЯ 1: ВВЕДЕНИЕ В BIGDATA И MAPREDUCE Вопросы?