2017-08-20 Ubuntu16.04LTS和centos7安装Solr集群
1、 Solr单机版安装配置
下载solr
Solr和lucene的版本是同步更新的,最新的版本是5.2.1
本课程使用的版本:4.10.3
下载地址:http://archive.apache.org/dist/lucene/solr/
下载版本:4.10.3
Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。
第一步:安装tomcat
第二步:将以下的war包,拷贝到tomcat的webapps目录下
solr-4.10.3/example/webapps下的war包拷贝
第三步:解压缩war包 解压缩之后,将war包删掉
第四步:添加solr的扩展服务包
solr-4.10.3/example/lib/ext目录中所有jar包拷贝到tomca7.0-solr/webapps/solr/WEB-INF/lib目录下
第五步:添加log4j.properties 将以下目录的文件进行拷贝
solr-4.10.3/example/resource目录拷贝到tomca7.0-solr/webapps/solr/WEB-INF/classes
如果没有此目录的话,需要自己手动创建
第六步:在web.xml中指定solrhome的目录
在<env-entry>标签中value的值改/usr/local/solr/solrhome
2、 Solrcore的安装
1 Solrcore和solrhome
Solrhome是solr服务运行的主目录,一个solrhome目录里面包含多个solrcore目录,一个solrcore目录里面了一个solr实例运行时所需要的配置文件和数据文件。
每一个solrcore都可以单独对外提供搜索和索引服务。
多个solrcore之间没有关系
2 Solrcore的安装
安装solrcore需要先安装solrhome 将以下目录的文件进行拷贝
mkdir /usr/local/solr/solr/home
将solr-4.10.3/example/solr/ 目录中的所有文件 拷贝到/usr/local/solr/solrhome中
这样solrhome和solrcore就安装成功了
3、 Solr集群的架构
SolrCloud 需要用到solr+zookeeper
4、 Zookeeper
1、集群管理
主从的管理、负载均衡、高可用的管理。集群的入口。Zookeeper必须是集群才能保证高可用。
Zookeeper有选举和投票的机制。集群中至少应该有三个节点。
2、配置文件的集中管理
搭建solr集群时,需要把Solr的配置文件上传zookeeper,让zookeeper统一管理。每个节点都到zookeeper上取配置文件。
3、分布式锁
4、忘了
5、 集群需要的服务器
Zookeeper:3台
Solr:4台
伪分布式,zookeeper三个实例、tomcat(solr)需要四个实例。
Zookeeper需要安装jdk
6、 集群搭建步骤
第一部分:Zookeeper集群搭建
第一步:需要把zookeeper的安装包上传到服务器
第二步:把zookeeper解压
第三步:把zookeeper向/usr/local/solr-cloud目录下复制三份
第四步:配置zookeeper。
1、在zookeeper01目录下创建一个data文件夹
2、在data目录下创建一个myid的文件
3、Myid的内容为1(02对应“2”,03对应“3”)
4、Zookeeper02、03以此类推。
5、进入conf文件,把zoo_sample.cfg文件改名为zoo.cfg
6、修改zoo.cfg,把dataDir=属性指定为刚创建的data文件夹
7、修改zoo.cfg,把clientPort指定为不冲突的端口号(01:2181、02:2182、03:2183)
8、在zoo.cfg中最后一行添加如下内容: 自己主机的IP地址
server.1=192.168.25.154:2881:3881
server.2=192.168.25.154:2882:3882
server.3=192.168.25.154:2883:3883
修改如下内容:
dataDir=/usr/local/solr-could/zookeeper01/data/
clientport=2181
第四步:启动zookeeper。
Zookeeper的目录下有一个bin目录。使用zkServer.sh启动zookeeper服务。
启动:./zkServer.sh start
关闭:./zkServer.sh stop
查看服务状态:./zkServer.sh status
第二部分:搭建solr集群
第一步:安装四个tomcat,修改其端口号不能冲突。8080~8083
第二步:向tomcat下部署solr。把单机版的solr工程复制到tomcat下即可。
第三步:为每个solr实例创建一solrhome
第四步:为每个solr实例关联对应的solrhome。修改web.xml
第五步:修改每个solrhome下的solr.xml文件。修改host、hostPort两个属性。分别是对应的ip及端口号
${host:主机的主机IP}
${jetty:port:8080}
第六步:把配置文件上传到zookeeper。需要使用
/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh命令上传配置文件。
把/usr/local/solr-cloud/solrhome01/collection1/conf目录上传到zookeeper。
需要zookeeper集群已经启动。
./zkcli.sh -zkhost 192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf
第七步:查看是否上传成功。
使用zookeeper的zkCli.sh命令
第八步:告诉solr实例zookeeper的位置。需要修改tomcat的catalina.sh添加
JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"
每个节点都需要添加。
第九步:启动每个solr实例
第十步:集群分片。
将集群分为两片,每片两个副本。
http://192.168.25.154:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
第十一步:删除不用collection1
http://192.168.25.154:8080/solr/admin/collections?action=DELETE&name=collection1