SlideShare a Scribd company logo
Методы распределенной обработки
больших объемов данных в Hadoop
Москва 2014
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
План занятия
• Обработка больших графов и вычислительная модель Pregel
• Реализация Pregel: Apache Giraph
• Примеры алгоритмов
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Web 2.0 и социальные графы
861М активных пользователей ежедневно
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Примеры графов
• Страницы в Интернете
• Компьютерные сети
• Статьи в блогах
• Транспортные системы
• Отношения ко-цитирования в публикациях
• Распространение эпидемий
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
• Работа с путями в графе
• Остовные деревья (Kruskal, Prim)
• Кратчайшие пути (Bellman-Ford, Dijkstra)
• Кластеризация (Affinity Propagation, Girvan–Newman)
• Ранжирование
• Centralities: degree, betweenness, closeness, …
• PageRank, HITS
Задачи обработки графов
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Средства обработки больших графов
• Собственное распределенное решение
• Распределенные фреймворки общего назначения
(Hadoop)
• Нераспределенные библиотеки обработки графов
(NetworkX, Gephi, LEDA, GraphBase)
• Распределенные фреймворки обработки графов
(Giraph, Bagel, Parallel BGL)
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Pregel — мотивация
• Распределенные вычисления
й(вычисления легко распараллеливаются на кластер)
• Локальность вычислений
(вычисления, соответстующие каждой вершине независимы)
• Отказоустойчивость
(успешность выполнения задачи при выходе из строя нескольких машин)
• Универсальность
(различные форматы входных и выходных данных)
• Удобная вычислительная модель
(поддержка большого количества алгоритмов)
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Pregel — концепция
• Вычисления состоят из некоторого количества итераций
(supersteps)
• Каждая вершина имеет значение (value), набор исходящих ребер
(edges) и состояние: active или vote to halt
• Вершины общаются с помощью сообщений (messages),
посылаемых через ребра
• Единицей вычисления является метод compute, который
выполняется независимо для каждой вершины на каждой
итерации.
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Vertex
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Метод compute
Разработчик программы наследует класс Vertex, определяя метод
compute, в котором:
1. обрабатываются сообщения, посланные текущей вершине на
предыдущей итерации
2. с учетом полученных сообщений, весов исходящих ребер и номера
итерации изменяется value текущей вершины
3. вершинам, доступным по исходящим ребрам могут отсылаться
сообщения
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Метод compute
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Combiner
Проблема: отправка сообщений – дорогая операция
Решение: по возможности скомбинировать сообщения перед
отправкой (для коммутативных и ассоциативных операций)
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Aggregator
Механизм для глобальной коммуникации:
• Вершины отправляют значения на S итерации
• Pregel комбинирует эти значения
• Итоговое значение доступно на S+1 итерации
Применение:
• Расчет статистики
• Отслеживание выполнения программы
• Выбор «особой» вершины
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Изменение графа
Некоторые алгоритмы могут требовать изменения графа
• Minimum Spanning Tree
• Divisive Hierarchical Clustering
Изменения происходят упорядоченно:
1) удаление ребер
2) удаление вершин
3) добавление вершин
4) добавление ребер
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Giraph — архитектура
Реализация: map-only Hadoop job
• master
• один активный master в каждый момент времени
• разделение графа и распределение кусков по worker
• контроль supersteps
• worker
• загрузка графа из InputSplit
• вычисления, относящиеся к “своему” куску графа
• передача сообщений
• zookeeper
• global application state
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Giraph — выполнение программы
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Giraph — отказоустойчивость
• master
если один master “умирает”, автоматически включается другой
(состояние хранится в zookeeper)
• worker
если worker “умирает”, происходит “откат” к последней сохраненной итерации
• zookeeper
сам по себе fault-tolerant
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
PageRank
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
PageRank
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Shortest paths
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Производительность
Кластер из 300 машин
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ
Задача: дорожная сеть Бельгии
pregel.py — простая реализация модели Pregel
roadnet.py — реализация Vertex для нашей задачи и вспомогательные функции
Реализованные примеры:
• degree
• pagerank
Требуется реализовать:
• h-index (количество соседей, degree которых превышает их ранг)
• кратчайшие пути из Брюсселя в остальные города
Вопросы
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ

More Related Content

What's hot

Menu hlediska a pravidla dělení
Menu hlediska a pravidla děleníMenu hlediska a pravidla dělení
Menu hlediska a pravidla dělení
Anna Hanakova
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
TO THE NEW | Technology
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
yoku0825
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
areyouok
 

What's hot (20)

Introduction to Binary Tree and Conersion of General tree to Binary Tree
Introduction to Binary Tree  and Conersion of General tree to Binary TreeIntroduction to Binary Tree  and Conersion of General tree to Binary Tree
Introduction to Binary Tree and Conersion of General tree to Binary Tree
 
why we need ext4
why we need ext4why we need ext4
why we need ext4
 
Impala Architecture presentation
Impala Architecture presentationImpala Architecture presentation
Impala Architecture presentation
 
Menu hlediska a pravidla dělení
Menu hlediska a pravidla děleníMenu hlediska a pravidla dělení
Menu hlediska a pravidla dělení
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
 
An Introduction to Apache Hadoop Yarn
An Introduction to Apache Hadoop YarnAn Introduction to Apache Hadoop Yarn
An Introduction to Apache Hadoop Yarn
 
IBM Spectrum Scale Networking Flow
IBM Spectrum Scale Networking FlowIBM Spectrum Scale Networking Flow
IBM Spectrum Scale Networking Flow
 
Kernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at NetflixKernel Recipes 2017: Using Linux perf at Netflix
Kernel Recipes 2017: Using Linux perf at Netflix
 
03 - Hadoop. HDFS Shell-команды
03 - Hadoop. HDFS Shell-команды03 - Hadoop. HDFS Shell-команды
03 - Hadoop. HDFS Shell-команды
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
Gluster for Geeks: Performance Tuning Tips & Tricks
Gluster for Geeks: Performance Tuning Tips & TricksGluster for Geeks: Performance Tuning Tips & Tricks
Gluster for Geeks: Performance Tuning Tips & Tricks
 
List of Catchphrase Puzzles on Nickelodeon's Catchphrase
List of Catchphrase Puzzles on Nickelodeon's CatchphraseList of Catchphrase Puzzles on Nickelodeon's Catchphrase
List of Catchphrase Puzzles on Nickelodeon's Catchphrase
 
Unix executable buffer overflow
Unix executable buffer overflowUnix executable buffer overflow
Unix executable buffer overflow
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
 
Velocity 2015 linux perf tools
Velocity 2015 linux perf toolsVelocity 2015 linux perf tools
Velocity 2015 linux perf tools
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
 
腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化腾讯大讲堂06 qq邮箱性能优化
腾讯大讲堂06 qq邮箱性能优化
 
Linux and H/W optimizations for MySQL
Linux and H/W optimizations for MySQLLinux and H/W optimizations for MySQL
Linux and H/W optimizations for MySQL
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at Netflix
 

Viewers also liked

Viewers also liked (7)

05 задачи эксперта в работе аналитика
05 задачи эксперта в работе аналитика05 задачи эксперта в работе аналитика
05 задачи эксперта в работе аналитика
 
Введение в моделирование бизнес процессов
Введение в моделирование бизнес процессовВведение в моделирование бизнес процессов
Введение в моделирование бизнес процессов
 
Управление требованиями
Управление требованиямиУправление требованиями
Управление требованиями
 
Глава 9 методы и техники бизнес-анализа (babok 2.0 на русском скачать)
Глава 9 методы и техники бизнес-анализа (babok 2.0 на русском скачать)Глава 9 методы и техники бизнес-анализа (babok 2.0 на русском скачать)
Глава 9 методы и техники бизнес-анализа (babok 2.0 на русском скачать)
 
ТРИЗ. Применение в бизнес-анализе
ТРИЗ. Применение в бизнес-анализеТРИЗ. Применение в бизнес-анализе
ТРИЗ. Применение в бизнес-анализе
 
Контрольный список для проверки требований
Контрольный список для проверки требованийКонтрольный список для проверки требований
Контрольный список для проверки требований
 
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализуBabok v2.0 перевод на русский язык свод знаний по бизнес анализу
Babok v2.0 перевод на русский язык свод знаний по бизнес анализу
 

Similar to Лекция 11. Вычислительная модель Pregel

система высоконагруженных распределенных вычислений Aurora
система высоконагруженных распределенных вычислений Auroraсистема высоконагруженных распределенных вычислений Aurora
система высоконагруженных распределенных вычислений Aurora
Alex Povar
 
росатом(эвмновогопокол)
росатом(эвмновогопокол)росатом(эвмновогопокол)
росатом(эвмновогопокол)
PIPoruchikov
 
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ООО "Прософт-Системы"
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
KewpaN
 
Turbo Resource Tracker. Кейс в Step Logic
Turbo Resource Tracker. Кейс в Step LogicTurbo Resource Tracker. Кейс в Step Logic
Turbo Resource Tracker. Кейс в Step Logic
Vladimir Ivanov
 

Similar to Лекция 11. Вычислительная модель Pregel (20)

система высоконагруженных распределенных вычислений Aurora
система высоконагруженных распределенных вычислений Auroraсистема высоконагруженных распределенных вычислений Aurora
система высоконагруженных распределенных вычислений Aurora
 
HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерности
 
Gpudigitallab experimental studio
Gpudigitallab experimental studioGpudigitallab experimental studio
Gpudigitallab experimental studio
 
Датацентрический подход к инженерной информации жизненного цикла
Датацентрический подход к инженерной информации жизненного циклаДатацентрический подход к инженерной информации жизненного цикла
Датацентрический подход к инженерной информации жизненного цикла
 
Развитие центра коллективного пользования высокопроизводительными вычислитель...
Развитие центра коллективного пользования высокопроизводительными вычислитель...Развитие центра коллективного пользования высокопроизводительными вычислитель...
Развитие центра коллективного пользования высокопроизводительными вычислитель...
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
 
росатом(эвмновогопокол)
росатом(эвмновогопокол)росатом(эвмновогопокол)
росатом(эвмновогопокол)
 
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
 
122104.pptx
122104.pptx122104.pptx
122104.pptx
 
Системы корпоративного инжиниринга Intergraph для комплексного проектировани...
Системы корпоративного инжиниринга Intergraph  для комплексного проектировани...Системы корпоративного инжиниринга Intergraph  для комплексного проектировани...
Системы корпоративного инжиниринга Intergraph для комплексного проектировани...
 
Промышленные сети в АСУТП. Начальный уровень.
Промышленные сети в АСУТП.  Начальный уровень.Промышленные сети в АСУТП.  Начальный уровень.
Промышленные сети в АСУТП. Начальный уровень.
 
Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)
 
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
 
Информация о системе ЦАРь-КУБ
Информация о системе ЦАРь-КУБИнформация о системе ЦАРь-КУБ
Информация о системе ЦАРь-КУБ
 
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
Maksym Bezuglyi "Universal highload patterns on a specific example of a game ...
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
 
Turbo Resource Tracker. Кейс в Step Logic
Turbo Resource Tracker. Кейс в Step LogicTurbo Resource Tracker. Кейс в Step Logic
Turbo Resource Tracker. Кейс в Step Logic
 

More from Technopark

СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
Technopark
 

More from Technopark (20)

Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...
 
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
СУБД 2013 Лекция №3 "Выборка данных (продолжение). Транзакции"
 
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
СУБД 2013 Лекция №2 "Модификация данных. Выборка данных (начало)"
 
СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"СУБД 2013 Лекция №1 "Введение и начало проектирования"
СУБД 2013 Лекция №1 "Введение и начало проектирования"
 
Java осень 2014 занятие 8
Java осень 2014 занятие 8Java осень 2014 занятие 8
Java осень 2014 занятие 8
 

Лекция 11. Вычислительная модель Pregel

  • 1. Методы распределенной обработки больших объемов данных в Hadoop Москва 2014
  • 2. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ План занятия • Обработка больших графов и вычислительная модель Pregel • Реализация Pregel: Apache Giraph • Примеры алгоритмов
  • 3. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Web 2.0 и социальные графы 861М активных пользователей ежедневно
  • 4. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Примеры графов • Страницы в Интернете • Компьютерные сети • Статьи в блогах • Транспортные системы • Отношения ко-цитирования в публикациях • Распространение эпидемий
  • 5. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ • Работа с путями в графе • Остовные деревья (Kruskal, Prim) • Кратчайшие пути (Bellman-Ford, Dijkstra) • Кластеризация (Affinity Propagation, Girvan–Newman) • Ранжирование • Centralities: degree, betweenness, closeness, … • PageRank, HITS Задачи обработки графов
  • 6. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Средства обработки больших графов • Собственное распределенное решение • Распределенные фреймворки общего назначения (Hadoop) • Нераспределенные библиотеки обработки графов (NetworkX, Gephi, LEDA, GraphBase) • Распределенные фреймворки обработки графов (Giraph, Bagel, Parallel BGL)
  • 7. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Pregel — мотивация • Распределенные вычисления й(вычисления легко распараллеливаются на кластер) • Локальность вычислений (вычисления, соответстующие каждой вершине независимы) • Отказоустойчивость (успешность выполнения задачи при выходе из строя нескольких машин) • Универсальность (различные форматы входных и выходных данных) • Удобная вычислительная модель (поддержка большого количества алгоритмов)
  • 8. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Pregel — концепция • Вычисления состоят из некоторого количества итераций (supersteps) • Каждая вершина имеет значение (value), набор исходящих ребер (edges) и состояние: active или vote to halt • Вершины общаются с помощью сообщений (messages), посылаемых через ребра • Единицей вычисления является метод compute, который выполняется независимо для каждой вершины на каждой итерации.
  • 9. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Vertex
  • 10. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Метод compute Разработчик программы наследует класс Vertex, определяя метод compute, в котором: 1. обрабатываются сообщения, посланные текущей вершине на предыдущей итерации 2. с учетом полученных сообщений, весов исходящих ребер и номера итерации изменяется value текущей вершины 3. вершинам, доступным по исходящим ребрам могут отсылаться сообщения
  • 11. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Метод compute
  • 12. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Combiner Проблема: отправка сообщений – дорогая операция Решение: по возможности скомбинировать сообщения перед отправкой (для коммутативных и ассоциативных операций)
  • 13. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Aggregator Механизм для глобальной коммуникации: • Вершины отправляют значения на S итерации • Pregel комбинирует эти значения • Итоговое значение доступно на S+1 итерации Применение: • Расчет статистики • Отслеживание выполнения программы • Выбор «особой» вершины
  • 14. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Изменение графа Некоторые алгоритмы могут требовать изменения графа • Minimum Spanning Tree • Divisive Hierarchical Clustering Изменения происходят упорядоченно: 1) удаление ребер 2) удаление вершин 3) добавление вершин 4) добавление ребер
  • 15. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Giraph — архитектура Реализация: map-only Hadoop job • master • один активный master в каждый момент времени • разделение графа и распределение кусков по worker • контроль supersteps • worker • загрузка графа из InputSplit • вычисления, относящиеся к “своему” куску графа • передача сообщений • zookeeper • global application state
  • 16. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Giraph — выполнение программы
  • 17. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Giraph — отказоустойчивость • master если один master “умирает”, автоматически включается другой (состояние хранится в zookeeper) • worker если worker “умирает”, происходит “откат” к последней сохраненной итерации • zookeeper сам по себе fault-tolerant
  • 18. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ PageRank
  • 19. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ PageRank
  • 20. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Shortest paths
  • 21. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Производительность Кластер из 300 машин
  • 22. ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ Задача: дорожная сеть Бельгии pregel.py — простая реализация модели Pregel roadnet.py — реализация Vertex для нашей задачи и вспомогательные функции Реализованные примеры: • degree • pagerank Требуется реализовать: • h-index (количество соседей, degree которых превышает их ранг) • кратчайшие пути из Брюсселя в остальные города
  • 23. Вопросы ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ