SlideShare a Scribd company logo
1 of 27
Fast In-memory Analytics Over
Cassandra Data
Shamim Ahmed
3rd Moscow Cassandra Meetup
2
Agenda
Fast in memory analytics over Cassandra Data ЧАСТЬ 1
 Наша цель использования Cassandra.
 Какие проблемы мы решаем.
 Причина применения In Memory data processing
 Наша Cassandra/Spark архитектура.
3
AT Consulting
О нас ЧАСТЬ 1
Предоставляем консалтинговые услуги, разработка ПО для
отраслей телекоммуникации, финансов, энергетики и
здравоохранения.
В данный момент более 11-и проектов используют NoSQL для
решения разных типов задач.
Краткий обзор проекта MNP (Mobile Number Portability)
4
ЧАСТЬ 1
ЦЕЛИ ПРОЕКТА
◼ Обеспечить исполнение законодательства по MNP к 01.12.2013
ЗАДАЧИ ПРОЕКТА
◼ Реализовать бизнес-процессы переноса (портации) номеров
ГЕОГРАФИЧЕСКИЕ РАМКИ ПРОЕКТА
◼ Сеть Оператора связи в РФ
◼ Офисы обслуживания абонентов в РФ
Бизнес-процессы переноса телефонного номера
5
ЧАСТЬ 1
Портация в сеть оператора связи (PortIn)
Клиент
приходит в
офис
обслуживания
Оператор
инициирует
процесс
переноса
Система через
ЦБДПН
запрашивает
систему-
донора
Система
вызывает
различные ИС
оператора для
активации
абонента
Портация из сети оператора связи (PortOut)
Клиент
приходит в
офис другого
оператора
связи
Их система
через ЦБДПН
запрашивает
возможность
переноса
Система
проверяет
баланс и
ARPU
абонента
Оператор
подтверждает
перенос
абонента
6
Подсистема протоколирования ЧАСТЬ 1
7
Контекст протоколирования ЧАСТЬ 1
Любые действия бизнес процесса
Отклоненные заявления от ЦБДПН
 Зависшие заявления
Прерывание работы систем ЦБДПН и других систем
Действия пользователя в портале
Причина использования Cassandra
8
Автоматическая репликация данных по дата центру.
Out of Box Sharding.
Линейное масштабирование кластера.
Отсутствие единой точки отказа кластера.
Big table дата модель.
Высоко производительная атомарная запись данных.
Open source.
Commodity hardware, достаточно private cloud инфраструктура.
ЧАСТЬ 2
9
Объемы протоколирования ЧАСТЬ 1
Нагрузка
Протоколирование 70-100 записей для 1
заявления с 1 номером
Общий размер записей для 1 заявления  60 КБ
До 40000 заявлений в сутки
200ГБ
в сутки
Количество записей для обработки
Протоколирование 70-100 записей для 1
заявления с 1 номером
До 40000 заявлений в сутки
 ~3 номера в каждом заявлении
12000
000 в
сутки
Архитектура подсистемы протоколирования (2013)
10
ЧАСТЬ 2
OLAPOLTP
HIVE PIG
Движок БП
Асинхронный запись
REST
Load Balancer
Cassandra 1.2.*
Hadoop 1.2.*Сервис
протоколироания
Сервис
протоколироания
Поиск и Анализ
данных
(Ad Hoc query)
Экспорт данные в
JSON
11
Производительность ЧАСТЬ 2
Почему новая модель программирования?
12
ЧАСТЬ 1
MapReduce значительно упростил обработки больших объемов данных, но как только
он стал популярным, пользователей хотели больше :
– Более сложные, multi-stage
приложения(например,
iterative graph algorithms and machine learning)
– Более интерактивный ad-hoc запросов
multi-stage и интерактивные приложения требуют быстрого обмена данных между
параллельными задачами.
Обмен данных в Hadoop Map Reduce
13
ЧАСТЬ 2
Итерация
1
Итерация
2 . . .
Input
HDFS/Cassandra
read
HDFS
write
HDFS
read
HDFS
write
Input
Запрос 1
Запрос 2
Запрос 3
result 1
result 2
result 3
. . .
HDFS/Cassandra
read
Медленно из-за репликации, сериализаций данных,
временных файлов и Disk IO
Вычислительная модель Spark
14
ЧАСТЬ 2
Ключевые идеи: RDDS (resilient distributed datasets)
– Распределенные коллекции объектов, которые могут
кэшироваться в памяти между узлами кластера.
– Автоматическое восстановление DataSets при сбоях.
– Написано на языке программирования Scala с
поддержкой JAVA и Python API
Обмен данных в SPARK
15
ЧАСТЬ 2
В 10-100 раз быстрее
Итерация
1
Итерация
2 . . .
Распределенная
память
Input
Запрос 1
Запрос 2
Запрос 3
. . .
Input
Вычислительный кластер Spark
16
ЧАСТЬ 2
Spark кластер можно запустить:
– Standalone (параллельно с Hadoop)
– Yarn (Hadoop 2)
– Mesos (Cluster Management)
– Amazon EC2
Программный интерфейс
17
ЧАСТЬ 2
– JAVA, Python, Scala
– Shark (Hive on Spark)
– Calliope
Spark Stack
18
ЧАСТЬ 2
Apache Spark
Spark
Straming
Shark
(SQL)
Mlib
(Machine
learning)
GraphX
Amazon
EC2
Standalone
Yarn
(Hadoop 2)
Mesos
19
MNP архитектура ЧАСТЬ 2
OLAPOLTP
Shark
Движок БП
Асинхронный запись
REST
Load Balancer
Cassandra 2.0.4
Hadoop 1.2.*Сервис
протоколироания
Сервис
протоколироания
Поиск и Анализ
данных
(Ad Hoc query)
Экспорт данные в
JSON
20
NoSQL стек ЧАСТЬ 2
Apache Cassandra 2.0.4
Spark 0.9.0-incubating-bin-hadoop1
Hive-0.11.0-bin-shark
ApacheHadoopHDFS
1.2.7
Shark 0.9.0
Cash (Hive Cassandra handler)
21
Установка Spark кластера ЧАСТЬ 2
 Build Spark и Shark из исходного кода (необходимо Scala)
 Установка и запуск Spark cluster
 Установка Hive
 Копировать библиотеки Cash в $HIVE/lib
 Установка и запуска Shark
23
Пример ЧАСТЬ 2
shark> CREATE EXTERNAL TABLE mnp.audit(processId int, pname string, pcategory string, penddate date, pinstance
string, pevent string)
STORED BY 'org.apache.hadoop.hive.cassandra.cql.CqlStorageHandler'
WITH SERDEPROPERTIES ("cql.primarykey" = “processid", "comment"="check", "read_repair_chance" = "0.2",
"dclocal_read_repair_chance" = "0.14", "gc_grace_seconds" = "989898", "bloom_filter_fp_chance" = "0.2",
"compaction" = "{'class' : 'LeveledCompactionStrategy'}", "replicate_on_write" = "false", "caching" = "all");
shark> select count(*) from audit;
185.022: [Full GC 106345K->24340K(1013632K), 0.2817830 secs]
189.722: [Full GC 228461K->30033K(1013632K), 0.3228080 secs]
OK
4870000
Time taken: 37.106 seconds
shark> select pcategory, count(*) from audit group by pcategory;
185.022: [Full GC 106345K->24340K(2013632K), 0.3017930 secs]
189.722: [Full GC 228461K->30033K(1993632K), 0.4558780 secs]
OK
portin 1000300
Portout 2001000
Pgov 1710003
Time taken: 136.199 seconds
24
Пример (Таблица cache) ЧАСТЬ 2
shark> CREATE TABLE mnp.audit_cache TBLPROPERTIES ("shark.cache" = "true") AS SELECT * FROM mnp.audit;
shark> select pcategory, count(*) from audit-cache group by pcategory_cache;
135.022: [Full GC 106345K->24340K(2013632K), 0.2118930 secs]
129.722: [Full GC 228461K->30033K(1993632K), 0.3368880 secs]
OK
portin 1000300
Portout 2001000
Pgov 1710003
Time taken: 46.019 seconds
25
Производительность ЧАСТЬ 2
0
100
200
300
400
500
600
1 2 3 4
Performance Benchmark (11000000
records)
Hadoop Spark Spark cache
26
Reference
Hadoop Spark Summit presentation
http://tuplejump.github.io/calliope/
http://brianoneill.blogspot.ru/2014/03/shark-on-cassandra-w-cash-
interrogating.html
Amplab (spak & shark)
http://frommyworkshop.blogspot.ru
27
Обратная связь
bsha@at-consulting.ru
Blog: http://frommyworkshop.blogspot.ru
WE ARE HIRING
28
Вопросы

More Related Content

What's hot

Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
 
Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"IT Event
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Andrew Avdeev
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...solit
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Fwdays
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)Ontico
 
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"Fwdays
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Ontico
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015rusbase
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Ontico
 
Конференция по программным решениям HPE 2016
Конференция по программным решениям HPE 2016Конференция по программным решениям HPE 2016
Конференция по программным решениям HPE 2016Andrey Karpov
 
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...IBS
 

What's hot (20)

Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
 
Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"Алексей Рагозин "Java и linux борьба за микросекунды"
Алексей Рагозин "Java и linux борьба за микросекунды"
 
Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)Масштабирование баз данных. (Database Scalability)
Масштабирование баз данных. (Database Scalability)
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
 
Webcluster cases
Webcluster casesWebcluster cases
Webcluster cases
 
02 1c-bitrix-cloud-storage
02 1c-bitrix-cloud-storage02 1c-bitrix-cloud-storage
02 1c-bitrix-cloud-storage
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
Дмитрий Меньшиков "Топ-10 фейлов на реальном highload проекте"
 
1c bitrix-cluster-et
1c bitrix-cluster-et1c bitrix-cluster-et
1c bitrix-cluster-et
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
BigПочта: как мы строили DataLake в Почте России / Алексей Вовченко (Luxoft)
 
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
Игнат Корчагин "Как Cloudflare помогает справиться с крупнейшими атаками в Сети"
 
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
Стратегия и тактика улучшения производительности BSS систем оператора мобильн...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015Александр Киров — Acronis — ICBDA 2015
Александр Киров — Acronis — ICBDA 2015
 
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
Пишем свою платформу для управления данными. Это очень просто / Суханов Васил...
 
Конференция по программным решениям HPE 2016
Конференция по программным решениям HPE 2016Конференция по программным решениям HPE 2016
Конференция по программным решениям HPE 2016
 
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
Максим Исаев, IBS. Практика использования комплекса Veritas NetBackup для мод...
 

Viewers also liked

Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Andrei Nikolaenko
 
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...Spark Summit
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Антон Шестаков
 
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Spark Summit
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Alexey Zinoviev
 
Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Kirill Rybachuk
 
GraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQLGraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQLSpark Summit
 
Using spark for timeseries graph analytics
Using spark for timeseries graph analyticsUsing spark for timeseries graph analytics
Using spark for timeseries graph analyticsSigmoid
 
Building a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis RoosBuilding a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis RoosSpark Summit
 
Graphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXGraphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXAndrea Iacono
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. SparkTechnopark
 
Big Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkBig Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkKenny Bastani
 
GraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur DaveGraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur DaveSpark Summit
 
Credit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph AnalysisCredit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph AnalysisJen Aman
 
Graph Analytics in Spark
Graph Analytics in SparkGraph Analytics in Spark
Graph Analytics in SparkPaco Nathan
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezBig Data Spain
 

Viewers also liked (17)

Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)Introductory Keynote at Hadoop Workshop by Ospcon (2014)
Introductory Keynote at Hadoop Workshop by Ospcon (2014)
 
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
Building a Location Based Social Graph in Spark at InMobi-(Seinjuti Chatterje...
 
Apache spark
Apache sparkApache spark
Apache spark
 
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
Выступление Александра Крота из "Вымпелком" на Hadoop Meetup в рамках RIT++
 
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
Interactive Graph Analytics with Spark-(Daniel Darabos, Lynx Analytics)
 
Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15Мастер-класс по BigData Tools для HappyDev'15
Мастер-класс по BigData Tools для HappyDev'15
 
Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)Community detection (Поиск сообществ в графах)
Community detection (Поиск сообществ в графах)
 
GraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQLGraphFrames: Graph Queries In Spark SQL
GraphFrames: Graph Queries In Spark SQL
 
Using spark for timeseries graph analytics
Using spark for timeseries graph analyticsUsing spark for timeseries graph analytics
Using spark for timeseries graph analytics
 
Building a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis RoosBuilding a Graph of all US Businesses Using Spark Technologies by Alexis Roos
Building a Graph of all US Businesses Using Spark Technologies by Alexis Roos
 
Graphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXGraphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphX
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Big Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache SparkBig Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache Spark
 
GraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur DaveGraphFrames: Graph Queries in Spark SQL by Ankur Dave
GraphFrames: Graph Queries in Spark SQL by Ankur Dave
 
Credit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph AnalysisCredit Fraud Prevention with Spark and Graph Analysis
Credit Fraud Prevention with Spark and Graph Analysis
 
Graph Analytics in Spark
Graph Analytics in SparkGraph Analytics in Spark
Graph Analytics in Spark
 
Multiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier DominguezMultiplatform Spark solution for Graph datasources by Javier Dominguez
Multiplatform Spark solution for Graph datasources by Javier Dominguez
 

Similar to 3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )

Middleware
MiddlewareMiddleware
Middlewaremegakott
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
Citrix Net Scaler Preso
Citrix Net Scaler PresoCitrix Net Scaler Preso
Citrix Net Scaler PresoHighLoad2009
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeARCCN
 
Node.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.uaNode.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.uaEugene Khvedchenya
 
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchangeПрактическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchangeARCCN
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
 
Делаем очередь поверх Кассандры
Делаем очередь поверх КассандрыДелаем очередь поверх Кассандры
Делаем очередь поверх КассандрыDotNetConf
 
Отечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовОтечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовARCCN
 
ERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLineERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLineDataLine
 
SDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchangeSDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchangeARCCN
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"LogeekNightUkraine
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...ARCCN
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеVoximplant
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Evgeny Kokovikhin
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...Procontent.Ru Magazine
 
SDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьSDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьCisco Russia
 
06 vasenin roganov siis_2013
06 vasenin roganov siis_201306 vasenin roganov siis_2013
06 vasenin roganov siis_2013Marina_creautor
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopAlexey Bokov
 

Similar to 3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data ) (20)

Middleware
MiddlewareMiddleware
Middleware
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
Citrix Net Scaler Preso
Citrix Net Scaler PresoCitrix Net Scaler Preso
Citrix Net Scaler Preso
 
GRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network InitiativeGRANIT — Global Russian Advanced Network Initiative
GRANIT — Global Russian Advanced Network Initiative
 
Node.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.uaNode.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.ua
 
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchangeПрактическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
Практическое применение SDN/NFV в современных сетях: от CPE до Internet eXchange
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
Делаем очередь поверх Кассандры
Делаем очередь поверх КассандрыДелаем очередь поверх Кассандры
Делаем очередь поверх Кассандры
 
Отечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторовОтечественные решения на базе SDN и NFV для телеком-операторов
Отечественные решения на базе SDN и NFV для телеком-операторов
 
ERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLineERP-системы в облаке: разбор кейсов DataLine
ERP-системы в облаке: разбор кейсов DataLine
 
SDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchangeSDN & NFV: от абонента до Internet eXchange
SDN & NFV: от абонента до Internet eXchange
 
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"
 
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковIBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаков
 
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
Отчет «Центра прикладных исследований компьютерных сетей» на Совете фонда "Ск...
 
Потоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной картеПотоковая обработка событий клиентов и их отображение на интерактивной карте
Потоковая обработка событий клиентов и их отображение на интерактивной карте
 
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
Как показывать 200 миллионов баннеров ежедневно и быть готовым показать милли...
 
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
WapStart: Как показывать 200 миллионов баннеров ежедневно и быть готовым пока...
 
SDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьSDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использовать
 
06 vasenin roganov siis_2013
06 vasenin roganov siis_201306 vasenin roganov siis_2013
06 vasenin roganov siis_2013
 
Windows Azure - BigData and Hadoop
Windows Azure - BigData and HadoopWindows Azure - BigData and Hadoop
Windows Azure - BigData and Hadoop
 

3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )

  • 1. Fast In-memory Analytics Over Cassandra Data Shamim Ahmed 3rd Moscow Cassandra Meetup
  • 2. 2 Agenda Fast in memory analytics over Cassandra Data ЧАСТЬ 1  Наша цель использования Cassandra.  Какие проблемы мы решаем.  Причина применения In Memory data processing  Наша Cassandra/Spark архитектура.
  • 3. 3 AT Consulting О нас ЧАСТЬ 1 Предоставляем консалтинговые услуги, разработка ПО для отраслей телекоммуникации, финансов, энергетики и здравоохранения. В данный момент более 11-и проектов используют NoSQL для решения разных типов задач.
  • 4. Краткий обзор проекта MNP (Mobile Number Portability) 4 ЧАСТЬ 1 ЦЕЛИ ПРОЕКТА ◼ Обеспечить исполнение законодательства по MNP к 01.12.2013 ЗАДАЧИ ПРОЕКТА ◼ Реализовать бизнес-процессы переноса (портации) номеров ГЕОГРАФИЧЕСКИЕ РАМКИ ПРОЕКТА ◼ Сеть Оператора связи в РФ ◼ Офисы обслуживания абонентов в РФ
  • 5. Бизнес-процессы переноса телефонного номера 5 ЧАСТЬ 1 Портация в сеть оператора связи (PortIn) Клиент приходит в офис обслуживания Оператор инициирует процесс переноса Система через ЦБДПН запрашивает систему- донора Система вызывает различные ИС оператора для активации абонента Портация из сети оператора связи (PortOut) Клиент приходит в офис другого оператора связи Их система через ЦБДПН запрашивает возможность переноса Система проверяет баланс и ARPU абонента Оператор подтверждает перенос абонента
  • 7. 7 Контекст протоколирования ЧАСТЬ 1 Любые действия бизнес процесса Отклоненные заявления от ЦБДПН  Зависшие заявления Прерывание работы систем ЦБДПН и других систем Действия пользователя в портале
  • 8. Причина использования Cassandra 8 Автоматическая репликация данных по дата центру. Out of Box Sharding. Линейное масштабирование кластера. Отсутствие единой точки отказа кластера. Big table дата модель. Высоко производительная атомарная запись данных. Open source. Commodity hardware, достаточно private cloud инфраструктура. ЧАСТЬ 2
  • 9. 9 Объемы протоколирования ЧАСТЬ 1 Нагрузка Протоколирование 70-100 записей для 1 заявления с 1 номером Общий размер записей для 1 заявления  60 КБ До 40000 заявлений в сутки 200ГБ в сутки Количество записей для обработки Протоколирование 70-100 записей для 1 заявления с 1 номером До 40000 заявлений в сутки  ~3 номера в каждом заявлении 12000 000 в сутки
  • 10. Архитектура подсистемы протоколирования (2013) 10 ЧАСТЬ 2 OLAPOLTP HIVE PIG Движок БП Асинхронный запись REST Load Balancer Cassandra 1.2.* Hadoop 1.2.*Сервис протоколироания Сервис протоколироания Поиск и Анализ данных (Ad Hoc query) Экспорт данные в JSON
  • 12. Почему новая модель программирования? 12 ЧАСТЬ 1 MapReduce значительно упростил обработки больших объемов данных, но как только он стал популярным, пользователей хотели больше : – Более сложные, multi-stage приложения(например, iterative graph algorithms and machine learning) – Более интерактивный ad-hoc запросов multi-stage и интерактивные приложения требуют быстрого обмена данных между параллельными задачами.
  • 13. Обмен данных в Hadoop Map Reduce 13 ЧАСТЬ 2 Итерация 1 Итерация 2 . . . Input HDFS/Cassandra read HDFS write HDFS read HDFS write Input Запрос 1 Запрос 2 Запрос 3 result 1 result 2 result 3 . . . HDFS/Cassandra read Медленно из-за репликации, сериализаций данных, временных файлов и Disk IO
  • 14. Вычислительная модель Spark 14 ЧАСТЬ 2 Ключевые идеи: RDDS (resilient distributed datasets) – Распределенные коллекции объектов, которые могут кэшироваться в памяти между узлами кластера. – Автоматическое восстановление DataSets при сбоях. – Написано на языке программирования Scala с поддержкой JAVA и Python API
  • 15. Обмен данных в SPARK 15 ЧАСТЬ 2 В 10-100 раз быстрее Итерация 1 Итерация 2 . . . Распределенная память Input Запрос 1 Запрос 2 Запрос 3 . . . Input
  • 16. Вычислительный кластер Spark 16 ЧАСТЬ 2 Spark кластер можно запустить: – Standalone (параллельно с Hadoop) – Yarn (Hadoop 2) – Mesos (Cluster Management) – Amazon EC2
  • 17. Программный интерфейс 17 ЧАСТЬ 2 – JAVA, Python, Scala – Shark (Hive on Spark) – Calliope
  • 18. Spark Stack 18 ЧАСТЬ 2 Apache Spark Spark Straming Shark (SQL) Mlib (Machine learning) GraphX Amazon EC2 Standalone Yarn (Hadoop 2) Mesos
  • 19. 19 MNP архитектура ЧАСТЬ 2 OLAPOLTP Shark Движок БП Асинхронный запись REST Load Balancer Cassandra 2.0.4 Hadoop 1.2.*Сервис протоколироания Сервис протоколироания Поиск и Анализ данных (Ad Hoc query) Экспорт данные в JSON
  • 20. 20 NoSQL стек ЧАСТЬ 2 Apache Cassandra 2.0.4 Spark 0.9.0-incubating-bin-hadoop1 Hive-0.11.0-bin-shark ApacheHadoopHDFS 1.2.7 Shark 0.9.0 Cash (Hive Cassandra handler)
  • 21. 21 Установка Spark кластера ЧАСТЬ 2  Build Spark и Shark из исходного кода (необходимо Scala)  Установка и запуск Spark cluster  Установка Hive  Копировать библиотеки Cash в $HIVE/lib  Установка и запуска Shark
  • 22. 23 Пример ЧАСТЬ 2 shark> CREATE EXTERNAL TABLE mnp.audit(processId int, pname string, pcategory string, penddate date, pinstance string, pevent string) STORED BY 'org.apache.hadoop.hive.cassandra.cql.CqlStorageHandler' WITH SERDEPROPERTIES ("cql.primarykey" = “processid", "comment"="check", "read_repair_chance" = "0.2", "dclocal_read_repair_chance" = "0.14", "gc_grace_seconds" = "989898", "bloom_filter_fp_chance" = "0.2", "compaction" = "{'class' : 'LeveledCompactionStrategy'}", "replicate_on_write" = "false", "caching" = "all"); shark> select count(*) from audit; 185.022: [Full GC 106345K->24340K(1013632K), 0.2817830 secs] 189.722: [Full GC 228461K->30033K(1013632K), 0.3228080 secs] OK 4870000 Time taken: 37.106 seconds shark> select pcategory, count(*) from audit group by pcategory; 185.022: [Full GC 106345K->24340K(2013632K), 0.3017930 secs] 189.722: [Full GC 228461K->30033K(1993632K), 0.4558780 secs] OK portin 1000300 Portout 2001000 Pgov 1710003 Time taken: 136.199 seconds
  • 23. 24 Пример (Таблица cache) ЧАСТЬ 2 shark> CREATE TABLE mnp.audit_cache TBLPROPERTIES ("shark.cache" = "true") AS SELECT * FROM mnp.audit; shark> select pcategory, count(*) from audit-cache group by pcategory_cache; 135.022: [Full GC 106345K->24340K(2013632K), 0.2118930 secs] 129.722: [Full GC 228461K->30033K(1993632K), 0.3368880 secs] OK portin 1000300 Portout 2001000 Pgov 1710003 Time taken: 46.019 seconds
  • 24. 25 Производительность ЧАСТЬ 2 0 100 200 300 400 500 600 1 2 3 4 Performance Benchmark (11000000 records) Hadoop Spark Spark cache
  • 25. 26 Reference Hadoop Spark Summit presentation http://tuplejump.github.io/calliope/ http://brianoneill.blogspot.ru/2014/03/shark-on-cassandra-w-cash- interrogating.html Amplab (spak & shark) http://frommyworkshop.blogspot.ru