solr

solr官方教程,领悟书生教程网提供solr教程,solr视频教程,solr学习笔记,solr电子书等系列教程

SolrCloud 环境搭建

2016-06-11| 发布: | 浏览: 2147 |保存PDF

Jdk:1.8

Tomcat7

Zookeeper3.4.6

Solr4.10.3


SolrCloud结构图



本实验基于window下多个端口来模拟多台机器,不过和真实环境搭建差别不大。
目录如下:


zookeeper集群安装配置

Zookeeper有一个选举机制,选举谁是leader谁是follower。成为主节点,需要得到半数以上的投票。尽可能为奇数节点。

第一步
创建三个zookeeper实例,解压zookeeperzookeeper-3.4.6拷贝到solrcloud下,复制三份分别并将目录名改为zookeeper1zookeeper2zookeeper3
第二步:在 zookeeper1 2 3 文件夹下分别创建一个 data 目录。在 data 目录下创建一个 myid 的文件。文件的内容 zookeeper1 下就是 1 zookeeper2 下就是 2 zookeeper3 下就是 3
第三步:进入conf文件夹,复制zoo_sample.cfg,并改名为zoo.cfg,并做以下修改

修改:

dataDir=D:/temp/solrcloud/zookeeper1/data

clientPort=2181zookeeper2中为2182zookeeper3中为2183

添加:

server.1=127.0.0.1:2881:3881

server.2=127.0.0.1:2882:3882

server.3=127.0.0.1:2883:3883


完整配置

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=E:/dev/solr/solrcloud/zookeeper1/data
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=127.0.0.1:2881:3881
server.2=127.0.0.1:2882:3882
server.3=127.0.0.1:2883:3883

zookeeper2 3同样做以上配置

第四步:分别对zookeeper1、2、3 启动zkServer

zookeeper1/bin/zkServer.cmd

zookeeper2/bin/zkServer.cmd

zookeeper3/bin/zkServer.cmd

(要三台没全部启动时,可能会提示错误,全启动后就好了)


tomcat配置

第一步:将tomcat解压

第二步:把解压后的tomcat复制到solrcloud目录下复制四份。

tomcat1

tomcat2

tomcat3

tomcat4

第三步:修改tomcatserver.xml

tomcat2/conf/server.xml,把其中的端口后都加一。保证两个tomcat可以正常运行不发生端口冲突。

<?xml version='1.0' encoding='utf-8'?>
<Server port=" 8006" shutdown="SHUTDOWN">
 ......
   <Connector port=" 8081" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443" />
   ......
   <Connector port=" 8010" protocol="AJP/1.3" redirectPort="8443" />
......

1、参考《 tomcat部署solr 》部署单机的方法,拷贝4单机版的solr home
2、 solrhome/collection1/conf 文件夹的内容上传到 zookeeper 集群,拷贝其中一个solrhome即可
使用zookeeper统一管理solr的配置文件 (主要是 schema.xml solrconfig.xml ), solrCloud 各节点使用 zookeeper 管理的配置文件
java -classpath E:\dev\solr\solrcloud\tomcat1\webapps\solr\WEB-INF \lib\* org.apache.solr.cloud.ZkCLI -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -cmd upconfig -confdir E:\dev\solr\solrcloud\solrhome1\collection1\conf -confname myconf



3、登录zookeeper的客户端查看配置文件
执行 zkCli.cmd查看
[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf
[currency.xml, mapping-FoldToASCII.txt, protwords.txt, scripts.conf, synonyms.txt, stopwords.txt, dataimport.properties, velocity, _schema_analysis_synonyms_english.json, admin-extra.html, update-script.js, data-config.xml, _schema_analysis_stopwords_english.json, solrconfig.xml, admin-extra.menu-top.html, elevate.xml, schema.xml, clustering, mapping-ISOLatin1Accent.txt, spellings.txt, xslt, _rest_managed.json, lang, admin-extra.menu-bottom.html]
[zk: localhost:2181(CONNECTED) 3]



4、修改每个solrhomesolr.xml文件,配置主机和端口

以第一个solrhome示例:

E:\dev\solr\solrcloud\solrhome1\ solr.xml
 <solrcloud>
   <str name="host">${host: 127.0.0.1}</str>
   <int name="hostPort">${jetty.port: 8080}</int>
   <str name="hostContext">${hostContext:solr}</str>
   <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
   <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
 </solrcloud>


5、修改每个tomcat的catalina.bat,让solr实例获取到zookeeper的位置

修改每一台solrtomcat bin目录下catalina.bat文件中加入DzkHost指定zookeeper服务器地址

set JAVA_OPTS="-DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"

6、分别启动各台tomcat,访问solrclud

4台都是Recovering状态,等一下刷新即可


7、创建有两片的collection。在浏览器的url中输入如下内容:

http://127.0.0.1:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2




删除集群命令;

http://127.0.0.1:8080/solr/admin/collections?action=DELETE&name=collection1

执行后原来的collection1删除,如下:



参考于网络整理


系列教程

大家都在看

热门访问