Граф процесса Apache giraph с пользовательским алгоритмом

У меня есть собственный алгоритм обработки графика, который принимает текстовый файл в качестве входных данных. Поскольку это крупномасштабный график, я хочу реализовать его в рамках Apache Giraph. Я провел много исследований, но я до сих пор не уверен, что я на правильном пути.

Я читаю файл .csv, который содержит данные графика, и с помощью синтаксического анализатора я конвертирую его в файл txt и загружаю в файловую систему HDFS Hadoop.

Я прочитал пример SimpleShortestPathsVertex из руководства по быстрому запуску apache и вижу, что он обрабатывает данные из файла в HDFS, используя файл jar с зависимостями.

Моя проблема в том, что я еще не понял, как мне добавить свой алгоритм в фреймворк apache giraph и запустить процесс графа. Могу ли я добавить свой алгоритм в структуру apache с помощью eclipse и изменить его оттуда или есть какой-либо другой способ?

Благодарю вас!


person sotos14    schedule 21.02.2013    source источник


Ответы (1)


Посмотрите здесь: https://cwiki.apache.org/confluence/display/GIRAPH/Shortest+Paths+Example

Где вы можете запустить этот пример? Если да. Ознакомьтесь с различными записываемыми форматами Hadoop! В противном случае их трудно использовать для вашего алгоритма.

Все вычисления, касающиеся графа, выполняются в функции calculate(). (Если вы более продвинуты, загляните в workerContext preSuperstep и Aggregators!) Вы можете изменить пример, но как только вы начнете использовать другие типы данных, вам придется изменить VertexReader и VertexWriter.

Если вы имеете в виду конкретный алгоритм, решите, что вам нужно для вычисления, и укажите макет вашего входного файла. Затем адаптируйте VertexReader и -Writer. И затем, наконец, начните реализацию вашей функции calculate()!

Конечно, вы можете использовать затмение! Просто укажите ссылку на банку Giraph (для меня это «giraph-0.1-jar-with-dependencies.jar») и начните программировать. Все, что вам нужно, это экземпляр этих файлов, специфичных для вашего алгоритма:

  • YourGiraphJob (файл, запускающий задание Hadoop/Giraph)
  • YourVertex (указывает вашу функцию calculate(), выполняемую для каждой вершины)
  • YourInputFormat (указание доступных для записи форматов YourReader)
  • YourOutputFormat (указание доступных для записи форматов YourWriter)
  • YourReader (указывает, как ваш inputFile преобразуется, например, что для каждой строки вершина может быть инициализирована с использованием заданной информации)
  • YourWriter (указывает, как ваш outputFile генерируется из вершин)

(необязательно WorkerContext, если вы хотите использовать агрегаторы.)

Просто оформите заказ: http://giraph.apache.org/source-repository.html с помощью eclipse, и у вас должен быть код, включающий пример приложения, с которым вы можете поиграться!

person tidel    schedule 28.02.2013