Как запустить Titan graph server и соединиться с gremlin?

я играл с Titan graph server какое-то время. И я чувствую, что, несмотря на обширную документацию, есть недостаток начало работы с нуля учебник.

моя конечная цель состоит в том, чтобы Титан работает на Кассандре и запрос с StartTheShift/thunderdome.

я видел несколько способов запуска Titan:

Использование Rexster

С этот ссылка, я смог запустить сервер titan со следующими шагами:

  1. скачать rexster-server 2.3
  2. скачать 0.3.0 Титан
  3. скопировать все файлы из titan-all-0.3.0/libs to rexster-server-2.3.0/ext/titan
  4. редактировать 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.

  1. запустить сервер с ./bin/rexster.sh -s -c rexster.xml
  2. загрузите консоль rexster и запустите ее с помощью bin/rexster-console.sh
  3. теперь вы можете подключиться к графику с помощью g = rexster.getGraph("geograph")

проблема с этим методом заключается в том, что вы подключены через rexster, а не gremlin, поэтому у вас нет автозаполнения. Преимущество в том, что вы можете назвать свою базу данных (здесь geograph).

использование сервера Titan с cassandra

  1. запустите сервер с помощью ./bin/titan.sh config/titan-server-rexster.xml config/titan-server-cassandra.properties
  2. создайте файл с именем cassandra.local С

    storage.backend=cassandrathrift
    storage.hostname=127.0.0.1
    
  3. запустите titan gremlin и соединитесь с g = TitanFactory.open("cassandra-es.local")

это прекрасно работает.

использование сервера titan с BerkeleyDB

С этой ссылке:

  1. скачать 0.3.0 Титан
  2. запустите сервер с помощью ./bin/titan.sh config/titan-server-rexster.xml config/titan-server-berkeleydb.properties
  3. запуск titan gremlin: ./bin/gremlin.sh
  4. но как только я попытаюсь подключиться к базе данных (графику) в gremlin с g = TitanFactory.open('graph') он создает новую базу данных под названием graph в каталоге, в котором я нахожусь. Если я выполняю это, где мой каталог (заполнен), я получаю:

    не удалось создать экземпляр реализации: com.thinkaurelius.титан.diskstorage.berkeleyje.BerkeleyJEStoreManager

может кто-нибудь прояснить этот процесс и сказать мне, что я делаю неправильный. Спасибо

3 ответов


согласно документации TitanFactory.open() принимает имя файла конфигурации или имя каталога для открытия или создания базы данных.

если то, что говорит Стивен, правда, было бы два способа подключения к базе данных с бэкэндом BerkelyDB:

  1. запустите базу данных через bin/titan.sh. Подключитесь к базе данных через консоль rexster.

  2. не запускайте базу данных с помощью 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.