Как запустить сервер графов 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.

  1. запустите сервер с помощью ./bin/rexster.sh -s -c rexster.xml
  2. Загрузите консоль rexster и запустите ее с помощью bin/rexster-console.sh
  3. теперь вы можете подключиться к своему графику с помощью 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.