2. Summary
• Актуальность обработки большого объема данных
• Distributed File System, MapReduce
• Apache Hadoop
• : Pig,Apache HiveСмежные технологии
• Column Oriented Database
3. Объемы данных
• Facebook: 20Tb сжатых данных в
день
• - : 1TbНью Йоркская биржа в день
• :Большой андронный коллайдер
40Tb в день
• ContextWeb (online advertising): 115Gb
в день
4. DFS/MapReduce
• 1: ?Проблема где хранить данные
• 2: ?Проблема как обрабатывать
• 2003: Google File SystemОктябрь появление
• 2004: MapReduceДекабрь появление
15. Last.fm
• Пользователь слушает песню
• HDFS:Информация о прослушивании записывается в
{user, band, track} ( log- )строчка в файле
• Map: {userId, band, track} (user_band, 1)⇒
• Reduce (user_band, [1, ... , 1]) (user_band, sum)⇒
16. 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)⇒
17. SQL: Принцип
• GROUP BY: Mapкак ключ в
• WHERE: Mapвычисляется в фазе
• SUM/AVG Mapкак значение в
• SUM/AVG: окончательное значение вычисляется в
Reduce
• JOIN: Reduce Mapили
• HAVING: как фильтрация в окончательной фазе
Reduce
18. SQL: partitioning
• WHERE: для ключевых полей имеет смысл делать
partitioning
• partitioningВ случае анализа исторических обычно
делается по дате
• WHERE,Часть условия имеющее отношение к дате
вычисляется до запуска и ограничивает объем
входных данных
19. Apache Hive
• Apache HadoopФреймворк на базе
• SQL MapReduce jobsТранслирует запросы в
• R&DИспользуется как основной инструмент в
Facebook
20. Apache Pig
• Researchers Javaне привыкли писать на
• Java: 3 , 200Аналог данного скрипта да класса строк
21. Области применения
• Research: ,как фронтенд для людей занимающихся
исследованием данных
• Data mining: построение моделей для дальнейшего
Real Timeиспользования
• Reporting: построение отчетов
22. Достоинства
• : 2Гладкая масштабируемость для х
2xпроизвоительности досточно оборудования
( )почти
• softwareНулевая стоимость
• on-demand Amazon Cloud ServiceДоступность как —
researchудобно для задач
23. Недостатки
• Высокая стоимость поддержки и администрирования
• SQL,В отличие от необходим штат
Java-developer’квалифицированных ов
• Нестабильность
• ,Низкая скорость
• real-timeНе
24. Real-Time?
• Окончательный результат можно загружать в
SQL/MemCache
• , SQL/MemCacheОднако не будет работать если
, Real-Timeобъем данных к которому необходим
доступ остается большим
• : column oriented database (HBase)Другое решение
25. Column oriented databases
• SQL-В подходе хранения данных есть определенные
проблемы
• ,Данные должны быть хорошо структурированы
ALTERTABLE - “ ”дорогая операция
• Структурированность данных в многих случаях
. , ,является плюсом Но когда она не нужна можно
хранить данные более эффективно
26. BigTable
• Google 2004-Дизайн представлен компанией в ом
году
• 1:Принцип на всю таблицу есть одно индексное поле
row key ( primary key)называемое аналог
• 2:Принцип данные во всех остальных полях не
.индексируются Таблица может иметь сколько угодно
, —полей добавление нового поля затрагивает
row.только отдельные
27. BigTable
• Удобнее представлять хранилище не как таблицу
• : (row key, column name) valueА как соответствие ⇒
• Так же во многих реализациях данные имеют
версионность по времени
• (row key, column name, timestamp) value⇒
28. BigTable: пример
• :Задача хранить информацию о посетителях сайта
• : CookieПростое решение
• : CookieНедостаток размер ограничен
• BigTable: (UserUID, )поле ⇒ значение
• Cookie UserUIDВ хранится только
• : ,Возможные поля дата последнего визита история
, .посещений история показа рекламных объявлений
Новое поле добавить очень легко
29. BigTable: дизайн
• Row keys ,сортируются данные храняться на кластере
• (region server)Каждый сервер хранит определенный
диапазон ключей
• master nodeКлиент обращается к и определяет на
каком сервере лежат интересующие его данные
• region serverЧтение идет напрямую с
30. HBase
• e Apache HadoopПостроен на платформ
• HDFSДля хранения данных используется
• Map Reduce процессы могут быть использованы для
загрузки большого объма данных
• ReduceНа этапе выполняется загрузка данных в
таблицу
• Reduce процесс выполняется на соответствующем
region server — происходит исключительно локальная
запись данный
31. HBase: производительность
• 7 server cluster (16Gb RAM, 8x core CPU, 10K RPM HD)
• 3 rows, 1 5Таблица из миллиардов от до колонок
• row — 300Размер каждого около байт
• 300 параллельных запросов
• : 18ms — , 8ms —Средние чтение запись
32. HBase: недостатки
• 1%Около процента запросов работают сильно
( 300ms)больше среднего порядка
• Возможность индексировать только по одному полю
(row key)
• :Нестабильность в последней самой
производительной версии возможна потеря данных
33. Hadoop: области
использования
• MapReduce — ,там где некритична скорость
: - ,получения результата обработка лог файлов
,построение стаитстических моделей построение
, researchиндексов
• HBase — ,там где некритична небольшая потеря
данных и не обязательно гарантированое время
( ,ответа например хранение информации о
online advertising)пользователе в
34. Где не стоит использовать
Hadoop
• Точные вычисления
• Биллинг
• Трейдинг
• Банковские операции