Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

17,173 views

Published on

Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"

Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD

Published in: Education
  • Be the first to comment

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

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

×