`

solrcloud安装部署

 
阅读更多

环境准备,请安装好自己的jdk。 

 

注意,我搭建的是伪集群,一个虚拟机,分配了1G内存,然后搭建的集群。

 

一、zookeeper集群安装。

 

第一步:解压zookeeper,将zookeeper-3.4.6拷贝到/usr/local/solr-cloud下,复制三份分别并将目录名改为zookeeper1、zookeeper2、zookeeper3。

 

 1 # 首先将zookeeper进行解压缩操作。

 tar -zxvf zookeeper-3.4.6.tar.gz -C /home/hadoop/soft/

 2 # 然后创建一个solr-cloud目录。

 cd /usr/local/

 mkdir solr-cloud

 3 复制三份分别并将目录名改为zookeeper1、zookeeper2、zookeeper3。

 cp -r zookeeper-3.4.6/ /usr/local/solr-cloud/zookeeper1

 cp -r zookeeper1/ zookeeper2

 cp -r zookeeper1/ zookeeper3

 

第二步:进入zookeeper1文件夹,创建data目录。并在data目录中创建一个myid文件内容为"1"(echo 1 >> data/myid)。

 

 1 [root@localhost solr-cloud]# ls

 2 zookeeper1  zookeeper2  zookeeper3

 3 [root@localhost solr-cloud]# cd zookeeper1

 4 [root@localhost zookeeper1]# ls

 5 bin        CHANGES.txt  contrib     docs             ivy.xml  LICENSE.txt  README_packaging.txt  recipes  zookeeper-3.4.6.jar      zookeeper-3.4.6.jar.md5

 6 build.xml  conf         dist-maven  ivysettings.xml  lib      NOTICE.txt   README.txt            src      zookeeper-3.4.6.jar.asc  zookeeper-3.4.6.jar.sha1

 7 [root@localhost zookeeper1]# mkdir data

 8 [root@localhost zookeeper1]# cd data/

 9 [root@localhost data]# ls

10 [root@localhost data]# echo 1 >> myid

11 [root@localhost data]# cat myid    

 

第三步:进入conf文件夹,把zoo_sample.cfg改名为zoo.cfg。

 

 1 [root@localhost zookeeper1]# ls

 2 bin        CHANGES.txt  contrib  dist-maven  ivysettings.xml  lib          NOTICE.txt            README.txt  src                  zookeeper-3.4.6.jar.asc  zookeeper-3.4.6.jar.sha1

 3 build.xml  conf         data     docs        ivy.xml          LICENSE.txt  README_packaging.txt  recipes     zookeeper-3.4.6.jar  zookeeper-3.4.6.jar.md5

 4 [root@localhost zookeeper1]# cd conf/

 5 [root@localhost conf]# ls

 6 configuration.xsl  log4j.properties  zoo_sample.cfg

 7 [root@localhost conf]# mv zoo_sample.cfg zoo.cfg 

 8 [root@localhost conf]# ls

 9 configuration.xsl  log4j.properties  zoo.cfg

10 [root@localhost conf]# 

 

 

第四步:修改zoo.cfg。

修改:dataDir=/usr/local/solr-cloud/zookeeper1/data

注意:clientPort=2181(zookeeper2中为2182、zookeeper3中为2183)

可以在末尾添加这三项配置(注意:2881和3881分别是zookeeper之间通信的端口号、zookeeper之间选举使用的端口号。2181是客户端连接的端口号,别搞错了哦):

server.1=192.168.110.142:2881:3881

server.2=192.168.110.142:2882:3882

server.3=192.168.110.142:2883:3883

 

第五步:对zookeeper2、zookeeper3中的设置做第二步至第四步修改。

zookeeper2修改如下所示:

a)、myid内容为2

b)、dataDir=/usr/local/solr-cloud/zookeeper2/data

c)、clientPort=2182

Zookeeper3修改如下所示:

a)、myid内容为3

b)、dataDir=/usr/local/solr-cloud/zookeeper3/data

c)、clientPort=2183

 

第六步:启动三个zookeeper。

/usr/local/solr-cloud/zookeeper1/bin/zkServer.sh start

/usr/local/solr-cloud/zookeeper2/bin/zkServer.sh start

/usr/local/solr-cloud/zookeeper3/bin/zkServer.sh start

查看集群状态:

/usr/local/solr-cloud/zookeeper1/bin/zkServer.sh status

/usr/local/solr-cloud/zookeeper2/bin/zkServer.sh status

/usr/local/solr-cloud/zookeeper3/bin/zkServer.sh status

 

第七步:开启zookeeper用到的端口,或者直接关闭防火墙。

service iptables stop

 

1 [root@localhost solr-cloud]# vim start-zookeeper.sh

2 [root@localhost solr-cloud]# chmod u+x start-zookeeper.sh 

3 [root@localhost solr-cloud]# ll

4 total 16

5 -rwxr--r--.  1 root root  133 Sep 13 18:32 start-zookeeper.sh

6 drwxr-xr-x. 11 root root 4096 Sep 13 02:13 zookeeper1

7 drwxr-xr-x. 11 root root 4096 Sep 13 02:35 zookeeper2

8 drwxr-xr-x. 11 root root 4096 Sep 13 02:37 zookeeper3

9 [root@localhost solr-cloud]#

 

 

二、tomcat安装。 (注意:solrCloud部署依赖zookeeper,需要先启动每一台zookeeper服务器。)

 

注意:使用之前搭建好的solr单机版,这里为了节省时间,直接拷贝之前的solr单机版,然后修改配置文件即可。

 

第一步:将apache-tomcat-7.0.47.tar.gz解压,tar -zxvf apache-tomcat-7.0.47.tar.gz。

 

1 [root@localhost solr-cloud]# tar -zxvf apache-tomcat-7.0.47.tar.gz

 

第二步:把解压后的tomcat复制到/usr/local/solr-cloud/目录下复制四份。

/usr/local/solr-cloud/tomcat1

/usr/local/solr-cloud/tomcat2

/usr/local/solr-cloud/tomcat3

/usr/local/solr-cloud/tomcat4

 

1 [root@localhost package]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat01

2 [root@localhost package]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat02

3 [root@localhost package]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat03

4 [root@localhost package]# cp -r apache-tomcat-7.0.47 /usr/local/solr-cloud/tomcat04

5 [root@localhost package]# cd /usr/local/solr-cloud/

6 [root@localhost solr-cloud]# ls

7 start-zookeeper.sh  status-zookeeper.sh  stop-zookeeper.sh  tomcat01  tomcat02  tomcat03  tomcat04  zookeeper1  zookeeper2  zookeeper3

8 [root@localhost solr-cloud]#

 

第三步:修改tomcat的server.xml,把其中的端口后都加一。保证两个tomcat可以正常运行不发生端口冲突。

 

[root@localhost solr-cloud]# vim tomcat01/conf/server.xml

[root@localhost solr-cloud]# vim tomcat02/conf/server.xml

[root@localhost solr-cloud]# vim tomcat03/conf/server.xml

[root@localhost solr-cloud]# vim tomcat04/conf/server.xml

 

tomcat01修改的端口分别是8005修改为8105,8080修改为8180,8009修改为8189。其他tomcat第二位依次累加1即可。

 

三、部署solr到tomcat并建立tomcat和ZK集群关系。

 

将之前的solr部署到四台tomcat下面。 

1 [root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr-4.10.3 tomcat01/webapps/

2 [root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr-4.10.3 tomcat02/webapps/

3 [root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr-4.10.3 tomcat03/webapps/

4 [root@localhost solr-cloud]# cp -r ../solr/tomcat/webapps/solr-4.10.3 tomcat04/webapps/

然后将单机版的solrhome复制四份,分别是solrhome01,solrhome02,solrhome03,solrhome04。

 

1 [root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome01

2 [root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome02

3 [root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome03

4 [root@localhost solr-cloud]# cp -r ../solr/solrhome/ solrhome04

5 [root@localhost solr-cloud]# ls

6 solrhome01  solrhome02  solrhome03  solrhome04  start-zookeeper.sh  status-zookeeper.sh  stop-zookeeper.sh  tomcat01  tomcat02  tomcat03  tomcat04  zookeeper1  zookeeper2  zookeeper3

7 [root@localhost solr-cloud]# 

 

然后开始编辑solrhome01,solrhome02,solrhome03,solrhome04。下面的solr.xml配置文件(修改每个solrhome的solr.xml文件)。让tomcat01和solrhome01对应上,其他依次类推,让tomcat02和solrhome02对应上,让tomcat03和solrhome03对应上,让tomcat04和solrhome04对应上。

 

然后将solr和solrhome之间建立关系。 

 

1 [root@localhost solr-cloud]# vim tomcat01/webapps/solr-4.10.3/WEB-INF/web.xml

2 [root@localhost solr-cloud]# vim tomcat02/webapps/solr-4.10.3/WEB-INF/web.xml

3 [root@localhost solr-cloud]# vim tomcat03/webapps/solr-4.10.3/WEB-INF/web.xml

4 [root@localhost solr-cloud]# vim tomcat04/webapps/solr-4.10.3/WEB-INF/web.xml

 

然后将tomcat和zookeeper建立关系。每一台solr和zookeeper关联。

 

修改每一个tomcat的bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址: 

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

 

注意:可以使用vim的查找功能查找到JAVA_OPTS的定义的位置,然后添加。

 

1 [root@localhost solr-cloud]# vim tomcat01/bin/catalina.sh

2 [root@localhost solr-cloud]# vim tomcat02/bin/catalina.sh

3 [root@localhost solr-cloud]# vim tomcat03/bin/catalina.sh

4 [root@localhost solr-cloud]# vim tomcat04/bin/catalina.sh

 

现在,每个部署在tomcat下面的solr都有自己的独立的solrhome。在solr集群环境下, solrhome下面的配置文件应该只有一份,所以这里将配置文件上传到zookeeper,让zookeeper进行管理配置文件。将solrhome下面的conf目录上传到zookeeper。使用solr自带的工具执行,将cong目录上传到zookeeper。

 

注意:由于zookeeper统一管理solr的配置文件(主要是schema.xml、solrconfig.xml), solrCloud各各节点使用zookeeper管理的配置文件。./zkcli.sh此命令在solr-4.10.3/example/scripts/cloud-scripts/目录下。

 

 1 [root@localhost solrhome01]# cd /home/hadoop/soft/

 2 [root@localhost soft]# ls

 3 apache-tomcat-7.0.47  jdk1.7.0_55  solr-4.10.3  zookeeper-3.4.6

 4 [root@localhost soft]# cd solr-4.10.3/

 5 [root@localhost solr-4.10.3]# ls

 6 bin  CHANGES.txt  contrib  dist  docs  example  licenses  LICENSE.txt  LUCENE_CHANGES.txt  NOTICE.txt  README.txt  SYSTEM_REQUIREMENTS.txt

 7 [root@localhost solr-4.10.3]# cd example/

 8 [root@localhost example]# ls

 9 contexts  etc  example-DIH  exampledocs  example-schemaless  lib  logs  multicore  README.txt  resources  scripts  solr  solr-webapp  start.jar  webapps

10 [root@localhost example]# cd scripts/

11 [root@localhost scripts]# ls

12 cloud-scripts  map-reduce

13 [root@localhost scripts]# cd cloud-scripts/

14 [root@localhost cloud-scripts]# ls

15 log4j.properties  zkcli.bat  zkcli.sh

16 [root@localhost cloud-scripts]# ./zkcli.sh -zkhost 192.168.110.142:2181,192.168.110.142:2182,192.168.110.142:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf

 

然后登陆zookeeper服务器查询配置文件,查看是否上传成功。上传成功以后所有节点共用这一份配置文件的。

 

 1 [root@localhost cloud-scripts]# cd /usr/local/solr-cloud/

 2 [root@localhost solr-cloud]# ls

 3 solrhome01  solrhome02  solrhome03  solrhome04  start-zookeeper.sh  status-zookeeper.sh  stop-zookeeper.sh  tomcat01  tomcat02  tomcat03  tomcat04  zookeeper1  zookeeper2  zookeeper3

 4 [root@localhost solr-cloud]# cd zookeeper1/

 5 [root@localhost zookeeper1]# ls

 6 bin        CHANGES.txt  contrib  dist-maven  ivysettings.xml  lib          NOTICE.txt            README.txt  src                  zookeeper-3.4.6.jar.asc  zookeeper-3.4.6.jar.sha1

 7 build.xml  conf         data     docs        ivy.xml          LICENSE.txt  README_packaging.txt  recipes     zookeeper-3.4.6.jar  zookeeper-3.4.6.jar.md5  zookeeper.out

 8 [root@localhost zookeeper1]# cd bin/

 9 [root@localhost bin]# ls

10 README.txt  zkCleanup.sh  zkCli.cmd  zkCli.sh  zkEnv.cmd  zkEnv.sh  zkServer.cmd  zkServer.sh

11 [root@localhost bin]# ./zkCli.sh 

 

然后将所有的tomcat启动即可。然后也写一个批处理启动tomcat的脚本。

 

1 [root@localhost solr-cloud]# vim start-tomcat.sh

2 [root@localhost solr-cloud]# ls

3 solrhome01  solrhome02  solrhome03  solrhome04  start-tomcat.sh  start-zookeeper.sh  status-zookeeper.sh  stop-zookeeper.sh  tomcat01  tomcat02  tomcat03  tomcat04  zookeeper1  zookeeper2  zookeeper3

4 [root@localhost solr-cloud]# chmod u+x start-tomcat.sh 

5 [root@localhost solr-cloud]#

 

1 [root@localhost solr-cloud]# ./start-tomcat.sh 

 

然后查看启动的状况,如下所示:

 

 1 [root@localhost solr-cloud]# jps

 

10 [root@localhost solr-cloud]# ps -aux | grep tomcat

 

上图中的collection1集群只有一片,可以通过下边的方法配置新的集群。

如果集群中有四个solr节点创建新集群collection2,将集群分为两片,每片两个副本。

 

做到这里报了一堆莫名奇妙的错误,百度了很久,没有找到具体原因,就是起不来,可能是分配1G的内存太小了,我调到1.5G内存,然后将单机版solr,集群版solr,全部删除了,然后重新搭建,才成功了。如下图所示,这玩意,还是建议多研究,搭建的时候仔细点,不然一不小心就错了。

 

这内存显示都快使用完了,分配的1.5G内存,那之前的1G内存肯定是不够用了。

 

 

四、客户端如何通过zookeeper访问solr集群

@Test

public void testAddDocument() throws Exception {

// zkHost:zookeeper的地址列表

String zkHost = "192.168.25.130:2181,192.168.25.130:2182,192.168.25.130:2183";

// 创建一个集群的连接,应该使用CloudSolrServer创建

CloudSolrServer solrServer = new CloudSolrServer(zkHost);

// 设置一个defaultCollection属性

solrServer.setDefaultCollection("collection2");

// 创建一个文档对象

SolrInputDocument document = new SolrInputDocument();

// 向文档中添加域

document.setField("id", "solrCloud01");

document.setField("item_title", "测试商品01");

document.setField("item_price", 123);

// 把文件内容写入索引库

solrServer.add(document);

// 提交

solrServer.commit();

}

 

五、常见问题

1、ZK集群中各个节点是如何建立关联的

zookeeper配置文件zoo.cfg配置文件配置集群中所有节点信息的

2、solr各个节点是如何关联的

solrhome中可以配置solrcloud节点信息

3、tomcat如何在ZK集群中注册的

tomcat catalina.sh 的启动参数中配置的

分享到:
评论

相关推荐

    solrcloud6安装配置

    SolrCloud是Apache Solr的一种分布式部署模式,它利用Zookeeper进行集群管理和配置同步,提供高可用性和数据的水平扩展。在本篇中,我们将详细探讨如何安装配置SolrCloud 6。 首先,我们需要下载Solr 6.6.0的安装包...

    SolrCloud集群部署

    在SolrCloud部署中,还需要注意以下要点: 1. 数据分割:索引数据被分成多个片段(Shards),每个片段可以分布在不同的物理节点上,以实现水平扩展。 2. Replication:每个片段都有一个或多个副本,提高了可用性和...

    solrCloud的集群部署

    ### SolrCloud 集群部署相关知识点 #### 一、SolrCloud基本概念与架构 **1.1 SolrCloud的关键概念** - **Core**:在传统的Solr单机环境中,Core通常指的是一个单独的索引。但在SolrCloud环境中,一个索引可能由多...

    solrcloud部署文档.docx

    在部署 SolrCloud 之前,我们需要准备好运行 Solr 和 ZooKeeper 的 Linux 服务器。在这个案例中,我们选择两台机器作为 Solr 节点,三台机器作为 ZooKeeper 集群。每台机器应安装 CentOS 7.0 操作系统,并配置静态 ...

    solrcloud部署文档.pdf

    本文档是介绍在centos7系统上部署solrcloud的过程,涉及的技术包括:部署zookeeper、使用solr默认的jetty服务器初始化solrcloud、使用zookeeper管理solrcloud配置文件、在linux系统上安装python3、通过python3操作...

    solrcloud分布式集群部署zookeeper集群安装+ClientCRUD实例

    在本教程中,我们将深入探讨如何部署一个SolrCloud分布式集群,并安装Zookeeper集群,同时提供客户端的CRUD(创建、读取、更新、删除)操作实例。 一、Zookeeper集群安装 Zookeeper是Apache Hadoop项目的一个子项目...

    Tomcat上部署SolrCloud.txt

    #### 四、SolrCloud部署至Tomcat 1. **上传Solr.war包**:将预先下载好的Solr.war包上传至SolrCloud节点机器,例如`s1.solr.com`。 - 命令示例:`scp solr.war user@host:/home/myuser/solr-war` 2. **解压Solr...

    solrcloud windows 环境搭建

    在Windows环境下搭建SolrCloud环境涉及多个步骤,包括Zookeeper集群的配置、Solr的部署和配置等。通过上述详细介绍,读者应能够理解SolrCloud的工作原理及其实现过程,从而在实际项目中有效利用其强大的分布式搜索...

    Solr4+SolrCloud安装使用手册和详细说明,参考官方文档整理.

    以下是对 SolrCloud 安装和使用进行的详细说明。 ### SolrCloud 安装步骤 1. **解压和部署**:首先,你需要解压缩 Solr 的发布包,例如 `solr-4.4.0`,然后将 `solr.war` 文件复制到 Tomcat 的 `webapps` 目录下。...

    Solr集群部署傻瓜指南

    遵循单机部署的步骤安装Solr,但要注意配置文件中的`solrcloud`参数,将其设为`true`以启用SolrCloud模式。 ##### 2.2.2 修改 Solr 的启动脚本,添加 ZooKeeper 配置 在Solr的`bin/solr.in.sh`(Linux)或`bin\solr...

    solr集群安装部署

    【Solr集群安装部署】 Apache Solr 是一个流行的开源全文搜索引擎,它提供了高效、可扩展的搜索和分析功能。在企业级应用中,通常需要部署Solr集群来实现高可用性和数据分布,以处理大量的索引和查询请求。以下是...

    solrcloud高可用集群搭建

    整个过程涵盖了操作系统的选择与配置、JDK 安装、Zookeeper 集群配置以及 Solr 集群的具体部署。这些步骤对于搭建一个稳定可靠的 SolrCloud 集群至关重要。此外,还需要注意的是,在生产环境中应考虑更多的容错机制...

    SolrCloud应用

    SolrCloud是Apache Lucene项目下的一个分布式搜索和分析服务,它是Apache Solr的一个扩展,设计用于处理大数据和高可用性场景。...通过理解这些核心概念和机制,开发者可以更好地构建和维护大规模的SolrCloud部署。

    solrcloud.rar

    SolrCloud是Apache Solr的一种分布式搜索和索引服务模式,它允许用户在多台服务器上部署和管理Solr实例,形成一个高可用、可扩展的搜索引擎集群。在这个集群中,数据分散存储并被索引,同时提供故障转移和负载均衡...

    SolrCloud文档

    3. **部署Core**:每个Shard由多个Core组成,分布在不同的服务器上,实现负载均衡。 4. **监控与维护**:定期检查集群状态,及时调整Shard和Replica的数量以应对业务增长。 综上所述,SolrCloud不仅能够有效解决大...

    SolrCloud集群架构图

    一个简单的关于Solr集群部署的,SolrCloud集群架构图

    solrCloud5.2.1 + tomcat7 + zookeeper3.4.6

    【SolrCloud5.2.1 + Tomcat7 + Zookeeper3.4.6 集成详解】 在Windows 7环境下搭建SolrCloud5.2.1、Tomcat7和Zookeeper3.4.6的集成环境是进行分布式搜索和索引管理的重要步骤。下面将详细介绍整个配置过程。 1. **...

    solrcloud 高可用集群搭建

    安装Zookeeper包括解压安装包、配置data和log目录、修改zoo.cfg配置文件、创建myid文件、将Zookeeper部署到所有节点并开启相应端口,最后启动Zookeeper服务。 5. **Solr集群安装**: - 创建SolrHome目录,并赋予...

Global site tag (gtag.js) - Google Analytics