Александр Богданов «lambda - архитектура»
TRANSCRIPT
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
MAP
REDUCE
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
Вопросы?БОГДАНОВ АЛЕКСАНДР
СПАСИБОБОГДАНОВ АЛЕКСАНДР