簡體   English   中英

Cassandra,Titan,致命配置錯誤

[英]Cassandra, Titan, Fatal configuration error

我嘗試使用cassandra(linux)啟動titan:

TitanFactory.Builder config = TitanFactory.build();

config.set("storage.backend", "embeddedcassandra");
config.set("storage.directory", DIRECTORY);
config.set("index." + INDEX_NAME + ".backend", "elasticsearch");
config.set("index." + INDEX_NAME + ".DIRECTORY", DIRECTORY + File.separator + "es");
config.set("index." + INDEX_NAME + ".elasticsearch.local-mode", true);
config.set("index." + INDEX_NAME + ".elasticsearch.client-only", false);

graph = config.open();

獲取以下日志:

09:57:50.195 [main]錯誤oacconfig.DatabaseDescriptor-致命配置錯誤org.apache.cassandra.exceptions.ConfigurationException:預期變量URI:[cassandra.config]。 請為文件添加前綴file:///(對於本地文件)或file:///(對於遠程文件)。 中止。 如果從外部工具執行此操作,則需要設置Config.setClientMode(true)以避免加載配置。 在org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.org.apache.cassandra.config.YamlConfigurationLoader.getStorageConfigURL(YamlConfigurationLoader.java:73)〜[cassandra-all-2.1.9.jar:2.1.9]處。 java:84)〜[cassandra-all-2.1.9.jar:2.1.9]在org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:161)〜[cassandra-all-2.1.9.jar :2.1.9],位於org.apache.cassandra.config.DatabaseDescriptor。(DatabaseDescriptor.java:136)〜[cassandra-all-2.1.9.jar:2.1.9],位於org.apache.cassandra.service.CassandraDaemon。在org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:537)上設置(CassandraDaemon.java:164)[cassandra-all-2.1.9.jar:2.1.9] [cassandra-all-2.1.9 .jar:2.1.9],位於org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:626)[cassandra-all-2.1.9.jar:2.1.9],位於com.thinkaurelius.titan.diskstorage。 cassandra.utils.CassandraDaemonWrapper.start(CassandraDaemonWrapper.java:75)[titan-cassandra-1.0.0.jar:na] at com .thinkaurelius.titan.diskstorage.cassandra.embedded.CassandraEmbeddedStoreManager。(CassandraEmbeddedStoreManager.java:81)[titan-cassandra-1.0.0.jar:na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)[na:1.8。 0_112]在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)[na:1.8.0_112]在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)[na:1.8.0_112]在java.lang .reflect.Constructor.newInstance(Constructor.java:423)[na:1.8.0_112],位於com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:44)[titan-core-1.0.0。 jar:na]位於com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:473)[titan-core-1.0.0.jar:na]來自com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(后端.java:407)[titan-core-1.0.0.jar:na]在com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration。(GraphDatabaseConfiguratio n.java:1320)[titan-core-1.0.0.jar:na]在com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:94)[titan-core-1.0.0.jar:na ]在com.thinkaurelius.titan.core.TitanFactory $ Builder.open(TitanFactory.TitanFactory.java:84)[titan-core-1.0.0.jar:na]在com.thinkaurelius.titan.core.TitanFactory $ Builder.open(TitanFactory。 java:139)位於main.java.com.bag.server.database.TitanDatabaseAccess.start(TitanDatabaseAccess.java:68)處於[titan-core-1.0.0.jar:na] main.java .com.bag.server.TestServer。(TestServer.java:105)[main /:na]位於main.java.com.bag.server.TestServer.main(TestServer.java:428)[main /:na]位於sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)〜[na:1.8.0_112] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)〜[na:1.8.0_112] at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)〜[na:1.8.0_112] at java.lang.reflect.Method.invoke(Method.java:498)〜[na:1.8.0_112] at com.intellij.rt.execution.application .AppMain.main(AppM ain.java:147)[idea_rt.jar:na]

嵌入式Cassandra要求您指定在哪里可以找到其配置文件(cassandra.yaml)。 文檔中

在嵌入式模式下運行Titan時,將使用附加配置選項storage.conf-file配置Cassandra yaml文件,該選項將yaml文件指定為完整URL,例如storage.conf-file = file:/// home / cassandra。 yaml。

根據您要實現的目標以及您始終無法在內存中完全運行(Elasticsearch)的情況,您可能會考慮使用berkeleyje作為存儲后端。 Berkeley DB for Titan實際上是零配置。 您需要做的就是指定存儲目錄。 例如

storage.backend=berkeleyje
storage.directory=${java.io.tmpdir}/${storage.dir}

當然,您可以隨意將存儲目錄放置在任意位置。

索引后端獨立於持久性后端,並且需要其自己的配置,具體取決於您選擇的后端。 同樣,根據您要實現的目標,您可以沒有。 Titan原生支持相等性比較的索引,因此您不需要外部搜索索引。 當心這個公開的泰坦問題 不保證搜索索引始終與圖形同步。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM