一切依旧 2014-07-22
solrcloud的配置文件是上传在zookeeper文件系统上的。这样就面临一个问题,每次需要修改配置文件,就没有只有之前本地单机solr那么简单,需要上传。
搭建solrcloud时候提交配置文件的脚本是:
java-classpath.:/usr/local/tomcat7/webapps/solr/WEB-INF/lib/*org.apache.solr.cloud.ZkCLI-cmdupconfig-zkhosthadoop34:2181,hadoop35:2181,hadoop36:2181-confdir/usr/local/soft/solr-space/alpha_wenuser/conf-confnamealpha_wenuser
如果想更新具体某个配置文件,比如schema.xml,如果只看网上乱七八糟的介绍,恐怕要把上面的命令重新执行一遍,把所有的配置文件重新提交下。其实,可以单独只更新一个的,命令如下
java-classpath.:/usr/local/tomcat7/webapps/solr/WEB-INF/lib/*org.apache.solr.cloud.ZkCLI-zkhosthadoop34:2181,hadoop35:2181,hadoop36:2181-cmdputfile/configs/alpha_wenuser/schema.xmlconf/schema.xml
当然,仔细分析里面的字段,会发现这个命令(putfile)是用来上传单个文件的,所以需要先rmr删除zookeeper上的文件(/configs/alpha_wenuser/schema.xml),在提交这条命令,不然会报错:KeeperErrorCode=NodeExistsfor/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/