Путать между хаупом, жирафом и твистером

Я работаю над большими данными, и мой проект состоит из графиков с текстовыми данными. Мне нужно рассчитать сходство между вершинами, вероятностью перехода, количеством связанных компонентов, вектором рейтинга страницы и случайным блужданием в одном проекте.

Я реализовал их в Hadoop, но я думаю, что это занимает больше времени (графы имеют 2500 узлов, 4000 ребер, 600 подключенных компонентов, что занимает 25 минут), так что может быть лучшим выбором для их реализации: apache hadoop или apache giraph или apache Twister?


person Nikhil Bhaware    schedule 29.05.2015    source источник
comment
Ваш вопрос не имеет никакого смысла. Если вы уже реализовали сходство между вершинами, вероятностью перехода, количеством связанных компонентов, вектором рейтинга страницы и случайным блужданием для ваших данных с помощью Hadoop (при условии, что MapReduce) и если все это занимает 25 минут, я бы сказал, что это не так уж плохо. Возможно, вам стоит попробовать отфильтровать и оптимизировать его дальше.   -  person Sambit Tripathy    schedule 29.05.2015


Ответы (2)


Поиск связанных компонентов, расчет рейтинга страницы и случайное блуждание являются примерами итерационных алгоритмов. Традиционная модель программирования Map-Reduce не подходит для итерационных алгоритмов (особенно графовых). Причина в том, что в каждой итерации map-reduce все данные должны передаваться от преобразователей к редьюсерам (например, высокий ввод-вывод и сеть). В отличие от этого, Giraph идеально подходит для таких алгоритмов. В giraph все данные разбиваются и загружаются один раз и на каждой итерации (супершаге) по машинам передаются только результат.

person Masoud Sagharichian    schedule 30.05.2015

Хотя с тех пор, как этот вопрос был опубликован, прошло некоторое время, я подумал о том, чтобы поделиться своим опытом в этой теме. Что касается вашего беспокойства по поводу времени обработки, это зависит от того, сколько вы обрабатываете свои данные? Вы выполняете все вышеуказанные расчеты в одном задании MR или в нескольких заданиях MR в одной и той же программе? Если да, то вполне возможно, что это может занять время. Кроме того, сколько итераций вы используете для расчета рейтинга страницы? Каков размер вашего кластера?

Я бы согласился с ответом Масуда о выборе Giraph для обработки графов и хотел бы добавить больше. Есть несколько причин, по которым обработка графов в модели программирования Map Reduce затруднена.

  1. Вам нужно будет разбить графики, так как они не поместятся на одной машине. (Диапазон разделения для объединения районов, например, если у вас есть узлы/пользователи из 5 разных университетов, то, скорее всего, у вас будут все узлы из одного университета на одной машине)

  2. Возможно, вам потребуется выполнить репликацию ваших данных.

  3. Сокращение обмена данными между разделами.

Возвращаясь к вашей второй проблеме, не имея никаких знаний об Apache Twister, я бы выбрал Apache Giraph, поскольку он специально создан для алгоритмов крупномасштабного распределенного графа, где инфраструктура обрабатывает все возникающие тяжелые потребности в обработке. Это в основном из-за особенностей алгоритмов графов, таких как обход графа, передача информации по его краям другим узлам и т. д.

Недавно я использовал Giraph для одного из своих проектов по работе с большими данными, и это было отличное обучение. Вы должны изучить это, если я не отвечаю слишком поздно.

Подробное объяснение можно найти на этих слайдах.

person user3626602    schedule 04.07.2015