Интересный вопрос. Я на том же пути.
Сначала ваш вопрос о MLlib. Я предполагаю, что вы имеете в виду Apache Spark MLlib, реализацию машинного обучения (ML) поверх Apache Spark. . Итак, мой вывод: вы хотите запускать алгоритмы машинного обучения для таких целей, как кластеризация и классификация, используя данные в вашем Titan< База данных графов на основе /a>/Cassandra. Обратите внимание, что вы также можете использовать алгоритмы обработки графов, такие как Page Rank, упомянутые spidy, для выполнения таких действий, как кластеризация поверх вашей базы данных графов Titan/Cassandra. Другими словами: вам не нужно ML для кластеризации, когда вашей отправной точкой является база данных графа.
Apache Spark MLlib, похоже, ориентирован на будущее и широко поддерживается, их последние объявления касались новых алгоритмов машинного обучения, хотя 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 для 3 сред разработки: Scala, Java и Python.
Apache Giraph также представляет собой набор инструментов для обработки графов, функционально эквивалентный Apache Spark GraphX. Apache Giraph использует Hadoop в качестве уровня хранения данных. Вы используете Titan/Cassandra, поэтому вы, вероятно, будете вводить задачи переноса данных, когда выберете Apache Giraph в качестве решения. Во-вторых, вы начали свой пост с вопроса об ML с использованием MLlib, а Apache Giraph не является решением ML.
Ваш вывод о Giraph и Gremlin неверен: они не одинаковы, хотя оба используют базу данных графа. Giraph — это решение для обработки графов, как объяснил spidy. Используя Giraph, вы можете выполнять алгоритмы анализа графов, такие как Page Rank, например. у которого больше всего подписчиков, в то время как Gremlin предназначен для обхода, например. запрашивать базу данных графа, используя сложные отношения (ребра) между объектами (вершинами), получая наборы результатов свойств вершин и ребер.
person
Luc
schedule
21.04.2015