2013-10-31 62 views
11

我想建立一個完全基本泰坦Rexster卡桑德拉實例,但我似乎無法打破代碼。我現在已經嘗試了很多東西來實現它的功能,但我似乎無法使其發揮作用。不管我讀了多少,我都無法正確設置它。如何真正建立基本的Titan + Rexster + Cassandra?

我想與幾個指標,包括彈性搜索嵌入模式下運行的泰坦rexster-卡桑德拉實例。所有的東西后,我看了看來,這是當我下載泰坦服務器0.4.0我應該得到什麼,運行bin/titan.sh start命令。這也啓動服務器。但是:當我嘗試爲此添加索引時,沒有任何反應。當我嘗試通過RexPro填充它時,沒有添加任何內容。

當我重新啓動我的圖形走了服務器。當我去http://localhost:8182/graphs時,它不再在Rexster圖表列表中。所以看起來我的數據不會持續存在,或者至少對於rexster而言是消失的。

我覺得我已經嘗試了關於一切得到這個工作:

  • 改變.properties包括搜索索引像這樣:storrage.index.search.backend=elasticsearch ...
  • 更改.properties文件(全)使用cassandra,embeddedcassandracassandrathrift for storage.backend
  • 嘗試啓動服務器,使用this question中指示的屬性指向特定的配置文件。
  • 我已經通過titan.sh文件看,看看到底發生了什麼,然後去這些指定的配置文件,並看看,看看發生的事情有,在我已經嘗試了很多東西,如上述。

我已經爲此掙扎了一個多星期,可能兩個甚至更多,我開始失去信心。我正在考慮回到neo4j,但不幸的是我真的需要泰坦的可擴展性。但是,如果我不能得到它的工作,那麼這是沒用的。我覺得可能有一些微不足道的,但是我不知道或者忘記的重要事情。

有沒有人知道有一個從絕對從頭開始(如啓動一個新的虛擬機或其他東西),或接近它的指導,以獲得運行彈性搜索索引的泰坦rexster-cassandra實例?或者,如果你真棒,提供這樣的指導?我覺得失去了:(


要點:

的Ubuntu 12.04(也試過13.10相同的問題。)

泰坦0.4.0

目標:要獲得持久性,使用彈性搜索索引頂點名稱屬性,並獲得具有權重的邊。

紅寶石連接rexpro這樣的:

require "rexpro" #the "rexpro" gem 
rexpro_client = Rexpro::Client.new(host: 'the.ip.of.my.machine.running.rexster', port: 8184) 
results = rexpro_client.execute("g.getClass()", graph_name: "graph").results 
#=> returns the following: class com.thinkaurelius.titan.graphdb.database.StandardTitanGraph 

我遵循的建立在DB不持續的問題的步驟:

  • 在WindowsAzure:創建一個新的小( 1核心,1.75GB RAM)虛擬機Ubuntu 12.04 LTS名稱vmname(或其他)。
  • 登錄到該虛擬機與SSH何時準備好(ssh [email protected] -p 22
  • 運行:sudo apt-get update
  • 運行:sudo apt-get install openjdk-7-jdk openjdk-7-jre p7zip-full
  • 運行:mkdir /home/azureuser/Downloads
  • 運行:wget -O /home/azureuser/Downloads/titan-server-0.4.0.zip "http://s3.thinkaurelius.com/downloads/titan/titan-server-0.4.0.zip"
  • 運行:cd /home/azureuser/Downloads/
  • 運行:7z x titan-server-0.4.0.zip
  • 運行:cd /home/azureuser/Downloads/titan-server-0.4.0
  • 運行:sudo bin/titan.sh -c cassandra-es start
  • 運行:sudo bin/rexster-console.sh
  • 在rexster控制檯運行:g = rexster.getGraph("graph"),返回titangraph[cassandra:null]
  • CTRL-C出rexster consloe的
  • 運行:sudo bin/titan.sh stop
  • 運行:sudo bin/titan.sh -c cassandra-es start
  • 運行:sudo bin/rexster-console.sh
  • 在rexster控制檯中,運行:g = rexster.getGraph("graph")現在這將返回null,而不是一個圖形。

似乎有這裏有一些問題,關閉和啓動againt時:

在關機

[WARN] ShutdownManager - ShutdownListener JVM Shutdown Hook Remover threw an exception, continuing with shutdown 

在啓動#2

Starting Cassandra... 
xss = -Dtitan.logdir=/home/azureuser/Downloads/titan-server-0.4.0/log -ea -javaagent:/home/azureuser/Downloads/titan-server-0.4.0/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms840M -Xmx840M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss256k 
Starting Titan + Rexster... 
INFO 12:00:12,780 Logging initialized 
INFO 12:00:12,805 JVM vendor/version: OpenJDK 64-Bit Server VM/1.7.0_25 
INFO 12:00:12,806 Heap size: 870318080/870318080 
INFO 12:00:12,806 Classpath: /home/azureuser/Downloads/titan-server-0.4.0/conf:/home/azureuser/Downloads/titan-server-0.4.0/build/classes/main:/home/azureuser/Downloads/titan-server-0.4.0/build/classes/thrift:/home/azureuser/Downloads/titan-server-0.4.0/lib/activation-... 
INFO 12:00:13,397 JNA mlockall successful 
INFO 12:00:13,419 Loading settings from file:/home/azureuser/Downloads/titan-server-0.4.0/conf/cassandra.yaml 
INFO 12:00:14,093 DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap 
INFO 12:00:14,093 disk_failure_policy is stop 
INFO 12:00:14,101 Global memtable threshold is enabled at 276MB 
INFO 12:00:14,878 Initializing key cache with capacity of 41 MBs. 
INFO 12:00:14,892 Scheduling key cache save to each 14400 seconds (going to save all keys). 
INFO 12:00:14,894 Initializing row cache with capacity of 0 MBs and provider org.apache.cassandra.cache.SerializingCacheProvider 
INFO 12:00:14,955 Scheduling row cache save to each 0 seconds (going to save all keys). 
INFO 12:00:15,273 Opening db/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ib-2 (167 bytes) 
INFO 12:00:15,347 Opening db/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ib-1 (264 bytes) 
INFO 12:00:15,376 Opening db/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-ib-11 (717 bytes) 
INFO 12:00:15,387 Opening db/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-ib-9 (6183 bytes) 
INFO 12:00:15,392 Opening db/cassandra/data/system/schema_columnfamilies/system-schema_columnfamilies-ib-10 (687 bytes) 
INFO 12:00:15,411 Opening db/cassandra/data/system/schema_columns/system-schema_columns-ib-2 (209 bytes) 
INFO 12:00:15,416 Opening db/cassandra/data/system/schema_columns/system-schema_columns-ib-1 (3771 bytes) 
INFO 12:00:15,450 Opening db/cassandra/data/system/local/system-local-ib-3 (109 bytes) 
INFO 12:00:15,455 Opening db/cassandra/data/system/local/system-local-ib-2 (120 bytes) 
INFO 12:00:15,521 Opening db/cassandra/data/system/local/system-local-ib-1 (356 bytes) 
Processes forked. Setup may take some time. 
Run bin/rexster-console.sh to connect. 
[email protected]:~/Downloads/titan-server-0.4.0$ INFO 12:00:16,705 completed pre-loading (8 keys) key cache. 
INFO 12:00:16,777 Replaying db/cassandra/commitlog/CommitLog-2-1383479792488.log, db/cassandra/commitlog/CommitLog-2-1383479792489.log 
INFO 12:00:16,802 Replaying db/cassandra/commitlog/CommitLog-2-1383479792488.log 
INFO 12:00:17,178 Finished reading db/cassandra/commitlog/CommitLog-2-1383479792488.log 
INFO 12:00:17,179 Replaying db/cassandra/commitlog/CommitLog-2-1383479792489.log 
INFO 12:00:17,179 Finished reading db/cassandra/commitlog/CommitLog-2-1383479792489.log 
INFO 12:00:17,191 Enqueuing flush of [email protected](52/52 serialized/live bytes, 22 ops) 
INFO 12:00:17,194 Writing [email protected](52/52 serialized/live bytes, 22 ops) 
INFO 12:00:17,204 Enqueuing flush of [email protected](28/28 serialized/live bytes, 2 ops) 
INFO 12:00:17,211 Enqueuing flush of [email protected](26/26 serialized/live bytes, 1 ops) 
INFO 12:00:17,416 Completed flushing db/cassandra/data/system/local/system-local-ib-4-Data.db (84 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=142) 
INFO 12:00:17,480 Writing [email protected](28/28 serialized/live bytes, 2 ops) 
INFO 12:00:17,626 Completed flushing db/cassandra/data/system_auth/users/system_auth-users-ib-1-Data.db (64 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=142) 
INFO 12:00:17,630 Writing [email protected](26/26 serialized/live bytes, 1 ops) 
INFO 12:00:17,776 Completed flushing db/cassandra/data/titan/system_properties/titan-system_properties-ib-1-Data.db (64 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=142) 
INFO 12:00:17,780 Log replay complete, 12 replayed mutations 
INFO 12:00:17,787 Fixing timestamps of schema ColumnFamily schema_keyspaces... 
INFO 12:00:17,864 Enqueuing flush of [email protected](65/65 serialized/live bytes, 2 ops) 
INFO 12:00:17,872 Writing [email protected](65/65 serialized/live bytes, 2 ops) 
[INFO] Application - .:Welcome to Rexster:. 
INFO 12:00:18,027 Completed flushing db/cassandra/data/system/local/system-local-ib-5-Data.db (97 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=297) 
INFO 12:00:18,036 Enqueuing flush of [email protected](527/527 serialized/live bytes, 12 ops) 
INFO 12:00:18,038 Writing [email protected](527/527 serialized/live bytes, 12 ops) 
[INFO] RexsterProperties - Using [/home/azureuser/Downloads/titan-server-0.4.0/conf/rexster-cassandra-es.xml] as configuration source. 
INFO 12:00:18,179 Completed flushing db/cassandra/data/system/schema_keyspaces/system-schema_keyspaces-ib-3-Data.db (257 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=1227) 
[INFO] Application - Rexster is watching [/home/azureuser/Downloads/titan-server-0.4.0/conf/rexster-cassandra-es.xml] for change. 
[WARN] AstyanaxStoreManager - Couldn't set custom Thrift Frame Size property, use 'cassandrathrift' instead. 
INFO 12:00:18,904 Cassandra version: 1.2.2 
INFO 12:00:18,906 Thrift API version: 19.35.0 
INFO 12:00:18,906 CQL supported versions: 2.0.0,3.0.1 (default: 3.0.1) 
[INFO] ConnectionPoolMBeanManager - Registering mbean: com.netflix.MonitoredResources:type=ASTYANAX,name=ClusterTitanConnectionPool,ServiceType=connectionpool 
[INFO] CountingConnectionPoolMonitor - AddHost: 127.0.0.1 
INFO 12:00:19,087 Loading persisted ring state 
INFO 12:00:19,097 Starting up server gossip 
INFO 12:00:19,162 Enqueuing flush of [email protected](251/251 serialized/live bytes, 9 ops) 
INFO 12:00:19,169 Writing [email protected](251/251 serialized/live bytes, 9 ops) 
INFO 12:00:19,314 Completed flushing db/cassandra/data/system/local/system-local-ib-6-Data.db (238 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=51470) 
INFO 12:00:19,369 Compacting [SSTableReader(path='db/cassandra/data/system/local/system-local-ib-3-Data.db'), SSTableReader(path='db/cassandra/data/system/local/system-local-ib-2-Data.db'), SSTableReader(path='db/cassandra/data/system/local/system-local-ib-4-Data.db'), SSTableReader(path='db/cassandra/data/system/local/system-local-ib-1-Data.db'), SSTableReader(path='db/cassandra/data/system/local/system-local-ib-6-Data.db'), SSTableReader(path='db/cassandra/data/system/local/system-local-ib-5-Data.db')] 
INFO 12:00:19,479 Starting Messaging Service on port 7000 
INFO 12:00:19,585 Using saved token [7398637255000140098] 
INFO 12:00:19,588 Enqueuing flush of [email protected](84/84 serialized/live bytes, 4 ops) 
INFO 12:00:19,588 Writing [email protected](84/84 serialized/live bytes, 4 ops) 
INFO 12:00:19,666 Compacted 6 sstables to [db/cassandra/data/system/local/system-local-ib-7,]. 1,004 bytes to 496 (~49% of original) in 286ms = 0.001654MB/s. 6 total rows, 1 unique. Row merge counts were {1:0, 2:0, 3:0, 4:0, 5:0, 6:1, } 
INFO 12:00:19,796 Completed flushing db/cassandra/data/system/local/system-local-ib-8-Data.db (120 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=51745) 
INFO 12:00:19,810 Enqueuing flush of [email protected](50/50 serialized/live bytes, 2 ops) 
INFO 12:00:19,812 Writing [email protected](50/50 serialized/live bytes, 2 ops) 
INFO 12:00:19,967 Completed flushing db/cassandra/data/system/local/system-local-ib-9-Data.db (109 bytes) for commitlog position ReplayPosition(segmentId=1383480016398, position=51919) 
INFO 12:00:20,088 Node localhost/127.0.0.1 state jump to normal 
INFO 12:00:20,108 Startup completed! Now serving reads. 
^C 
[email protected]:~/Downloads/titan-server-0.4.0$ sudo bin/rexster-console.sh[WARN] GraphConfigurationContainer - Could not load graph graph. Please check the XML configuration. 
[WARN] GraphConfigurationContainer - GraphConfiguration could not be found or otherwise instantiated: [com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration]. Ensure that it is in Rexster's path. 
com.tinkerpop.rexster.config.GraphConfigurationException: GraphConfiguration could not be found or otherwise instantiated: [com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration]. Ensure that it is in Rexster's path. 
    at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java:137) 
    at com.tinkerpop.rexster.config.GraphConfigurationContainer.<init>(GraphConfigurationContainer.java:54) 
    at com.tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRexsterApplication.java:99) 
    at com.tinkerpop.rexster.server.XmlRexsterApplication.<init>(XmlRexsterApplication.java:47) 
    at com.tinkerpop.rexster.Application.<init>(Application.java:96) 
    at com.tinkerpop.rexster.Application.main(Application.java:188) 
Caused by: java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager 
    at com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:339) 
    at com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:351) 
    at com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:294) 
    at com.thinkaurelius.titan.diskstorage.Backend.<init>(Backend.java:112) 
    at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:682) 
    at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:72) 
    at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40) 
    at com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration.configureGraphInstance(TitanGraphConfiguration.java:25) 
    at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java:119) 
    ... 5 more 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:328) 
    ... 13 more 
Caused by: com.thinkaurelius.titan.diskstorage.TemporaryStorageException: Temporary failure in storage backend 
    at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager.ensureKeyspaceExists(AstyanaxStoreManager.java:429) 
    at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager.<init>(AstyanaxStoreManager.java:172) 
    ... 18 more 
Caused by: com.netflix.astyanax.connectionpool.exceptions.BadRequestException: BadRequestException: [host=127.0.0.1(127.0.0.1):9160, latency=42(60), attempts=1]InvalidRequestException(why:Keyspace names must be case-insensitively unique ("titan" conflicts with "titan")) 
    at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:159) 
    at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) 
    at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:28) 
    at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection.execute(ThriftSyncConnectionFactoryImpl.java:151) 
    at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:69) 
    at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:256) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl.executeSchemaChangeOperation(ThriftClusterImpl.java:146) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl.addKeyspace(ThriftClusterImpl.java:246) 
    at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager.ensureKeyspaceExists(AstyanaxStoreManager.java:424) 
    ... 19 more 
Caused by: InvalidRequestException(why:Keyspace names must be case-insensitively unique ("titan" conflicts with "titan")) 
    at org.apache.cassandra.thrift.Cassandra$system_add_keyspace_result.read(Cassandra.java:33158) 
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78) 
    at org.apache.cassandra.thrift.Cassandra$Client.recv_system_add_keyspace(Cassandra.java:1408) 
    at org.apache.cassandra.thrift.Cassandra$Client.system_add_keyspace(Cassandra.java:1395) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl$9.internalExecute(ThriftClusterImpl.java:250) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl$9.internalExecute(ThriftClusterImpl.java:247) 
    at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:60) 
    ... 26 more 
[WARN] GraphConfigurationContainer - Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager 
java.lang.IllegalArgumentException: Could not instantiate implementation: com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager 
    at com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:339) 
    at com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:351) 
    at com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:294) 
    at com.thinkaurelius.titan.diskstorage.Backend.<init>(Backend.java:112) 
    at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.getBackend(GraphDatabaseConfiguration.java:682) 
    at com.thinkaurelius.titan.graphdb.database.StandardTitanGraph.<init>(StandardTitanGraph.java:72) 
    at com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:40) 
    at com.thinkaurelius.titan.tinkerpop.rexster.TitanGraphConfiguration.configureGraphInstance(TitanGraphConfiguration.java:25) 
    at com.tinkerpop.rexster.config.GraphConfigurationContainer.getGraphFromConfiguration(GraphConfigurationContainer.java:119) 
    at com.tinkerpop.rexster.config.GraphConfigurationContainer.<init>(GraphConfigurationContainer.java:54) 
    at com.tinkerpop.rexster.server.XmlRexsterApplication.reconfigure(XmlRexsterApplication.java:99) 
    at com.tinkerpop.rexster.server.XmlRexsterApplication.<init>(XmlRexsterApplication.java:47) 
    at com.tinkerpop.rexster.Application.<init>(Application.java:96) 
    at com.tinkerpop.rexster.Application.main(Application.java:188) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.thinkaurelius.titan.diskstorage.Backend.instantiate(Backend.java:328) 
    ... 13 more 
Caused by: com.thinkaurelius.titan.diskstorage.TemporaryStorageException: Temporary failure in storage backend 
    at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager.ensureKeyspaceExists(AstyanaxStoreManager.java:429) 
    at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager.<init>(AstyanaxStoreManager.java:172) 
    ... 18 more 
Caused by: com.netflix.astyanax.connectionpool.exceptions.BadRequestException: BadRequestException: [host=127.0.0.1(127.0.0.1):9160, latency=42(60), attempts=1]InvalidRequestException(why:Keyspace names must be case-insensitively unique ("titan" conflicts with "titan")) 
    at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:159) 
    at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:65) 
    at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:28) 
    at com.netflix.astyanax.thrift.ThriftSyncConnectionFactoryImpl$ThriftConnection.execute(ThriftSyncConnectionFactoryImpl.java:151) 
    at com.netflix.astyanax.connectionpool.impl.AbstractExecuteWithFailoverImpl.tryOperation(AbstractExecuteWithFailoverImpl.java:69) 
    at com.netflix.astyanax.connectionpool.impl.AbstractHostPartitionConnectionPool.executeWithFailover(AbstractHostPartitionConnectionPool.java:256) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl.executeSchemaChangeOperation(ThriftClusterImpl.java:146) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl.addKeyspace(ThriftClusterImpl.java:246) 
    at com.thinkaurelius.titan.diskstorage.cassandra.astyanax.AstyanaxStoreManager.ensureKeyspaceExists(AstyanaxStoreManager.java:424) 
    ... 19 more 
Caused by: InvalidRequestException(why:Keyspace names must be case-insensitively unique ("titan" conflicts with "titan")) 
    at org.apache.cassandra.thrift.Cassandra$system_add_keyspace_result.read(Cassandra.java:33158) 
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78) 
    at org.apache.cassandra.thrift.Cassandra$Client.recv_system_add_keyspace(Cassandra.java:1408) 
    at org.apache.cassandra.thrift.Cassandra$Client.system_add_keyspace(Cassandra.java:1395) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl$9.internalExecute(ThriftClusterImpl.java:250) 
    at com.netflix.astyanax.thrift.ThriftClusterImpl$9.internalExecute(ThriftClusterImpl.java:247) 
    at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:60) 
    ... 26 more 
[INFO] HttpReporterConfig - Configured HTTP Metric Reporter. 
[INFO] ConsoleReporterConfig - Configured Console Metric Reporter. 
[INFO] HttpRexsterServer - HTTP/REST thread pool configuration: kernal[4/4] worker[8/8] 
[INFO] HttpRexsterServer - Using org.glassfish.grizzly.strategies.LeaderFollowerNIOStrategy IOStrategy for HTTP/REST. 
[INFO] HttpRexsterServer - Rexster Server running on: [http://localhost:8182] 
[INFO] RexProRexsterServer - Using org.glassfish.grizzly.strategies.LeaderFollowerNIOStrategy IOStrategy for RexPro. 
[INFO] RexProRexsterServer - RexPro thread pool configuration: kernal[4/4] worker[8/8] 
[INFO] RexProRexsterServer - Rexster configured with no security. 
[INFO] RexProRexsterServer - RexPro Server bound to [0.0.0.0:8184] 
[INFO] ShutdownManager$ShutdownSocketListener - Bound shutdown socket to /127.0.0.1:8183. Starting listener thread for shutdown requests. 
^C 

回答

7

作爲第一個注意事項,embeddedcassandra不再是你想要的Titan 0.4.0。你可以閱讀更多關於here。在0.4.0 cassandra的Titan Server分發版和Rexster在單獨的JVM中運行,通常應該從發行版開箱即用。

另外請注意,我會建議直接通過Gremlin控制檯創建類型/索引。我喜歡在使用TypeMaker時「接近圖表」。你可以閱讀更多關於這種生產實施模式here

至於你的具體問題,你的問題幫助揭開了文檔中的一個漏洞(此後一直是remedied)。爲了確保elasticsearch得到啓動與泰坦服務器確保你做:

bin/titan.sh -c cassandra-es start 

在這一點上,你可以通過Rexster連接,構建和查詢elasticsearch指數。下面是Rexster控制檯的例子:

rexster[groovy]> g = rexster.getGraph("graph") 
==>titangraph[cassandra:null] 
rexster[groovy]> g.makeKey("name").dataType(String.class).indexed("search",Vertex.class).make() 
==>v[74] 
rexster[groovy]> g.commit() 
==>null 
rexster[groovy]> g.addVertex([name:'marko']) 
==>v[4] 
rexster[groovy]> g.addVertex([name:'stephen']) 
==>v[8] 
rexster[groovy]> g.commit() 
==>null 
rexster[groovy]> g.V.has('name',PREFIX,'mar') 
==>v[4] 

注意,在此模式下啓動泰坦服務器,elasticsearch在embedded mode運行由Rexster開始泰坦的實例,這意味着:

Elasticsearch不會從這個特殊的 泰坦實例的外部訪問,即遠程連接將無法

所以,如果你想通過泰坦精怪控制檯連接,我不相信它會起作用。連接必須通過Rexster運行。

+0

好了,這似乎是開始。我應該使用哪個索引名稱?在文檔中它說你可以像這樣創建elasticsearch索引:'graph.makeKey(「reason」)。dataType(String.class).indexed(「search」,Vertex.class).indexed(「search」,Edge.class )。使()'。當我這樣做時,我得到一個錯誤,我猜是因爲'search'索引不存在(堆棧跟蹤不會顯示)。我該如何解決? – Automatico

+0

你在哪裏試圖創建索引? Rexster控制檯? –

+0

擴大了我的答案,以顯示索引創建。同樣,這裏不需要額外的配置......可以開箱即用。 –

1

也許我有點遲到了,但我想任何人來對這個問題可以從中受益。

使用此腳本將自動爲「Titan 0.5.4 with Hadoop 2」設置嵌入式cassandra我沒有使用「titan-0.9.0-M2-hadoop1.zip」進行測試,但如果它有效,請讓我知道。

的腳本採用當前主機的IP,並取代所有相關的配置文件的網絡IP設置(泰坦目錄必須於:/ opt /鈦/,相應的改變)。

#!/usr/bin/env bash 
cd /tmp 
wget http://s3.thinkaurelius.com/downloads/titan/titan-0.5.4-hadoop2.zip -O titan.zip 
unzip titan.zip -d /opt/titan 

//queries for current hostname ip - check your /etc/hosts file or this possibly won't work 
titan_node_ip=$(hostname -i) 
#/opt/titan/conf/cassandra.yaml 
sed -i 's/seeds:.*$/seeds: "'$titan_node_ip'"/g' /opt/titan/conf/cassandra.yaml 
sed -i 's/listen_address:.*$/listen_address: '$titan_node_ip'/g' /opt/titan/conf/cassandra.yaml 
sed -i 's/rpc_address:.*/rpc_address: '$titan_node_ip'/g' /opt/titan/conf/cassandra.yaml 

#/opt/titan/conf/elasticsearch.yml 
sed -i 's/network.host:.*/network.host: '$titan_node_ip'/g' /opt/titan/conf/elasticsearch.yml 

#/opt/titan/conf/rexster-cassandra-es.xml 
sed -i 's/<base-uri>.*<\/base-uri>/<base-uri>http:\/\/'$titan_node_ip'<\/base-uri>/g' /opt/titan/conf/rexster-cassandra-es.xml 
sed -i 's/<storage.hostname>.*<\/storage.hostname>/<storage.hostname>'$titan_node_ip'<\/storage.hostname>/g' /opt/titan/conf/rexster-cassandra-es.xml 
sed -i 's/ <index.search.hostname>.*<\/index.search.hostname>/<index.search.hostname>'$titan_node_ip'<\/index.search.hostname>/g' /opt/titan/conf/rexster-cassandra-es.xml 

#/opt/titan/conf/titan-cassandra-embedded-es.properties 
sed -i 's/storage.backend=.*/storage.backend=embeddedcassandra/g' /opt/titan/conf/titan-cassandra-embedded-es.properties 

#/opt/titan/bin/titan.sh 
sed -i 's/ELASTICSEARCH_IP:=.*}/ELASTICSEARCH_IP:='$titan_node_ip'}/g' /opt/titan/bin/titan.sh 
sed -i 's/REXSTER_IP:=.*}/REXSTER_IP:='$titan_node_ip'}/g' /opt/titan/bin/titan.sh 

如果一切順利,你現在應該能夠在cassandraembedded模式成功運行泰坦:

/opt/titan/bin/titan.sh start