升级Solr与ZooKeeper遇SolrJ连接错误:/aliases.json节点不存在
SolrJ连接Solr 9.6.1 + ZooKeeper 3.9.2时集群连接错误排查
我们正尝试升级至Solr 9.6.1与ZooKeeper 3.7.1,通过Java的SolrJ API连接Solr时出现如下错误:
Cannot connect to cluster at 172.23.152.117:2181: cluster not found/not ready. Expected node '/aliases.json' does not exist.
Solr集群和ZooKeeper配置看似正常,Solr页面的ZooKeeper状态截图如下:
当前Solr 9.6.1 + ZooKeeper 3.7.1组合可正常运行,但Solr 9.6.1 + ZooKeeper 3.9.2组合运行失败。
解决建议
检查ZooKeeper ACL权限:ZooKeeper 3.9.x默认启用更严格的权限控制,可能导致Solr无法创建/访问
/aliases.json。用zkCli.sh查看根节点权限:getAcl /若权限过严,可为Solr服务账号添加读写权限,或临时在
zoo.cfg中设置skipACL=yes测试。匹配SolrJ与Solr版本:确保使用的SolrJ版本为9.6.1,版本不匹配可能引发兼容性问题。
初始化ZooKeeper节点:用
zkCli.sh查看是否存在/aliases.json:ls /若不存在,可通过Solr的
zkcli.sh上传默认配置:./server/scripts/cloud-scripts/zkcli.sh -zkhost 172.23.152.117:2181 -cmd upconfig -confdir ./server/solr/configsets/_default/conf -confname default或手动创建空节点:
create /aliases.json "{}"查看日志定位问题:检查Solr的
solr.log和ZooKeeper的zookeeper.out,获取权限拒绝、连接异常等详细信息。确认版本兼容性:查阅Solr官方文档,Solr 9.6.1推荐搭配ZooKeeper 3.7.x系列,3.9.x可能存在未适配的特性,优先使用官方推荐版本。
内容的提问来源于stack exchange,提问作者noble
相关产品推荐
相关产品推荐

