solr版本:4.5.1
1、搭建solrCloud
搭建参照这个网址: http://blog.csdn.net/a221133/article/details/11819483
官网:h http://wiki.apache.org/solr/SolrTomcat
http://wiki.apache.org/solr/SolrCloud
最后修改solr.xml
<solr>
<solrcloud>
<str name="host">${host:}</str>
<int name="hostPort">7080</int>
<str name="hostContext">${hostContext:solr}</str>
<int name="zkClientTimeout">${zkClientTimeout:15000}</int>
<bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
<str name="zkHost">192.168.1.2:2181</str>
</solrcloud>
<shardHandlerFactory name="shardHandlerFactory"
class="HttpShardHandlerFactory">
<int name="socketTimeout">${socketTimeout:0}</int> http://
<int name="connTimeout">${connTimeout:0}</int>
</shardHandlerFactory>
</solr>
更多可参考资料: https://cwiki.apache.org/confluence/display/solr/SolrCloud
collection管理: https://cwiki.apache.org/confluence/display/solr/Collections+API
core管理: https://cwiki.apache.org/confluence/display/solr/CoreAdminHandler+Parameters+and+Usage
2、创建多core
可以通过Web见面,也可以通过命令创建
常用命令:
创建core:curl 'http://192.168.1.2:9080/solr/admin/cores?action=CREATE&name=c6&instanceDir=/home/hadoop/solr_lu/solr/c6/&dataDir=/home/hadoop/solr_lu/solr/c6/data/&collection=collection1&shard=shard2'
加载core: curl 'http://192.168.1.2:9080/solr/admin/cores?action=LOAD&core=c6'
卸载core: curl 'http://192.168.1.2:9080/solr/admin/cores?action=UNLOAD&core=c6&deleteIndex=true'
查看集群的Cloud data:curl 'http://172.16.4.213:9080/solr/zookeeper?wt=json&detail=true&path=%2Fclusterstate.json'
更多详细可参考官网: http://wiki.apache.org/solr/CoreAdmin
3、日志
默认情况下,solr的日志是瞬时的,tomcat重启后,就消失了。可以通过图形化界面http://ip:port/solr/#/~logging查看,在linux命令行下可以通过命令curl 'http://ip:port/solr/admin/info/logging?wt=json&since=0'获取。
生成持久日志的方法:
1)、
将solr-4.5.1\example\lib\ext下面的jar包放到
solr-4.5.1.war里边的WEB-INF\lib下面,因为从solr4开始,日志的jar被分离出来放到solr-4.5.1\example\lib\ext里边了
2)、在
solr-4.5.1.war的WEB-INF下建classes目录,在该目录创建文件log4j.properties,log4j.properties的样例如下(日志级别、日志路径可自定义):
# Logging level
log4j.rootLogger=WARN, file
#- size rotation with log cleanup.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize=4MB
log4j.appender.file.MaxBackupIndex=9
#- File to log to and log format
log4j.appender.file.File=logs/solr.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss.SSS}; %C; %m\n
官网参考链接: http://wiki.apache.org/solr/SolrLogging
4、常见问题
1)集群分派不正常时,需删除Zookeeper中配置文件,删除方法:
[root@hadoop solr2]# zkCli.sh -server 192.168.1.2:2181
[zk: 192.168.1.2:2181(CONNECTED) 0] ls /
[configs, hbase, zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, overseer_elect, collections]
[zk: 192.168.1.2:2181(CONNECTED) 1] rmr /configs
[zk: 192.168.1.2:2181(CONNECTED) 2] rmr /clusterstate.json
[zk: 192.168.1.2:2181(CONNECTED) 3] rmr /aliases.json
[zk: 192.168.1.2:2181(CONNECTED) 4] rmr /live_nodes
[zk: 192.168.1.2:2181(CONNECTED) 5] rmr /overseer
[zk: 192.168.1.2:2181(CONNECTED) 6] rmr /overseer_elect
[zk: 192.168.1.2:2181(CONNECTED) 7] rmr /collections
2)Solr4.0的AdminGUI里面可以增加和删除Core,如果Shard里最后一个Core被删除了,Shard不会自动删除掉,会导致集群出错
3)Shard里面所有的Core宕机了,会导致不能继续插入新的记录,查询不受影响,个人认为应该可以插入到其它存活的Shard里面。。。
4)Core在Shard中扮演Leader还是replication由Solr内部自动协调,目前没有找到人工干预的方法
参考:http://www.solr.cc/blog/?p=99
(包含Cluster、Node、Shard、Collection、core的理解)