2017-06-24 1 views
0

Ich versuche JanusGraph für die Entwicklung auf meinem lokalen Rechner einzurichten. Mein Ziel ist es, eine ähnliche Konfiguration wie die cassandra remote server mode zu haben. Als Speicher-Backend möchte ich Cassandra verwenden und als Index-Backend wollte ich elasticsearch verwenden.Wie wird JanusGraph mit Docker für Cassandra und Elasticsearch eingerichtet?

Für beide verwende ich Docker Container (cassandra: h_t_t_p_s: //hub.docker.com/_/cassandra/ [Ich darf nicht 3 Links: /], elasticsearch).

Meine janusgraph-server.properties Datei sieht wie folgt aus:

gremlin.graph=org.janusgraph.core.JanusGraphFactory 
storage.backend=cassandra 
storage.hostname=127.0.0.1 
storage.cassandra.astyanax.cluster-name=cassandra_test_cluster 

index.search.backend=elasticsearch 
index.search.hostname=127.0.0.1 
index.search.port=9300 
index.search.elasticsearch.cluster-name=elasticsearch_test_cluster 

Starten des Gremlin-Server zu diesem Defekt führt:

0 [main] INFO org.apache.tinkerpop.gremlin.server.GremlinServer - 
     \,,,/ 
     (o o) 
-----oOOo-(3)-oOOo----- 

162 [main] INFO org.apache.tinkerpop.gremlin.server.GremlinServer - Configuring Gremlin Server from conf/gremlin-server/gremlin-server.yaml 
256 [main] INFO org.apache.tinkerpop.gremlin.server.util.MetricManager - Configured Metrics ConsoleReporter configured with report interval=180000ms 
263 [main] INFO org.apache.tinkerpop.gremlin.server.util.MetricManager - Configured Metrics CsvReporter configured with report interval=180000ms to fileName=/tmp/gremlin-server-metrics.csv 
343 [main] INFO org.apache.tinkerpop.gremlin.server.util.MetricManager - Configured Metrics JmxReporter configured with domain= and agentId= 
345 [main] INFO org.apache.tinkerpop.gremlin.server.util.MetricManager - Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics 
800 [main] INFO com.netflix.astyanax.connectionpool.impl.ConnectionPoolMBeanManager - Registering mbean: com.netflix.MonitoredResources:type=ASTYANAX,name=ClusterJanusGraphConnectionPool,ServiceType=connectionpool 
807 [main] INFO com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor - AddHost: 127.0.0.1 
884 [main] INFO com.netflix.astyanax.connectionpool.impl.ConnectionPoolMBeanManager - Registering mbean: com.netflix.MonitoredResources:type=ASTYANAX,name=KeyspaceJanusGraphConnectionPool,ServiceType=connectionpool 
884 [main] INFO com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor - AddHost: 127.0.0.1 
1070 [main] INFO org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration - Generated unique-instance-id=c0a8000424833-XXX-MacBook-Pro-local1 
1078 [main] INFO com.netflix.astyanax.connectionpool.impl.ConnectionPoolMBeanManager - Registering mbean: com.netflix.MonitoredResources:type=ASTYANAX,name=ClusterJanusGraphConnectionPool,ServiceType=connectionpool 
1079 [main] INFO com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor - AddHost: 127.0.0.1 
1082 [main] INFO com.netflix.astyanax.connectionpool.impl.ConnectionPoolMBeanManager - Registering mbean: com.netflix.MonitoredResources:type=ASTYANAX,name=KeyspaceJanusGraphConnectionPool,ServiceType=connectionpool 
1082 [main] INFO com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor - AddHost: 127.0.0.1 
1099 [main] INFO org.janusgraph.diskstorage.Backend - Configuring index [search] 
1179 [main] INFO org.elasticsearch.plugins - [General Orwell Taylor] loaded [], sites [] 
1655 [main] INFO org.janusgraph.diskstorage.es.ElasticSearchIndex - Configured remote host: 127.0.0.1 : 9300 
1738 [elasticsearch[General Orwell Taylor][generic][T#2]] INFO org.elasticsearch.client.transport - [General Orwell Taylor] failed to get local cluster state for [#transport#-1][XXX-MacBook-Pro.local][inet[/127.0.0.1:9300]], disconnecting... 
org.elasticsearch.transport.NodeDisconnectedException: [][inet[/127.0.0.1:9300]][cluster:monitor/state] disconnected 
1743 [main] WARN org.apache.tinkerpop.gremlin.server.GremlinServer - Graph [graph] configured at [conf/gremlin-server/janusgraph-server.properties] could not be instantiated and will not be available in Gremlin Server. GraphFactory message: GraphFactory could not instantiate this Graph implementation [class org.janusgraph.core.JanusGraphFactory] 
java.lang.RuntimeException: GraphFactory could not instantiate this Graph implementation [class org.janusgraph.core.JanusGraphFactory] 
    at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:82) 
    at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:70) 
    at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:104) 
    at org.apache.tinkerpop.gremlin.server.GraphManager.lambda$new$0(GraphManager.java:55) 
    at java.util.LinkedHashMap$LinkedEntrySet.forEach(LinkedHashMap.java:671) 
    at org.apache.tinkerpop.gremlin.server.GraphManager.<init>(GraphManager.java:53) 
    at org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor.<init>(ServerGremlinExecutor.java:83) 
    at org.apache.tinkerpop.gremlin.server.GremlinServer.<init>(GremlinServer.java:110) 
    at org.apache.tinkerpop.gremlin.server.GremlinServer.main(GremlinServer.java:344) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.tinkerpop.gremlin.structure.util.GraphFactory.open(GraphFactory.java:78) 
    ... 8 more 
Caused by: java.lang.IllegalArgumentException: Could not instantiate implementation: org.janusgraph.diskstorage.es.ElasticSearchIndex 
    at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:69) 
    at org.janusgraph.diskstorage.Backend.getImplementationClass(Backend.java:477) 
    at org.janusgraph.diskstorage.Backend.getIndexes(Backend.java:464) 
    at org.janusgraph.diskstorage.Backend.<init>(Backend.java:149) 
    at org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:1850) 
    at org.janusgraph.graphdb.database.StandardJanusGraph.<init>(StandardJanusGraph.java:134) 
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:107) 
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:87) 
    ... 13 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:58) 
    ... 20 more 
Caused by: org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] 
    at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:279) 
    at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:198) 
    at org.elasticsearch.client.transport.support.InternalTransportClusterAdminClient.execute(InternalTransportClusterAdminClient.java:86) 
    at org.elasticsearch.client.support.AbstractClusterAdminClient.health(AbstractClusterAdminClient.java:127) 
    at org.elasticsearch.action.admin.cluster.health.ClusterHealthRequestBuilder.doExecute(ClusterHealthRequestBuilder.java:92) 
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:91) 
    at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:65) 
    at org.janusgraph.diskstorage.es.ElasticSearchIndex.<init>(ElasticSearchIndex.java:215) 
    ... 25 more 
1745 [main] INFO org.apache.tinkerpop.gremlin.server.util.ServerGremlinExecutor - Initialized Gremlin thread pool. Threads in pool named with pattern gremlin-* 
2190 [main] INFO org.apache.tinkerpop.gremlin.groovy.engine.ScriptEngines - Loaded gremlin-groovy ScriptEngine 
2836 [main] WARN org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor - Could not initialize gremlin-groovy ScriptEngine with scripts/empty-sample.groovy as script could not be evaluated - javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: graph for class: Script1 

None of the configured nodes are available: [] warum? Was kann ich tun, um sie verfügbar zu machen?

Antwort

0

Haben Sie überprüft, ob ElasticSearch und Cassandra auf diesen Ports auf localhost ausgeführt werden? Wenn nicht, würde ich empfehlen, zu überprüfen, dass Sie diese Ports beim Starten Ihrer Container weiterleiten.

Ich würde auch empfehlen, die Protokolle für Cassandra und elasticsearch zu überprüfen und zu sehen, ob es irgendwelche Fehler in diesen gibt.

+1

Ich habe mir die ElasticSearch Logs angeschaut (Danke für den Hinweis) und herausgefunden, dass es einen Versionskonflikt gibt. Die JanusGraph-Version 0.1.1 verwendet ElasticSearch v1.x.x und die Docker-Grafik verwendet v5.x.x. Der aktuelle Master von JanusGraph unterstützt bereits ElasticSearch 5.x.x. Ich werde entweder zum Master wechseln oder Solr als Suchindex-Backend verwenden. – Tungdil

Verwandte Themen