Как запустить Titan graph server и соединиться с gremlin?
я играл с Titan graph server какое-то время. И я чувствую, что, несмотря на обширную документацию, есть недостаток начало работы с нуля учебник.
моя конечная цель состоит в том, чтобы Титан работает на Кассандре и запрос с StartTheShift/thunderdome.
я видел несколько способов запуска Titan:
Использование Rexster
С этот ссылка, я смог запустить сервер titan со следующими шагами:
- скачать rexster-server 2.3
- скачать 0.3.0 Титан
- скопировать все файлы из
titan-all-0.3.0/libs
torexster-server-2.3.0/ext/titan
-
редактировать
rexster-server-2.3.0/rexster.xml
и добавить (между a):<graph> <graph-name>geograph</graph-name> <graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type> <graph-read-only>false</graph-read-only> <graph-location>/Users/vallette/projects/DATA/gdb</graph-location> <properties> <storage.backend>local</storage.backend> <storage.directory>/Users/vallette/projects/DATA/gdb</storage.directory> <buffer-size>100</buffer-size> </properties> <extensions> <allows> <allow>tp:gremlin</allow> </allows> </extensions> </graph>
для berkeleydb или:
<graph>
<graph-name>geograph</graph-name>
<graph-type>com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration</graph-type>
<graph-location></graph-location>
<graph-read-only>false</graph-read-only>
<properties>
<storage.backend>cassandra</storage.backend>
<storage.hostname>77.77.77.77</storage.hostname>
</properties>
<extensions>
<allows>
<allow>tp:gremlin</allow>
</allows>
</extensions>
</graph>
для Кассандры db.
- запустить сервер с
./bin/rexster.sh -s -c rexster.xml
- загрузите консоль rexster и запустите ее с помощью
bin/rexster-console.sh
- теперь вы можете подключиться к графику с помощью
g = rexster.getGraph("geograph")
проблема с этим методом заключается в том, что вы подключены через rexster, а не gremlin, поэтому у вас нет автозаполнения. Преимущество в том, что вы можете назвать свою базу данных (здесь geograph).
использование сервера Titan с cassandra
- запустите сервер с помощью
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
-
создайте файл с именем
cassandra.local
Сstorage.backend=cassandrathrift storage.hostname=127.0.0.1
запустите titan gremlin и соединитесь с
g = TitanFactory.open("cassandra-es.local")
это прекрасно работает.
использование сервера titan с BerkeleyDB
С этой ссылке:
- скачать 0.3.0 Титан
- запустите сервер с помощью
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
- запуск titan gremlin:
./bin/gremlin.sh
-
но как только я попытаюсь подключиться к базе данных (графику) в gremlin с
g = TitanFactory.open('graph')
он создает новую базу данных под названием graph в каталоге, в котором я нахожусь. Если я выполняю это, где мой каталог (заполнен), я получаю:не удалось создать экземпляр реализации: com.thinkaurelius.титан.diskstorage.berkeleyje.BerkeleyJEStoreManager
может кто-нибудь прояснить этот процесс и сказать мне, что я делаю неправильный. Спасибо
3 ответов
согласно документации TitanFactory.open()
принимает имя файла конфигурации или имя каталога для открытия или создания базы данных.
если то, что говорит Стивен, правда, было бы два способа подключения к базе данных с бэкэндом BerkelyDB:
запустите базу данных через
bin/titan.sh
. Подключитесь к базе данных через консоль rexster.не запускайте базу данных с помощью
bin/titan.sh
. Используйте gremlin консоль вместо этого:TitanFactory.open("database-location")
. Это откроет базу данных. Но у этого нет сервера rexster. Ничто другое не сможет получить доступ к базе данных, но консоль гремлин.
С Titan Server / BerkeleyDB вы должны попытаться подключиться через RexPro или REST (Thunderdome должен подключиться через REST). Вы не можете открыть другое соединение на основе Titan с BerkeleyDB, поскольку Titan Server уже владеет этим.
это отличается от Titan Server / Cassandra, где подключение происходит через RexPro или REST, но также через встроенную Кассандру, которая позволяет подключаться через бережливость через TitanFactory.open('graph')
также можно получить доступ к Titan из python с помощью этих двух библиотек:
https://github.com/StartTheShift/thunderdome
и
https://github.com/espeed/bulbs.
дурдом-это Титан, а шарики-это универсальный. (Возможно, предвзятое) сравнение между Thunderdome и лампочками приведено в wiki Thunderdome: https://github.com/StartTheShift/thunderdome/wiki/Bulbs-VS-thunderdomeЕсли вам нужно автозаполнение, вы можете использовать iPython и включить автозаполнение в конфигурации iPython.