Интересный вопрос. Я на том же пути.
Сначала ваш вопрос о MLlib. Я предполагаю, что вы имеете в виду Apache Spark MLlib, внедрение машинного обучения (ML) поверх Apache Spark.Итак, мой вывод: вы хотите запускать алгоритмы ML для таких целей, как кластеризация и классификация, используя данные в вашей базе данных графиков /Cassandra. Обратите внимание, что вы также можете использовать алгоритмы обработки графа, такие как Page Rank, упомянутые spidy, чтобы делать такие вещи, как кластеризация поверх вашей базы данных графа Titan/Cassandra. Другими словами: вам не нужна ML для кластеризации, когда отправной точкой является база данных графа.
Apache Spark MLlib, похоже, является будущим доказательством и широко поддерживается, их последние объявления касались новых алгоритмов ML, хотя Apache Mahout, еще один проект Apache ML, более зрел относительно количества поддерживаемых алгоритмов ML. Apache Mahout также использовал Apache Spark в качестве уровня хранения данных, поэтому поэтому я упоминаю его в этом сообщении. Apache Spark предлагает в дополнение к вычислениям в памяти упомянутый MLlib для машинного обучения Spark SQL, который похож на Hive на Spark, GraphX, который представляет собой систему обработки графиков, как объясняется spidy и Spark Streaming для обработки потоковых данных.
Я рассматриваю Apache Spark как логический уровень данных, представленный как RDD (Resilient Distributed Datasets) поверх слоев хранения, таких как Cassandra, Hadoop/Hcatalog и HBase. Apache Spark предлагает разъем для Cassandra. Обратите внимание, что RDD неизменяемы, вы не можете изменять данные с помощью Spark, вы можете обрабатывать и анализировать данные только в Spark. Что касается уровня логической памяти Apache Spark RDD: вы можете сравнить RDD как представление в старые добрые времена SQL, RDD дают вам представление, например, о таблице в Cassandra из HBase. Также обратите внимание, что Apache Spark предлагает API для трех сред разработки: Scala, Java и Python.
Apache Giraph также представляет собой набор инструментов обработки графиков, функциональный эквивалент Apache Spark GraphX. Apache Giraph использует Hadoop в качестве уровня хранения данных. Вы используете Titan/Cassandra, поэтому вы, вероятно, войдете в задачи переноса данных, когда вы выберите Apache Giraph в качестве своего решения. Во-вторых, вы начали свой пост с вопроса о ML, используя MLlib, и Apache Giraph не является решением ML.
Ваш вывод относительно Giraph и Gremlin неверен: они не совпадают, хотя оба используют базу данных графа. Giraph - это решение для обработки графа, как объяснено. Используя Giraph, вы можете выполнять алгоритмы анализа графа, такие как Page Rank, например. который имеет большинство последователей, тогда как Gremlin предназначен для перемещения, например. queery в базе данных графа, используя сложные отношения (ребра) между объектами (вершинами), получая наборы результатов вершин и свойств края.
Обратите внимание на файл read-cassandra.properties в стандартном дистрибутиве titan-1.0.0-hadoop1; он включает в себя «конфигурацию SparkGraphComputer», – arivero