solrcloud编辑zookeeper上的配置文件的方法

   solrcloud的配置文件是上传在zookeeper文件系统上的。这样就面临一个问题,每次需要修改配置文件,就没有只有之前本地单机solr那么简单,需要上传。

   搭建solrcloud时候提交配置文件的脚本是:

java -classpath .:/usr/local/tomcat7/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost hadoop34:2181,hadoop35:2181,hadoop36:2181 -confdir  /usr/local/soft/solr-space/alpha_wenuser/conf -confname alpha_wenuser

如果想更新具体某个配置文件,比如schema.xml,如果只看网上乱七八糟的介绍,恐怕要把上面的命令重新执行一遍,把所有的配置文件重新提交下。其实,可以单独只更新一个的,命令如下

java -classpath .:/usr/local/tomcat7/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -zkhost hadoop34:2181,hadoop35:2181,hadoop36:2181 -cmd putfile /configs/alpha_wenuser/schema.xml  conf/schema.xml

当然,仔细分析里面的字段,会发现这个命令(putfile)是用来上传单个文件的,所以需要先rmr删除zookeeper上的文件(/configs/alpha_wenuser/schema.xml),在提交这条命令,不然会报错:KeeperErrorCode = NodeExists for /configs/investor/schema.xml

2014年8月5日更新:
太流氓了,这篇日志被我的异常网给抓走了,完全不经过我允许!
http://www.myexception.cn/cloud/1721827.html

zookeeper上的文件是以znode的形式存在的,每个由于zonde存在内存中,所以为了提升读取速度和减少内存压力,zookeeper对znode的大小有限制,最大不能超过1M。所以如果有配置文件超过1M,建议存在本地,在配置里进行指向。
参考资料http://kb.cnblogs.com/kb/86827/

猜你喜欢

转载自lies-joker.iteye.com/blog/2094953