Какое программное обеспечение я должен использовать для распределенного хранения и обработки графиков? - PullRequest
0 голосов
/ 28 мая 2018

Проблема в двух словах:

  1. Существует огромное количество входных данных в формате JSON.Как сейчас, это около 1 ТБ, но оно будет расти.Мне сказали, что у нас будет кластер.
  2. Мне нужно обработать эти данные, сделать из них график и сохранить его в базе данных.Поэтому каждый раз, когда я получаю новый JSON, мне нужно пройти весь граф в базе данных, чтобы завершить его.
  3. Позже у меня будет тонкий клиент в браузере, где я буду визуализироватьнекоторые части графика, поиск в нем, обход его, некоторая фильтрация и т. д. Таким образом, эта система не требует большой нагрузки, просто много обработки и данных.

У меня нет опыта в распределеннойсистемы, базы данных NoSQL и другие "большие данные".Во время моего небольшого исследования я обнаружил, что их слишком много, и сейчас я просто потерян.

То, что у меня на доске в данный момент:

  1. GraphX ​​(GraphFrames) Apache Spark для распределенных вычислений поверх некоторого хранилища (HDFS, Cassanda, HBase, ...) и процессора (Yarn, Mesos, Kubernetes, ...).
  2. Некоторая графовая база данных.Я думаю, что хорошо использовать язык графовых запросов, такой как Cipher в neo4j или Gremlin в JanusGraph / TitanDB.Neo4j хорош, но у него кластеризация только в EE и мне нужно что-то с открытым исходным кодом.Так что теперь я думаю о последних, которые по умолчанию имеют Gremlin + Cassandra + Elasticsearch.
  3. Может быть, мне не нужно ничего из этого, просто сохраните граф как матрицу смежности в некоторых RDBMS, таких как Postgres, и этоэто.
  4. Не знаю, нужен ли мне Спарк в 2 или 3. Нужен ли он вообще?

Мой начальник сказал мне проверить Elasticsearch.Но я думаю, что могу использовать его только в качестве дополнительного полнотекстового поискового движка.

Спасибо за любой ответ!

1 Ответ

0 голосов
/ 29 мая 2018

Давайте начнем с пары дополнительных вопросов:

  1. 1Tb - это не большой объем данных, если он также (близок) к общему объему данных.Это ?Сколько новых данных вы ожидаете и с какой скоростью они будут поступать.
  2. Зачем вам проходить по всему графику , если каждый JSON просто ссылается на небольшую часть графика?Это либо новые данные, либо обновление существующих данных (которые вы должны быть в состоянии точно определить), не так ли?
  3. Да, именно так вы используете графическую базу данных ...

Остальное зависит от вашего ответа на 1).Если мы говорим о количестве IOT прибывающих событий (десятки тысяч в секунду ... устойчивых), вам может понадобиться решение большие данные .Если нет, то ваша основная проблема в том, чтобы выполнить начальную загрузку и оттуда легко пройти; -).

Надеюсь, это поможет.

С уважением, Том

...