Solrcloud分布式部署和使用时的杂谈

192.168.108.156 SOLR-CLOUD-001
192.168.108.168 SOLR-CLOUD-002
192.168.108.186 SOLR-CLOUD-003
 
 
00:0C:29:18:06:05
 
cd /usr/local
rsync -avP rsync://192.168.108.156/usr/local/solr-cores ./
rsync -avP rsync://192.168.108.156/usr/local/solrcloud ./
rsync -avP rsync://192.168.108.156/usr/local/resin-4.0.48 ./
 
cd /usr/java
rsync -avp rsync://192.168.108.156/usr/java/jdk1.7.0_65 ./
 
 
 
 
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.port=9060</jvm-arg>
<jvm-arg>-Djava.rmi.server.hostname=`/sbin/ifconfig bond0 |grep -a "inet addr:" |awk -F":" '{print$2}' |egrep -o '([0-9]{1,3}\.?){4}'`</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
 
 
 
java -classpath .:/usr/local/resin-pro-4.0.40/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.108.156:2181,192.168.108.168:2181,192.168.108.186:2181 -confdir /usr/local/solrcloud/config-files/  -confname myconf
 
 
  <web-app id="/" document-directory="/usr/local/solr">
          <path-mapping url-pattern='solr/*'
              real-path='/usr/local/solr/webapp/web'/>
      </web-app>
 
 
 通过MR批量创建索引有了这个功能,你还担心创建索引慢吗?
 
 RealTime Get 实时获取允许通过唯一键查找任何文档的最新版本数据,并且不需要重新打开searcher。这个主要用于把Solr作为NoSQL数据存储服务,而不仅仅是搜索引擎
 
 一旦启动后,如果后面增加新collection,只要重复第3步。而无需重新启动应用软件。
 
 
 2.        配置文件与collection关联
/home/solrtest/solrcloud/cloud-scripts/zkcli.sh -cmd linkconfig-collection sr_ticket_01 -confname sr_ticket_01_conf -zkhostlocalhost:2181,localhost:2182,localhost:2183
 
snapinstaller太频繁的话,solr slave将会处于一个不太理想的状态
 
降低snapshot的频率才是硬道理。
 
使用embeded来建立索引,将会比使用xml格式来建立索引快50%。
 
 
 
java -classpath .:/usr/local/resin-pro-4.0.40/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 192.168.108.156:2181,192.168.108.168:2181,192.168.108.186:2181 -confdir /usr/local/solrcloud/collection3Conf/  -confname collection3Conf
 
http://192.168.108.168:8983/solr/admin/cores?action=CREATE&name=collection3n&numShards=2&replicationFactor=2&collection.configName=collection3Conf
 
http://192.168.108.186:8983/solr/admin/cores?action=ADDREPLICA&collection=collection3n&shard=shard1&node=192.168.108.186:8983_solr
 
REPLICA replica
 
在shard中添加replica测试
当 collection3n -> shard1 -> 156
   collection3n -> shard1 -> 186
   collection3n -> shard2 -> 168
156、186 1条doc
168 2条doc
========================================
 
当 collection3n -> shard1 -> 156
   collection3n -> shard1 -> 186
   collection3n -> shard2 -> 168
   collection3n -> shard2 -> 156
会在156上新创建同步一个索引文件collection3n_shard2_replica1 这个是手动添加的效果,初始化添加shard时的replica是没有这么长的文件目录的
只是个collection3n目录。
 
当创建分布式collection时,指定了replica个数后,再添加多于个数replica时,这个replica会处于 Recovering 状态。
当shard中的一台replica掉了的时候,会把Recovering状态的这台加上去,
加上去的流程是先从leading中同步当前索引,并修改当前机器的solr_home/collection/data 下的索引文件,不知道为什么会把index文件名修改为index.日期,
然后在index.properties 中修改使用的索引名。
不过不推荐超过replicationFactor个数还要向上挂replica因为挂上了也不会去执行同步等任何操作,只有当replica不够用时才使用这个Recovering状态的replica,这时索引才开始同步。
 

重新加载服务
http://192.168.108.156:8983/solr/admin/collections?action=RELOAD&name=collection3n
 
删除副本
http://192.168.108.156:8983/solr/admin/collections?action=DELETEREPLICA&collection=collection3n&shard=shard1&replica=core_node3
 
使用数据源全量或增量建立索引
http://192.168.108.168:8983/solr/collection3n/xmldataimport?command=full-import&
 

问题1
为什么resin的solr实例与zk服务在同一台机器时,
时时shard的replica指的是A机器但访问的确是B机器,用的solrj访问,
但查看后看A机器是zk的leading机,但不是访问shard的leading机,这不知道是为什么。
 

问题2
solrcloud的配置都存储在远程zk上,但zk最多能存储1m的数据大小,如果词大了怎么存储?
 

问题3
solr建全量索引时,是否支持服务上建立XML和数据库格式的全量索引。
 

问题4
需要确认手动建立的replica和自动建立的是否有差别,因为自动建立的和手动建立的索引文件名不一至。
 
posted @ 2016-11-02 11:26  sanzang  阅读(176)  评论(0)    收藏  举报