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

Preview:

Citation preview

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

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

ABOGDANOV@AT-CONSULTING.RU

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

ABOGDANOV@AT-CONSULTING.RU

Recommended