GraphML вход в Титан
Я новичок в мире Титана. Я хотел бы импортировать данные, хранящиеся в файле GraphML, в базу данных.
- Я скачал titan-1.0.0-hadoop1
- Я бегу./titan.sh
- Я бегу./gremlin.sh
В консоли Gremlin я написал:
:remote connect tinkerpop.server ../conf/remote.yaml
Далее я написал:
graph.io(IoCore.graphml()).readGraph("/tmp/file.graphml")
Я получил сообщение: Нет такого свойства: graph для класса: groovysh_evaluate
Не могли бы вы помочь мне?
ИМО самые интересные логи из gremlin-server.log
:
84 [главная] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.server.GremlinServer - Настройка сервера Gremlin из файла conf/gremlin-server/gremlin-server.yaml 158 [основная] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.server.util.MetricManager - Сконфигурированные метрики ConsoleReporter, настроенные с интервалом отчета =180000 мс 160 [главная] INFO org.apache.tinkerpop.gremlin.server.util.MetricManager - Сконфигурированные метрики CsvReporter, настроенные с интервалом отчета =180000 мс для fileName=/tmp/gremlin-server-metrics.csv 196 [main] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.server.util.MetricManager - Сконфигурированные метрики JmxReporter, настроенный с помощью domain= и agentId= 197 [main] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.server.util.MetricManager - Configured Метрики Slf4jReporter, настроенные с интервалом =180000 мс, и loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics 1111 [main] WARN org.apache.tinkerpop.gremlin.server.GremlinServer - график [граф], настроенный в [conf/grem -server/titan-berkeleyje-server.properties] мог бы не будет создан и не будет доступен в Gremlin Server. Сообщение GraphFactory: GraphFactory не может создать экземпляр этой реализации Graph [класс com.thinkaurelius.titan.core.TitanFactory] java.lang.RuntimeException: GraphFactory не может создать экземпляр этой реализации Graph [класс com.thinkaurelius.titan.core.TitanFactory] ... 1113 [main] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor - Инициализированный пул потоков Gremlin. Потоки в пуле, названные шаблоном gremlin- * 1499 [main] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.groovy.engine.ScriptEngines - загруженный nashorn ScriptEngine 2044 [main] ИНФОРМАЦИЯ org.apache.tinkerpop.gremlin.groovy.engine.ScriptEngines - Загруженный gremlin-groovy ScriptEngine 2488 [main] ПРЕДУПРЕЖДЕНИЕ org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor - Не удалось инициализировать gremlin-groovy ScriptEngine со сценариями /empty-sample.groovy, так как сценарий не может быть оценен - javax.script.ScriptException: groovy.lang.MissingPropertyException: Нет такого свойства: graph для класса: Script1 2488 [main] INFO org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor - Инициализированный GremlinExecutor и настроенные ScriptEngines. 2581 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Не удалось создать экземпляр настроенного класса сериализатора - org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0 - он не будет доступен. Нет графа с именем [graph], настроенного для использования в параметре useMapperFromGraph 2582 [main] INFO org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Настроенное приложение /vnd.gremlin-v1.0+gryo-stringd с org. apache.tinkerpop.gremlin.driver. не будет доступен Нет графа с именем [graph], настроенного для использования в параметре useMapperFromGraph 2720 [main] WARN org.apache.tinkerpop.gremlin.server.AbstractChannelizer - Не удалось создать экземпляр настроенного класса сериализатора - org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 - он не будет доступен. Нет графа с именем [graph], настроенного для использования в настройке useMapperFromGraph...
2 ответа
Вам нужно создать график. graph
Ключевое слово нигде не объявлено в вашем скрипте.
Это кратко описано в документации к серверу Titan, но об этом легко забыть.
Команда:> - это команда submit, которая отправляет Gremlin по этой линии на текущий активный пульт.
На шаге 5 вам необходимо отправить команду сценария на удаленный сервер. В Gremlin Console вы можете сделать это, запустив команду с :submit
или же :>
для краткости.
:> graph.io(IoCore.graphml()).readGraph("/tmp/file.graphml")
Если вы не отправите сценарий на удаленный сервер, консоль Gremlin попытается обработать сценарий в JVM консоли. graph
не определяется локально, и поэтому вы увидели ошибку в шаге 6.
Обновление: на основе вашего gremlin-server.log
похоже, проблема в том, что пользователь, который запускает Titan с ./bin/titan.sh start
не имеет соответствующих прав доступа к файлу для создания каталога (db/berkeley
) используется конфигурацией графа по умолчанию (titan-berkeleyje-server.properties
). Попробуйте обновить права доступа к файлу на $TITAN_HOME
каталог.