Upload
vladimir-klimontovich
View
1.024
Download
1
Embed Size (px)
Citation preview
Summary
• Актуальность обработки большого объема данных
• Distributed File System, MapReduce
• Apache Hadoop
• : Pig, Apache HiveСмежные технологии
• Column Oriented Database
Объемы данных
• Facebook: 20Tb сжатых данных вдень
• - : 1Tb Нью Йоркская биржа в день
• : Большой андронный коллайдер40Tb в день
• ContextWeb (online advertising): 115Gb в день
DFS/MapReduce
• 1: ?Проблема где хранить данные
• 2: ?Проблема как обрабатывать
• 2003: Google File SystemОктябрь появление
• 2004: MapReduceДекабрь появление
Distributed FS
• FSТребования к распределенной
• Хранить файлы любого размера
• Мягкое масштабирование
• Надежность
DFS: архитектура
• Данные разбиываются на (64mb)блоки
• Чтение идет напрямую изslave nodes
• Репликация
MapReduce
• Map: input record (key, value)⇒
• Reduce: (key, {v1, ..., vn}) output record⇒
• Данная парадигма пременима к широкому спектрузадач
Пример
• (Facebook)Как посчитать статистику по браузерам
• Map: log record (Browser, 1)⇒
• Reduce: (Browser, [1, .., 1]) {Browser, sum}⇒
Apache Hadoop• 2004: Nutch - open source search engine
• 2006: Hadoop - отдельный проект
• 2006: Yahoo - research cluster
• 2008: Yahoo WebSearch Hadoop. использует Размер - 4000 кластера машин
• 2009 Hadoop выигрывает соревнование по 100Tb ( Yahoo). 4000 , 173 сортировке на кластере машин
секунды
Yahoo: web graph
• Map: page (Target URL, {sourceURL, link text})⇒
• Reduce: {Target URL, SourceURL, Link Text}
Target URL SourceURL Texthadoop.apache.org reddit.com MapReduce OpenSource
hadoop.apache.org wikipedia.org/MapReduce MapReduce OpenSource
hadoop.apache.org sun.java.com MapReduce
Last.fm
• Пользователь слушает песню
• HDFS: Информация о прослушивании записывается в{user, band, track} ( log- )строчка в файле
• Map: {userId, band, track} (user_band, 1)⇒
• Reduce (user_band, [1, ... , 1]) (user_band, sum)⇒
SQL
• SELECT f1, f2, sum(a) WHERE expr GROUP BY f1, f2
• Map: line ({f1, f2}, a) if expr⇒
• Reduce: ({f1, f2}, [a1, ..., an]) ({f1, f2}, sum)⇒
SQL: Принцип• GROUP BY: Mapкак ключ в
• WHERE: Mapвычисляется в фазе
• SUM/AVG Mapкак значение в
• SUM/AVG: окончательное значение вычисляется вReduce
• JOIN: Reduce Mapили
• HAVING: как фильтрация в окончательной фазеReduce
SQL: partitioning
• WHERE: для ключевых полей имеет смысл делатьpartitioning
• partitioning В случае анализа исторических обычно делается по дате
• WHERE, Часть условия имеющее отношение к дате вычисляется до запуска и ограничивает объем
входных данных
Apache Hive
• Apache HadoopФреймворк на базе
• SQL MapReduce jobsТранслирует запросы в
• R&D Используется как основной инструмент вFacebook
Apache Pig• Researchers Javaне привыкли писать на
• Java: 3 , 200 Аналог данного скрипта да класса строк
Области применения
• Research: , как фронтенд для людей занимающихся исследованием данных
• Data mining: построение моделей для дальнейшего Real Timeиспользования
• Reporting: построение отчетов
Достоинства
• : 2 Гладкая масштабируемость для х 2x произвоительности досточно оборудования
( )почти
• softwareНулевая стоимость
• on-demand Amazon Cloud Service Доступность как — research удобно для задач
Недостатки
• Высокая стоимость поддержки и администрирования
• SQL, В отличие от необходим штат Java-developer’квалифицированных ов
• Нестабильность
• ,Низкая скорость
• real-timeНе
Real-Time?
• Окончательный результат можно загружать вSQL/MemCache
• , SQL/MemCache Однако не будет работать если , Real-Time объем данных к которому необходим доступ остается большим
• : column oriented database (HBase)Другое решение
Column oriented databases
• SQL- В подходе хранения данных есть определенныепроблемы
• , Данные должны быть хорошо структурированыALTER TABLE - “ ” дорогая операция
• Структурированность данных в многих случаях . , , является плюсом Но когда она не нужна можно
хранить данные более эффективно
BigTable• Google 2004- Дизайн представлен компанией в омгоду
• 1: Принцип на всю таблицу есть одно индексное поле row key ( primary key)называемое аналог
• 2: Принцип данные во всех остальных полях не. индексируются Таблица может иметь сколько угодно
, — полей добавление нового поля затрагивает row.только отдельные
BigTable
• Удобнее представлять хранилище не как таблицу
• : (row key, column name) valueА как соответствие ⇒
• Так же во многих реализациях данные имеют версионность по времени
• (row key, column name, timestamp) value⇒
BigTable: пример• : Задача хранить информацию о посетителях сайта
• : CookieПростое решение
• : Cookie Недостаток размер ограничен
• BigTable: (UserUID, ) поле ⇒ значение
• Cookie UserUIDВ хранится только
• : , Возможные поля дата последнего визита история, . посещений история показа рекламных объявлений
Новое поле добавить очень легко
BigTable: дизайн
• Row keys , сортируются данные храняться на кластере
• (region server) Каждый сервер хранит определенный диапазон ключей
• master node Клиент обращается к и определяет на каком сервере лежат интересующие его данные
• region serverЧтение идет напрямую с
HBase• e Apache HadoopПостроен на платформ
• HDFSДля хранения данных используется
• Map Reduce процессы могут быть использованы для загрузки большого объма данных
• Reduce На этапе выполняется загрузка данных втаблицу
• Reduce процесс выполняется на соответствующемregion server — происходит исключительно локальная
запись данный
HBase: производительность
• 7 server cluster (16Gb RAM, 8x core CPU, 10K RPM HD)
• 3 rows, 1 5 Таблица из миллиардов от до колонок
• row — 300 Размер каждого около байт
• 300 параллельных запросов
• : 18ms — , 8ms — Средние чтение запись
HBase: недостатки
• 1% Около процента запросов работают сильно ( 300ms)больше среднего порядка
• Возможность индексировать только по одному полю(row key)
• : Нестабильность в последней самой производительной версии возможна потеря данных
Hadoop: областииспользования
• MapReduce — , там где некритична скорость : - , получения результата обработка лог файлов , построение стаитстических моделей построение
, researchиндексов
• HBase — , там где некритична небольшая потеря данных и не обязательно гарантированое время
( , ответа например хранение информации о online advertising)пользователе в