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

53
LAMBDA-АРХИТЕКТУРА Новая парадигма для Big Data

Upload: dataart

Post on 16-Jul-2015

113 views

Category:

Technology


11 download

TRANSCRIPT

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

LAMBDA-АРХИТЕКТУРАНовая парадигма для Big Data

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

CREDITS

2

“Big Data” - Nathan Marz и James Warren

Принципы построения и лучшие практики

масштабируемых информационных систем

реального времени.

Nathan Marz – работал в Backtype, Twitter.

Автор фреймворков Storm, Cascalog, ElephantDb.

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

3

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

ХАРАКТЕРИСТИКИ BIG DATA СИСТЕМЫ

4

Характеристики Big Data системы

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

VOLUME

5

Всего за два дня мы генерируем столько же информации,

сколько было создано с начала человеческой истории

вплоть до 2003 года.

Ожидается, что к 2020 году объем существующей цифровой

информации вырастет с текущих 3,2 зеттабайт до 40

зеттабайт. (1 ZB = 1000000000000 GB)

Объем хранимых данных у большинства компаний в США –

100+ TB данных.

С появлением Internet of Things объем хранимых данных

будет увеличиваться еще быстрее.

Volume / Количество информации

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

INTERNET OF THINGS

6

У каждого девайса есть сенсоры, генерирующие

информацию, которую также надо хранить.

Интернет вещей - единая сеть, соединяющая

окружающие нас объекты реального мира и

виртуальные объекты.

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

VELOCITY

7

Velocity

Источники high-velocity данных

Лог-файлы: веб-сайты, базы данных, firewall.

Сетевое оборудование: роутеры, свитчи.

Пользовательские девайсы: смартфоны.

Социальная медиа информация: посты в социальных сетях

Онлайн игры

SaaS: яркий пример – LinkedIn.

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

VARIETY

8

Для Big Data типична ситуация, когда входные данные даже

близко не напоминают структурированные.

Документы в различных форматах

Социальные сети

E-mails

APIs

Geodata

Логи

Variety

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

ИНФОРМАЦИОННАЯ СИСТЕМА?Требования к системе, типы информации

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

ТРЕБОВАНИЯ К BIG DATA СИСТЕМА

10

Гибкость и отказоустойчивость

Низкая задержка при чтении и обновлении

Масштабируемость

Широкий спектр применения

Расширяемость

Возможность AdHoc-запросов

Минимальные расходы на обслуживание

Возможность отката к нужному состоянию

Требования к Big Data системе

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

11

Не вся информация одинаково важна

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

12

Люди генерируют события

Транзакции кредитной карты

Перемещение по карте

Добавление человека в список друзей

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

13

Хранение текущего состояния

Subscriber Balance

79092124038 50

79525468451 50

79033456789 114

Subscriber Balance

79092124038 150

79525468451 50

79033456789 114

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

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

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

15

query = function ( all data )

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

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

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

17

Все данные

Запрос

Предварительно рассчитанные данные

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

LAMBDA АРХИТЕКТУРА

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

19

Batch Layer

Speed Layer

Serving Layer

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

20

Incoming Data

Hadoop

ElephantDB

Storm

Cassandra

Q

U

E

R

Y

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

ИСТОЧНИКИ ДАННЫХ

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

ИСТОЧНИКИ ДАННЫХ

22

Apache Kafka

RabbitMQ

ZeroMQ

HDFS

RDBMS

etc.

Источники данных

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

BATCH LAYER

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

BATCH LAYER. ОБЗОР.

24

Incoming Data

Hadoop

ElephantDB

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

25

BATCH LAYER. ПЛЮСЫ И МИНУСЫ.

Вычисления производятся на всем объеме данных

Вычисления очень хорошо масштабируются

Большое время ожидания

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

26

Слой пакетной обработки хранит данные в режиме

“append only”

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

Batch Layer. Компоненты.

27

Apache Hadoop MapReduce

Apache Spark

Hive / Pig

SparkSQL – Shark successor

Cascading / Cascalog

Pangool

BATCH LAYER

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

28

“Сырые” данные

Витрина 1

Витрина 2

Витрина 3

Batch Layer. Создание витрин данных.

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

29

Batch Layer. MapReduce.

Берем большой объем данных и разделяем его на маленькие части

Output

MAP

REDUCE

DoWork() DoWork() DoWork()…

Применяем одну и ту же операцию к каждой из частей

Соединяем выходные данные каждой из частей

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

30

Необходимо отлавливать ошибочные данные как можно

раньше.

Проверка корректности данных на этапе записи лучше проверки на этапе чтения

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

Batch Layer. Сериализация данных.

31

СЕРИАЛИЗАЦИЯ ДАННЫХ

Используйте формат со схемой данных.

CSV

Thrift

Avro

Parquet

Бонус: больше скорость, меньше занятого дискового пространства

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

32

База данных “только для чтения”

Произвольная запись не требуется.

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

33

Каждая итерация Batch Layer заново генерирует витрины

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

Batch Layer. Базы данных.

34

ElephantDB

SploutSQL

Voldemort (+ Read-Only)

HBase (bulk loading)

Druid

БАЗЫ ДАННЫХ ДЛЯ BATCH LAYER

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

35

И на этом можно было бы закончить, но…

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

36

Информация, обработанная Batch Layer

Время

СейчасДанные за несколько часов

Еще не обработана

… но это еще не все

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

Speed Layer

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

38

Incoming Data

Storm

Cassandra

Speed Layer. Обзор.

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

39

Speed Layer

Обработка потоковых данных Непрерывные вычисления Операции над транзакциями

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

40

Проблемы с полученными данными могут возникнуть лишь

в Speed Layer

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

41

Если что-то пойдет не так в Speed Layer, то Batch Layer это

автоматически исправит

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

CAP-ТЕОРЕМА

42

Выберите два свойства

A

C P

Availability / Доступностьлюбой запрос к распределённой

системе завершается корректным откликом

Consistency / Согласованностьво всех вычислительных узлах в один момент времени данные не противоречат друг другу

Partition Tolerance / Устойчивость к разделению

Расщепление распределённой системы на несколько изолированных секций не приводит к некорректности отклика

от каждой из секций

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

Speed Layer. Компоненты.

43

Apache Storm

Apache Spark Streaming

Apache S4

IBM InfoSphere Streams

Apache Samza

SqlStream Blaze

SPEED COMPONENTS

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

Speed Layer. Базы данных.

44

Hbase

Cassandra

Redis

БАЗЫ ДАННЫХ ДЛЯ SPEED LAYER

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

Serving Layer

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

46

Incoming Data

Hadoop

ElephantDB

Storm

Cassandra

Q

U

E

R

Y

Serving Layer. Обзор.

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

47

Serving Layer.

Произвольный доступ Объединение Batch и Speed витрин

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

Итого

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

49

ВОЗМОЖНАЯ РЕАЛИЗАЦИЯ ЛЯМБДА АРХИТЕКТУРЫ

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

50

Ошибки исправляются повторным пересчетом витрины с использованием “сырых” данных.

Хранилища данных оптимизированы. Неизменяемость данных делает систему

надежнее.

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

Источники информации

Факты о 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

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

Вопросы?БОГДАНОВ АЛЕКСАНДР

[email protected]

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

СПАСИБОБОГДАНОВ АЛЕКСАНДР

[email protected]