SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Методы распределенной обработки
больших объемов данных в 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 которых превышает их ранг)
• кратчайшие пути из Брюсселя в остальные города
Вопросы
ПРАКТИЧЕСКИЕ ЗНАНИЯ В ОБЛАСТИ ИНТЕРНЕТ-ТЕХНОЛОГИЙ

Más contenido relacionado

La actualidad más candente

Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitGregoire Lejeune
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèseCOMPETENSIS
 
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduceRoman Brovko
 
Apport de l'outil ITSM à la relation Client
Apport de l'outil ITSM à la relation ClientApport de l'outil ITSM à la relation Client
Apport de l'outil ITSM à la relation ClientitSMF France
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Ardesi Midi-Pyrénées
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionECAM Brussels Engineering School
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
diagramme d'activité
diagramme d'activitédiagramme d'activité
diagramme d'activitémarwa baich
 
(travail collaboratif et e learning)
(travail collaboratif et e learning)(travail collaboratif et e learning)
(travail collaboratif et e learning)Anouar Abtoy
 
Chp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLChp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLLilia Sfaxi
 
Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23
Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23
Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23megaplanet20
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Programmation réseau en JAVA
Programmation réseau en JAVAProgrammation réseau en JAVA
Programmation réseau en JAVABachir Benyammi
 
Geti 2101 activity_diagrams
Geti 2101 activity_diagramsGeti 2101 activity_diagrams
Geti 2101 activity_diagramsChebil Hanen
 
Expression de besoin pour le si
Expression de besoin pour le siExpression de besoin pour le si
Expression de besoin pour le sifatima zahra FANDI
 

La actualidad más candente (20)

Cp in4 n6
Cp in4   n6Cp in4   n6
Cp in4 n6
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnit
 
DEVOPS - La synthèse
DEVOPS - La synthèseDEVOPS - La synthèse
DEVOPS - La synthèse
 
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
05 - Hadoop. Парадигма MapReduce и фреймворк MapReduce
 
Apport de l'outil ITSM à la relation Client
Apport de l'outil ITSM à la relation ClientApport de l'outil ITSM à la relation Client
Apport de l'outil ITSM à la relation Client
 
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
Réussir son analyse des besoins dans la conduite d'un projet informatique (2007)
 
Python avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exceptionPython avancé : Gestion d'erreurs et mécanisme d'exception
Python avancé : Gestion d'erreurs et mécanisme d'exception
 
Cours algorithmique02
Cours algorithmique02Cours algorithmique02
Cours algorithmique02
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
diagramme d'activité
diagramme d'activitédiagramme d'activité
diagramme d'activité
 
(travail collaboratif et e learning)
(travail collaboratif et e learning)(travail collaboratif et e learning)
(travail collaboratif et e learning)
 
Chp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGLChp1 - Introduction à l'AGL
Chp1 - Introduction à l'AGL
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23
Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23
Uml : Diagrammes de Cas dutilisation -- Modele preliminaire -- 23
 
Type abstrait de données
Type abstrait de donnéesType abstrait de données
Type abstrait de données
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Programmation réseau en JAVA
Programmation réseau en JAVAProgrammation réseau en JAVA
Programmation réseau en JAVA
 
Geti 2101 activity_diagrams
Geti 2101 activity_diagramsGeti 2101 activity_diagrams
Geti 2101 activity_diagrams
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Expression de besoin pour le si
Expression de besoin pour le siExpression de besoin pour le si
Expression de besoin pour le si
 

Destacado

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

Destacado (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 a Лекция 11. Вычислительная модель Pregel

система высоконагруженных распределенных вычислений Aurora
система высоконагруженных распределенных вычислений Auroraсистема высоконагруженных распределенных вычислений Aurora
система высоконагруженных распределенных вычислений AuroraAlex Povar
 
HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)HPC vs Big Data (Russian version)
HPC vs Big Data (Russian version)Irina Fedulova
 
Алгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиАлгоритмы и структуры данных BigData для графов большой размерности
Алгоритмы и структуры данных BigData для графов большой размерностиAlexey Zinoviev
 
Gpudigitallab experimental studio
Gpudigitallab experimental studioGpudigitallab experimental studio
Gpudigitallab experimental studioOleg Gubanov
 
Датацентрический подход к инженерной информации жизненного цикла
Датацентрический подход к инженерной информации жизненного циклаДатацентрический подход к инженерной информации жизненного цикла
Датацентрический подход к инженерной информации жизненного циклаVictor Agroskin
 
Развитие центра коллективного пользования высокопроизводительными вычислитель...
Развитие центра коллективного пользования высокопроизводительными вычислитель...Развитие центра коллективного пользования высокопроизводительными вычислитель...
Развитие центра коллективного пользования высокопроизводительными вычислитель...Perm State University
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data MATLAB
 
росатом(эвмновогопокол)
росатом(эвмновогопокол)росатом(эвмновогопокол)
росатом(эвмновогопокол)PIPoruchikov
 
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...
12 HappyDev-lite-2014. Иван Погудин, Анатолий Никулин. Решение задач, связан...HappyDev-lite
 
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...
10 HappyDev-lite'14 Иван Погудин, Анатолий Никулин. Решение задач, связанных...HappyDev
 
122104.pptx
122104.pptx122104.pptx
122104.pptxITPFITIS
 
Системы корпоративного инжиниринга Intergraph для комплексного проектировани...
Системы корпоративного инжиниринга Intergraph  для комплексного проектировани...Системы корпоративного инжиниринга Intergraph  для комплексного проектировани...
Системы корпоративного инжиниринга Intergraph для комплексного проектировани...Tanya Gadzevych
 
Промышленные сети в АСУТП. Начальный уровень.
Промышленные сети в АСУТП.  Начальный уровень.Промышленные сети в АСУТП.  Начальный уровень.
Промышленные сети в АСУТП. Начальный уровень.Пупена Александр
 
Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Digital Society Laboratory (Аршавский)
Digital Society Laboratory (Аршавский)Andzhey Arshavskiy
 
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...
ПО PROJ - Новое слово в проектировании современных автоматизированных систем ...ООО "Прософт-Системы"
 
Информация о системе ЦАРь-КУБ
Информация о системе ЦАРь-КУБИнформация о системе ЦАРь-КУБ
Информация о системе ЦАРь-КУБactive97
 
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 ...Fwdays
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бдKewpaN
 
Turbo Resource Tracker. Кейс в Step Logic
Turbo Resource Tracker. Кейс в Step LogicTurbo Resource Tracker. Кейс в Step Logic
Turbo Resource Tracker. Кейс в Step LogicVladimir Ivanov
 

Similar a Лекция 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
 

Más de Technopark

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

Más de 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
 
Лекция 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
 
Java осень 2014 занятие 7
Java осень 2014 занятие 7Java осень 2014 занятие 7
Java осень 2014 занятие 7
 

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