SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Методы распределенной обработки
больших объемов данных в 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 которых превышает их ранг)
• кратчайшие пути из Брюсселя в остальные города
Вопросы
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ

Contenu connexe

Tendances

Tendances (20)

Big data architectures and the data lake
Big data architectures and the data lakeBig data architectures and the data lake
Big data architectures and the data lake
 
Big Data Fundamentals
Big Data FundamentalsBig Data Fundamentals
Big Data Fundamentals
 
Combining Logs, Metrics, and Traces for Unified Observability
Combining Logs, Metrics, and Traces for Unified ObservabilityCombining Logs, Metrics, and Traces for Unified Observability
Combining Logs, Metrics, and Traces for Unified Observability
 
Big Data & Data Lakes Building Blocks
Big Data & Data Lakes Building BlocksBig Data & Data Lakes Building Blocks
Big Data & Data Lakes Building Blocks
 
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha JarettRetail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
Retail Analytics and BI with Looker, BigQuery, GCP & Leigha Jarett
 
Real-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFiReal-Time Data Flows with Apache NiFi
Real-Time Data Flows with Apache NiFi
 
Challenge And Evolution Of Data Orchestration at Rakuten Data System
Challenge And Evolution Of Data Orchestration at Rakuten Data SystemChallenge And Evolution Of Data Orchestration at Rakuten Data System
Challenge And Evolution Of Data Orchestration at Rakuten Data System
 
Open core summit: Observability for data pipelines with OpenLineage
Open core summit: Observability for data pipelines with OpenLineageOpen core summit: Observability for data pipelines with OpenLineage
Open core summit: Observability for data pipelines with OpenLineage
 
Get Savvy with Snowflake
Get Savvy with SnowflakeGet Savvy with Snowflake
Get Savvy with Snowflake
 
Apache Kafka® and the Data Mesh
Apache Kafka® and the Data MeshApache Kafka® and the Data Mesh
Apache Kafka® and the Data Mesh
 
Big Data Analytics Proposal #1
Big Data Analytics Proposal #1Big Data Analytics Proposal #1
Big Data Analytics Proposal #1
 
Introduction to Apache Spark
Introduction to Apache SparkIntroduction to Apache Spark
Introduction to Apache Spark
 
Architect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh ArchitectureArchitect’s Open-Source Guide for a Data Mesh Architecture
Architect’s Open-Source Guide for a Data Mesh Architecture
 
Technip Energies Italy: Planning is a graph matter
Technip Energies Italy: Planning is a graph matterTechnip Energies Italy: Planning is a graph matter
Technip Energies Italy: Planning is a graph matter
 
Linux on Azure Pitch Deck
Linux on Azure Pitch DeckLinux on Azure Pitch Deck
Linux on Azure Pitch Deck
 
The Future of Data Warehousing: ETL Will Never be the Same
The Future of Data Warehousing: ETL Will Never be the SameThe Future of Data Warehousing: ETL Will Never be the Same
The Future of Data Warehousing: ETL Will Never be the Same
 
ODSC May 2019 - The DataOps Manifesto
ODSC May 2019 - The DataOps ManifestoODSC May 2019 - The DataOps Manifesto
ODSC May 2019 - The DataOps Manifesto
 
Building the Data Lake with Azure Data Factory and Data Lake Analytics
Building the Data Lake with Azure Data Factory and Data Lake AnalyticsBuilding the Data Lake with Azure Data Factory and Data Lake Analytics
Building the Data Lake with Azure Data Factory and Data Lake Analytics
 
Apache hive introduction
Apache hive introductionApache hive introduction
Apache hive introduction
 
Introduction à Neo4j
Introduction à Neo4jIntroduction à Neo4j
Introduction à Neo4j
 

En vedette

En vedette (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 перевод на русский язык свод знаний по бизнес анализу
 

Similaire à Лекция 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
 

Similaire à Лекция 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
 

Plus de 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
 

Plus de Technopark (20)

Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. 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 "Расширенные возможности работы с базами данных. Триггеры...
 

Лекция 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. Вопросы ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ