添加Cql3SolrSecondaryIndex后Stargate无法正常查询故障求助
问题根因
- 该问题核心是开源版本Stargate默认未携带DSE Search特有的索引类依赖,且删除索引后Stargate本地仍残留旧版本schema缓存,导致schema同步验证失败,无法正常加载keyspace元数据,所以返回keyspace不存在的404错误。
解决方案
- 第一步:停止Stargate服务,清空本地schema缓存。默认缓存路径为
/var/lib/stargate/schema_cache,容器部署场景下需清空对应挂载卷内的缓存文件,确保无旧schema残留。 - 第二步:验证DSE端schema已完全清理。登录DSE节点的cqlsh执行以下操作:
- 执行
DESCRIBE TABLE [你的表名];,确认Cql3SolrSecondaryIndex类型的索引已完全删除 - 执行
SELECT schema_version FROM system.local;,核对所有DSE节点schema版本一致,无未同步的变更 - 若仍有索引残留,执行
DROP INDEX IF EXISTS [你的索引名];,等待所有节点同步完成
- 执行
- 第三步:补充Stargate的DSE扩展依赖。下载和你使用的Stargate 1.0.38版本匹配的
stargate-dse-extensions包,放入Stargate的lib目录,启动时指定加载DSE适配模块,避免DSE特有的类无法找到。 - 第四步:重启Stargate服务,观察启动日志无
ClassNotFoundException报错后,重新发起select请求验证功能恢复。
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

