Как запустить сервер графов Titan и подключиться к gremlin?
Я играл с сервером графов Titan некоторое время. И я чувствую, что, несмотря на обширную документацию, отсутствует учебник "Начало работы с нуля".
Моя конечная цель - запустить titan на cassandra и запросить StartTheShift/thunderdome.
Я видел несколько способов запуска Titan:
Использование Rexster
от эта ссылка, я смог запустить сервер титана со следующими шагами:
- скачать rexster-server 2.3
- скачать titan 0.3.0
- скопировать все файлы с
titan-all-0.3.0/libs
в rexster-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>
для cassandra db.
- запустите сервер с помощью
./bin/rexster.sh -s -c rexster.xml
- Загрузите консоль rexster и запустите ее с помощью
bin/rexster-console.sh
- теперь вы можете подключиться к своему графику с помощью
g = rexster.getGraph("geograph")
Проблема с этим методом заключается в том, что вы подключены через rexster, а не gremlin, поэтому у вас нет автозаполнения. Преимущество состоит в том, что вы можете назвать свою базу данных (здесь география).
Использование сервера 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")
это прекрасно работает.
Использование сервера титана с BerkeleyDB
От эта ссылка:
- скачать titan 0.3.0
- запустите сервер с помощью
./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
- запускать титан-гремлин:
./bin/gremlin.sh
-
но как только я пытаюсь подключиться к базе данных (графа) в gremlin с помощью g = TitanFactory.open('graph')
, он создает новую базу данных, называемую графом в каталоге, в котором я находится. Если я выполняю это, когда мой каталог (заполненный) Я получаю:
Не удалось создать экземпляр реализации: com.thinkaurelius.titan.diskstorage.berkeleyje.BerkeleyJEStoreManager
Может кто-то прояснить этот процесс и рассказать мне, что я делаю неправильно.
Благодаря
Ответы
Ответ 1
В соответствии с документацией TitanFactory.open()
выполняется либо имя файла конфигурации, либо имя каталога для открытия или создания базы данных.
Если то, что говорит Стивен, верно, было бы два способа подключения к базе данных с бэкэнд BerkelyDB:
-
Запустите базу данных с помощью bin/titan.sh
. Подключитесь к базе данных через консоль rexster.
-
НЕ запускайте базу данных с помощью bin/titan.sh
. Вместо этого используйте консоль gremlin: TitanFactory.open("database-location")
. Это откроет базу данных. Но у этого нет сервера rexster. Ничто другое не сможет получить доступ к базе данных, кроме консоли gremlin.
Ответ 2
С Titan Server/BerkeleyDB вы должны попытаться подключиться через RexPro или REST (Thunderdome должен подключаться через REST). Вы не можете открыть другое подключение на базе Titan к BerkeleyDB, поскольку Titan Server уже владеет этим.
Это отличается от Titan Server/Cassandra, где происходит соединение через RexPro или REST, но также и через встроенную Cassandra, которая обеспечивает возможность подключения к транзакции через TitanFactory.open('graph')
Ответ 3
Также можно получить доступ к Titan из python, используя следующие две библиотеки:
https://github.com/StartTheShift/thunderdome
и
https://github.com/espeed/bulbs.
Thunderdome в настоящее время является Titan-специфичным, а луковицы являются универсальными. A (возможно, предвзятое) сравнение между Thunderdome и Bulbs дано в Thunderdome wiki: https://github.com/StartTheShift/thunderdome/wiki/Bulbs-VS-thunderdome
Если вам нужна автозаполнение, вы можете использовать iPython и включить автозаполнение в вашей конфигурации iPython.