LAMBDA-АРХИТЕКТУРА
Новая парадигма для Big Data
CREDITS
2
“Big Data” - Nathan Marz и James Warren
Принципы построения и лучшие практики
масштабируемых информационных систем
реального времени.
Nathan Marz – работал в Backtype, Twitter.
Автор фреймворков Storm, Cascalog, ElephantDb.
3
ХАРАКТЕРИСТИКИ BIG DATA СИСТЕМЫ
4
Характеристики Big Data системы
VOLUME
5
 Всего за два дня мы генерируем столько же информации,
сколько было создано с начала человеческой истории
вплоть до 2003 года.
 Ожидается, что к 2020 году объем существующей цифровой
информации вырастет с текущих 3,2 зеттабайт до 40
зеттабайт. (1 ZB = 1000000000000 GB)
 Объем хранимых данных у большинства компаний в США –
100+ TB данных.
 С появлением Internet of Things объем хранимых данных
будет увеличиваться еще быстрее.
Volume / Количество информации
INTERNET OF THINGS
6
У каждого девайса есть сенсоры, генерирующие
информацию, которую также надо хранить.
Интернет вещей - единая сеть, соединяющая
окружающие нас объекты реального мира и
виртуальные объекты.
VELOCITY
7
Velocity
Источники high-velocity данных
 Лог-файлы: веб-сайты, базы данных, firewall.
 Сетевое оборудование: роутеры, свитчи.
 Пользовательские девайсы: смартфоны.
 Социальная медиа информация: посты в социальных сетях
 Онлайн игры
 SaaS: яркий пример – LinkedIn.
VARIETY
8
Для Big Data типична ситуация, когда входные данные даже
близко не напоминают структурированные.
 Документы в различных форматах
 Социальные сети
 E-mails
 APIs
 Geodata
 Логи
Variety
ИНФОРМАЦИОННАЯ
СИСТЕМА?
Требования к системе, типы информации
ТРЕБОВАНИЯ К BIG DATA СИСТЕМА
10
 Гибкость и отказоустойчивость
 Низкая задержка при чтении и обновлении
 Масштабируемость
 Широкий спектр применения
 Расширяемость
 Возможность AdHoc-запросов
 Минимальные расходы на обслуживание
 Возможность отката к нужному состоянию
Требования к Big Data системе
11
Не вся информация одинаково
важна
12
Люди генерируют события
 Транзакции кредитной карты
 Перемещение по карте
 Добавление человека в список друзей
13
Хранение текущего состояния
Subscriber Balance
79092124038 50
79525468451 50
79033456789 114
Subscriber Balance
79092124038 150
79525468451 50
79033456789 114
14
Хранение событий
Subscriber Balance Timestamp
79092124038 50 2014-12-31
79525468451 50 2014-05-21
79033456789 114 2015-11-04
Subscriber Balance Timestamp
79092124038 50 2014-12-31
79525468451 50 2014-05-21
79033456789 114 2015-11-04
79092124038 150 2015-01-01
15
query = function ( all data )
16
Количество людей с одинаковым балансом
Subscriber Balance Timestamp
79092124038 50 2014-12-31
79525468451 50 2014-05-21
79033456789 114 2015-11-04
Balance Count
50 2
114 1
150 1
17
Все данные
Запрос
Предварительно
рассчитанные данные
LAMBDA АРХИТЕКТУРА
19
Batch Layer
Speed Layer
Serving Layer
20
Incoming Data
Hadoop
ElephantDB
Storm
Cassandra
Q
U
E
R
Y
ИСТОЧНИКИ ДАННЫХ
ИСТОЧНИКИ ДАННЫХ
22
 Apache Kafka
 RabbitMQ
 ZeroMQ
 HDFS
 RDBMS
 etc.
Источники данных
BATCH LAYER
BATCH LAYER. ОБЗОР.
24
Incoming Data
Hadoop
ElephantDB
25
BATCH LAYER. ПЛЮСЫ И МИНУСЫ.
Вычисления производятся на всем объеме данных
Вычисления очень хорошо масштабируются
Большое время ожидания
26
Слой пакетной обработки
хранит данные в режиме
“append only”
Batch Layer. Компоненты.
27
 Apache Hadoop MapReduce
 Apache Spark
 Hive / Pig
 SparkSQL – Shark successor
 Cascading / Cascalog
 Pangool
BATCH LAYER
28
“Сырые” данные
Витрина 1
Витрина 2
Витрина 3
Batch Layer. Создание витрин данных.
29
Batch Layer. MapReduce.
Берем большой объем данных и разделяем его на маленькие части
…
…
Output
MAPREDUCE
DoWork() DoWork() DoWork()
…
Применяем одну и ту же операцию к каждой из частей
Соединяем выходные данные каждой из частей
30
Необходимо отлавливать
ошибочные данные как можно
раньше.
Проверка корректности данных на этапе записи лучше
проверки на этапе чтения
Batch Layer. Сериализация данных.
31
СЕРИАЛИЗАЦИЯ ДАННЫХ
Используйте формат со схемой данных.
CSV
Thrift
Avro
Parquet
 Бонус: больше скорость, меньше занятого
дискового пространства
32
База данных “только для чтения”
Произвольная запись не требуется.
33
Каждая итерация Batch Layer
заново генерирует витрины
Batch Layer. Базы данных.
34
 ElephantDB
 SploutSQL
 Voldemort (+ Read-Only)
 HBase (bulk loading)
 Druid
БАЗЫ ДАННЫХ ДЛЯ BATCH LAYER
35
И на этом можно было бы
закончить, но…
36
Информация, обработанная Batch Layer
Время
С
е
й
ч
а
с
Данные за несколько часов
Еще не
обработана
… но это еще не все
Speed Layer
38
Incoming Data
Storm
Cassandra
Speed Layer. Обзор.
39
Speed Layer
 Обработка потоковых данных
 Непрерывные вычисления
 Операции над транзакциями
40
Проблемы с полученными
данными могут возникнуть лишь
в Speed Layer
41
Если что-то пойдет не так в Speed
Layer, то Batch Layer это
автоматически исправит
CAP-ТЕОРЕМА
42
Выберите два
свойства
A
C P
Availability / Доступность
любой запрос к распределённой
системе завершается корректным
откликом
Consistency / Согласованность
во всех вычислительных узлах в один момент
времени данные не противоречат друг другу
Partition Tolerance /
Устойчивость к разделению
Расщепление распределённой системы
на несколько изолированных секций не
приводит к некорректности отклика
от каждой из секций
Speed Layer. Компоненты.
43
 Apache Storm
 Apache Spark Streaming
 Apache S4
 IBM InfoSphere Streams
 Apache Samza
 SqlStream Blaze
SPEED COMPONENTS
Speed Layer. Базы данных.
44
 Hbase
 Cassandra
 Redis
БАЗЫ ДАННЫХ ДЛЯ SPEED LAYER
Serving Layer
46
Incoming Data
Hadoop
ElephantDB
Storm
Cassandra
Q
U
E
R
Y
Serving Layer. Обзор.
47
Serving Layer.
 Произвольный доступ
 Объединение Batch и Speed витрин
Итого
49
ВОЗМОЖНАЯ РЕАЛИЗАЦИЯ ЛЯМБДА АРХИТЕКТУРЫ
50
 Ошибки исправляются повторным пересчетом
витрины с использованием “сырых” данных.
 Хранилища данных оптимизированы.
 Неизменяемость данных делает систему
надежнее.
Источники информации
Факты о Big Data - http://www.bigdata-madesimple.com/eye-opening-facts-
everyone-should-know-about-big-data/
Инфографика “How Much Is A Petabyte” - http://mozy.com/blog/misc/how-
much-is-a-petabyte/
51
Вопросы?
БОГДАНОВ АЛЕКСАНДР
ABOGDANOV@AT-CONSULTING.RU
СПАСИБО
БОГДАНОВ АЛЕКСАНДР
ABOGDANOV@AT-CONSULTING.RU

Александр Богданов «Lambda - архитектура»