solr集群的搭建

一、搭建的结构

Zookeeper:3台

Solr:4台

 

 伪分布式,zookeeper三个实例、tomcat(solr)需要四个实例。

 Zookeeper需要安装jdk。

 

二、Zookeeper的搭建

   第一步:需要把zookeeper的安装包上传到服务器。

   第二步:把zookeeper解压。[root@localhost ~]# tar -zxf zookeeper-3.4.6.tar.gz

   第三步:把zookeeper向/usr/local/solr-cloud目录下复制三份。

        1、/usr/local/目录下  新建文件夹solr-cloud     [root@localhost ~]# mkdir /usr/local/solr-cloud

        2、复制三分   

          [root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper01
          [root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper02
          [root@localhost ~]# cp -r zookeeper-3.4.6 /usr/local/solr-cloud/zookeeper03

     第三步:配置zookeeper。

      1、在zookeeper01目录下创建一个data文件夹。 [root@localhost zookeeper01]# mkdir data

      2、在data目录下创建一个myid的文件   [root@localhost zookeeper01]# echo 1 >>data/myid

      3、Myid的内容为1(02对应“2”,03对应“3”)

      4、Zookeeper02、03以此类推。

      5、进入conf文件,把zoo_sample.cfg文件改名为zoo.cfg   [root@localhost conf]# cp zoo_sample.cfg zoo.cfg

      6、修改zoo.cfg,把dataDir=属性指定为刚创建的data文件夹。 dataDir=/usr/local/solr-cloud/zookeeper01/data/

      7、修改zoo.cfg,把clientPort指定为不冲突的端口号(01:2181、02:2182、03:2183)  

      8、在zoo.cfg中添加如下内容,最后添加:

server.1=192.168.20.7:2881:3881
server.2=192.168.20.7:2882:3882
server.3=192.168.20.7:2883:3883

 

  第四步:启动zookeeper。

    Zookeeper的目录下有一个bin目录。使用zkServer.sh启动zookeeper服务。 /usr/local/solr-cloud/zookeeper01/bin

    启动:./zkServer.sh start

    关闭:./zkServer.sh stop

    查看服务状态:./zkServer.sh status

 

三:搭建solr集群

第一步:安装四个tomcat,修改其端口号不能冲突。8080~8083

  拷贝四个  

  [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01
  [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02
  [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03
  [root@localhost ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04

  修改端口 vim tomcat02(3、4)/conf/server.xml

第二步:向tomcat下部署solr。把单机版的solr工程复制到tomcat下即可。 

  [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat01/webapps/
  [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat02/webapps/
  [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat03/webapps/
  [root@localhost webapps]# cp -r solr /usr/local/solr-cloud/tomcat04/webapps/  

第三步:为每个solr实例创建一solrhome。

  [root@localhost solr]# cp -r solrhome /usr/local/solr-cloud/solrhome01
  [root@localhost solr]# cp -r solrhome /usr/local/solr-cloud/solrhome02
  [root@localhost solr]# cp -r solrhome /usr/local/solr-cloud/solrhome03
  [root@localhost solr]# cp -r solrhome /usr/local/solr-cloud/solrhome04

第四步:为每个solr实例关联对应的solrhome。修改web.xml

    <env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr-cloud/solrhome03</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

 

第五步:修改每个solrhome下的solr.xml文件。修改host、hostPort两个属性。分别是对应的ip及端口号。

  <solrcloud>
    <str name="host">${host:192.168.20.7}</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>

第六步:把配置文件上传到zookeeper。需要使用

/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh命令上传配置文件。

把(任意一个)/usr/local/solr-cloud/solrhome01/collection1/conf目录上传到zookeeper。前提是需要zookeeper集群已经启动。

 

在/root/solr-4.10.3/example/scripts/cloud-scripts

./zkcli.sh -zkhost 192.168.20.7:2181,192.168.20.7:2182,192.168.20.7:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

 

第七步:查看是否上传成功。

使用zookeeper的zkCli.sh命令。

  [zk: localhost:2181(CONNECTED) 0] ls /
  [configs, zookeeper]
  [zk: localhost:2181(CONNECTED) 1] ls c

  [zk: localhost:2181(CONNECTED) 1] ls /configs
  [myconf]
     [zk: localhost:2181(CONNECTED) 3] ls /configs/myconf

    显示:[admin-extra.menu-top.html, currency.xml, protwords.txt, mapping-FoldToASCII.txt, _schema_analysis_synonyms_english.json, _rest_managed.json, solrconfig.xml,       _schema_analysis_stopwords_english.json, lang, stopwords.txt, spellings.txt, mapping-ISOLatin1Accent.txt, admin-extra.html, xslt, synonyms.txt, scripts.conf, update-script.js, velocity, elevate.xml, admin-extra.menu-bottom.html, clustering, schema.xml]

第八步:告诉solr实例zookeeper的位置。需要修改tomcat的catalina.sh添加

  JAVA_OPTS="-DzkHost=192.168.20.7:2181,192.168.20.7:2182,192.168.20.7:2183"

  

  每个节点都需要添加。

第九步:启动每个solr实例。

 为了统一执行tomcat,新建一个执行文件

在/usr/local/solr-cloud目录下新建start-all.sh

/usr/local/solr-cloud/tomcat01/bin/startup.sh
/usr/local/solr-cloud/tomcat02/bin/startup.sh
/usr/local/solr-cloud/tomcat03/bin/startup.sh
/usr/local/solr-cloud/tomcat04/bin/startup.sh

修改文可执行文件

[root@localhost solr-cloud]# chmod +x start-all.sh

 

 执行之后,查看tomcat的启动日志[root@localhost ~]# tail -f /usr/local/solr-cloud/tomcat01/logs/catalina.out

第十步:集群分片。

将集群分为两片,每片两个副本。

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

第十一步:删除不用collection1

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

 

posted @ 2017-04-12 15:26  mslog  阅读(333)  评论(0编辑  收藏  举报