搭建solr集群整个架构:
前提:
(1)zookeeper集群
(2)最好做系统间拷贝免密码(频繁复制东西输密码太麻烦)
(3)软件solr.*.zip zookerper.*.tar.gz ik.*.zip tomcat.*.tar.gz(tomcat7以上版本)
搭建思想:
3台服务器:
192.168.20.101
192.168.20.102
192.168.20.103
目录结构:
先搭建好一台192.168.20.101然后scp到102和103整个文件夹
搭建101:
1.把解压的solr.zip中war包复制到tomcat的webapps下
2.#jar -xvf solr.war 解压war包
3.解压IK.zip,复制里面jar包到webapps/solr/WEB-INF/lib下,配置文件到webapps/solr/WEB-INF/classes下
4.修改webapps/solr/WEB-INF/web.xml,放开注释,配置第二行的solrhome的位置(绝对路径)
5.建solrhome1和solrhome2(名字随意),复制solr.zip解压目录(solr-4.10.3/example/solr)下的所有文件到4步骤的两个solrhome中.(solr-4.10.3/example/solr这是示例中的solr家的标准目录)
6.进入solrhome1/collection1/conf,修改schema.xml,在最后加入如下内容,引用IK分词器.
7.启动tomcat看分词器和solr单机版可以用了吗.访问http://ip:port/solr
8.如果上一步好使了,停tomcat开始配置集群,修改solrhome1/solr.xml把端口改成和tomcat端口一致.
9.把solr家solrhome1/collection1下刚产生的data目录删掉,上传配置文件信息给zookeeper集群
#sh /opt/solr/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.20.101:2181,192.168.20.102:2181,192.168.20.103:2181 -cmd upconfig -confdir /opt/solr/solrhome1/collection1/conf -confname myconf -solrhome1 /opt/solr/solrhome1
上传完了用zookeeper客户端连接zookeeper集群看这些内容是否上传上去
进入zookeeper集群安装目录 #./zkCli.sh 然后输入命令ls /configs/myconf 可以查看刚才上传的配置文件名
10.配置每个solrhome中的solrhome1/collection1/core.properties;明确指定自己是哪根葱....
#solrhome1下的
numShards=2 #分多少片
name=collection1 #属于哪个索引库
shard=shard1 #属于索引库哪一片
coreNodeName=core_node1 #数据这一片第几个节点
##solrhome2下的
numShards=2
name=collection1
shard=shard1
coreNodeName=core_node2
11.修改tomcat/bin/catalina.sh,加一行内容指定zookeeper集群地址(在哪加,我选择方便直接在头行后空白处)
JAVA_OPTS="-DzkHost=192.168.20.101:2181,192.168.20.102:2181,192.168.20.103:2181"
12.所有的操作就完了,整个文件夹拷贝到其他机器然后修改10不走的core.properties文件指定自己是哪根葱就行了
一切做完了挨个启动tomcat,然后随便找一个tomcat用浏览器访问solr页面.此时会出现cloud这个选项,点一下就看到集群结构了
13.此时的zookeeper下面会多一些集群节点信息
overseer, aliases.json, live_nodes, collections, overseer_elect, clusterstate.json
附录:
#sh /opt/solr/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.20.101:2181,192.168.20.102:2181,192.168.20.103:2181 -cmd upconfig -confdir /opt/solr/solrhome1/collection1/conf -confname myconf -solrhome1 /opt/solr/solrhome1
JAVA_OPTS="-DzkHost=192.168.20.101:2181,192.168.20.102:2181,192.168.20.103:2181"
numShards=2
name=collection1
shard=shard1
coreNodeName=core_node1
numShards=2
name=collection1
shard=shard1
coreNodeName=core_node2
numShards=2
name=collection1
shard=shard2
coreNodeName=core_node1
numShards=2
name=collection1
shard=shard2
coreNodeName=core_node2
numShards=1
name=collection2
shard=shard1
coreNodeName=core_node1
numShards=1
name=collection2
shard=shard1
coreNodeName=core_node2