分享

CDH5.3 sorj应用问题

karo_lee 发表于 2015-2-6 17:06:27 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 8 17672
本帖最后由 karo_lee 于 2015-2-6 17:19 编辑

各位,用cdh的CloudSolrServer server = new CloudSolrServer(String zkHost)
server.setDefaultCollection(String collection)
无法找到solr集群的collection,原因是cdh的solr集群在zookeeper上的根节点是/solr
这个cloudsolrserver不会去这个节点找/solr/live_nodes子节点,只在zookeeper的根节点找/live_nodes节点,怎么让cloudsolrserver找 /solr/live_nodes呢
报的错就是KeeperErrorCode = NoNode for /live_nodes

已有(8)人评论

跳转到指定楼层
karo_lee 发表于 2015-2-6 17:22:11
本帖最后由 karo_lee 于 2015-2-6 17:27 编辑

我能想到的就是用个定时任务,或者在/solr/livenodes变化的时候触发根节点更新/livenodes,如果要读取solr其他的信息得把/solr下的节点统统弄一份放在根节点去。但是既然公布了这个api,就得有比较简单的办法直接用吧。
回复

使用道具 举报

nextuser 发表于 2015-2-6 18:00:56
karo_lee 发表于 2015-2-6 17:22
我能想到的就是用个定时任务,或者在/solr/livenodes变化的时候触发根节点更新/livenodes,如果要读取solr ...

这应该可以配置。
不过楼主是怎么判断路径的,是切实看到了,还是根据错误判断的
回复

使用道具 举报

karo_lee 发表于 2015-2-6 18:17:21
本帖最后由 karo_lee 于 2015-2-6 18:23 编辑
nextuser 发表于 2015-2-6 18:00
这应该可以配置。
不过楼主是怎么判断路径的,是切实看到了,还是根据错误判断的

根据错误判断的,然后 改solrj的源码,solrj定义一堆的 final static 变量xxxxxxx = /livenodes    XXXXXX=/collections
把这些变量改了之后/solr/livenodes /solr/collections,livenodes找到了,但是又报collections为null的错误。就是说读collections没有用final static 变量。怎么读的就实在找不到了。

回复

使用道具 举报

nextuser 发表于 2015-2-6 18:18:11
karo_lee 发表于 2015-2-6 18:17
根据错误判断的

贴出完整错误来看看
回复

使用道具 举报

karo_lee 发表于 2015-2-6 18:25:42
nextuser 发表于 2015-2-6 18:18
贴出完整错误来看看

内网做的,没考出来
回复

使用道具 举报

karo_lee 发表于 2015-2-11 14:26:26
终于看到正解了,spring-data-solr目前不支持solrcloud
回复

使用道具 举报

karo_lee 发表于 2015-3-2 12:14:27
不用spring-data-solr,直接使用solrj的API也会报同样的错误,其实解决问题的办法很简单在CloudSolrServer(zkHost,lbServer)给zkHost连接串最后加上/solr就行了。例如192.168.1.1:2181,192.168.1.2:2181,192.168.1.3.2181/solr
回复

使用道具 举报

grey_tao 发表于 2017-4-30 10:51:59
karo_lee 发表于 2015-3-2 12:14
不用spring-data-solr,直接使用solrj的API也会报同样的错误,其实解决问题的办法很简单在CloudSolrServer ...

太感谢,找了好几天
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条