tomcat中搭建solr Cloud、日志、多Core以及常见问题

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-INFclasses目录,在该目录创建文件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的理解)

你可能感兴趣的:(Solr)