You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JanusGraph 1.0.0无法连接多节点Cassandra 4.1.3集群求助

解决JanusGraph连接多节点Cassandra集群时system_properties表不存在的异常

问题背景

搭建了3节点Cassandra 4.1.3集群,各节点cassandra.yaml配置如下:

cluster_name: 'cassandra_cluster'
listen_address: <node_IP>
rpc_address: <node_IP>
endpoint_snitch: GossipingPropertyFileSnitch

种子节点额外配置:

seed_provider:
   - class_name: org.apache.cassandra.locator.SimpleSeedProvider
    parameters:
      - seeds: "<seedNode_IP>"

使用JanusGraph 1.0.0连接集群,配置如下:

storage.backend=cql
storage.hostname=<node1_IP>,<node2_IP>,<node3_IP>
cache.db-cache=true
cache.db-cache-size=0.5
ids.block-size=30000000
storage.batch-loading=true
storage.port=9042
storage.cql.local-datacenter=dc1
storage.cql.replication-strategy-class=NetworkTopologyStrategy
storage.cql.replication-strategy-options=dc1,3

连接时抛出异常:

Exception in thread "main" com.datastax.oss.driver.api.core.servererrors.InvalidQueryException: table system_properties does not exist
    at com.datastax.oss.driver.api.core.servererrors.InvalidQueryException.copy(InvalidQueryException.java:48)
    at com.datastax.oss.driver.internal.core.util.concurrent.CompletableFutures.getUninterruptibly(CompletableFutures.java:149)
    at com.datastax.oss.driver.internal.core.cql.CqlPrepareSyncProcessor.process(CqlPrepareSyncProcessor.java:59)
    at com.datastax.oss.driver.internal.core.cql.CqlPrepareSyncProcessor.process(CqlPrepareSyncProcessor.java:31)
    at com.datastax.oss.driver.internal.core.session.DefaultSession.execute(DefaultSession.java:230)
    at com.datastax.oss.driver.api.core.cql.SyncCqlSession.prepare(SyncCqlSession.java:206)
    at org.janusgraph.diskstorage.cql.CQLKeyColumnValueStore.<init>(CQLKeyColumnValueStore.java:217)
    at org.janusgraph.diskstorage.cql.CQLStoreManager.lambda$openDatabase$7(CQLStoreManager.java:308)
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
    at org.janusgraph.diskstorage.cql.CQLStoreManager.openDatabase(CQLStoreManager.java:308)
    at org.janusgraph.diskstorage.keycolumnvalue.KeyColumnValueStoreManager.openDatabase(KeyColumnValueStoreManager.java:43)
    at org.janusgraph.diskstorage.configuration.backend.builder.KCVSConfigurationBuilder.buildStandaloneGlobalConfiguration(KCVSConfigurationBuilder.java:51)
    at org.janusgraph.diskstorage.configuration.builder.ReadConfigurationBuilder.buildGlobalConfiguration(ReadConfigurationBuilder.java:71)
    at org.janusgraph.graphdb.configuration.builder.GraphDatabaseConfigurationBuilder.build(GraphDatabaseConfigurationBuilder.java:67)
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:176)
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:147)
    at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:137)
    at org.janusgraph.core.JanusGraphFactory$Builder.open(JanusGraphFactory.java:277)
    at causalai.knowledgegraph.JanusGraphClient.main(JanusGraphClient.java:57)

将Cassandra改为单节点集群,并移除JanusGraph配置中的storage.cql.replication-strategy-class和storage.cql.replication-strategy-options后,JanusGraph可正常运行。

解决方案

1. 对齐Cassandra数据中心配置

检查所有Cassandra节点的cassandra-rackdc.properties文件,确保数据中心名称与JanusGraph配置的dc1一致:

dc=dc1
rack=rack1

修改完成后,重启所有Cassandra节点,确保集群gossip同步拓扑信息。

2. 修正JanusGraph复制策略选项格式

storage.cql.replication-strategy-options的格式错误,需将逗号改为冒号分隔数据中心与副本数:

storage.cql.replication-strategy-options=dc1:3

3. 手动创建JanusGraph键空间(可选)

若上述步骤后仍报错,可手动登录Cassandra的CQL Shell(cqlsh <seedNode_IP>),创建JanusGraph默认使用的键空间:

CREATE KEYSPACE janusgraph WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': 3} AND durable_writes = true;

完成后再启动JanusGraph实例。

原因分析

  • 数据中心名称不匹配:JanusGraph使用NetworkTopologyStrategy时,若Cassandra节点实际数据中心与配置的local-datacenter不一致,会导致键空间创建失败,缺失system_properties表。
  • 复制策略格式错误:逗号分隔的配置会被Cassandra判定为无效,导致键空间无法正确初始化,JanusGraph启动时找不到所需表。
  • 多节点集群拓扑同步不完整:若Cassandra集群的gossip信息未完全同步,JanusGraph自动创建键空间时无法获取正确的集群拓扑,进而导致表创建失败。

内容的提问来源于stack exchange,提问作者Naveen Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:50:33