Solr5.2.1+Zookeeper3.4.8分布式集群搭建

1.选取三台服务器

由于机器比较少,现将zookeeper和solr都部署在以下三台机器上。(以下操作都是在172.16.20.101主节点上进行的哦)

172.16.20.101 主节点

172.16.20.102 从节点

172.16.20.103 从节点

2.Zookeeper集群部署

1)访问官网下载zookeeper安装包,我用的是zookeeper-3.4.8.tar.gz

2)解压安装包,我是解压到自己新建的目录/data/zookeeper下。

tar -zxvf zookeeper-3.4.8.tar.gz

3)在/data/zookeeper目录下新建data,logs两个文件夹。

4)进入zookeeper-3.4.8/conf目录,把zoo_sample.cfg文件改成zoo.cfg

cp zoo_sample.cfg zoo.cfg

5)修改zoo.cfg文件,需要修改以下几个地方

dataDir=/data/zookeeper/data

dataLogDir=/data/zookeeper/logs

clientPort=2181

在文件末尾添加:

server.1=172.16.20.101:2888:3888

server.2=172.16.20.102:2888:3888

server.3=172.16.20.103:2888:3888

6)将配置好的zookeeper复制到另外两台服务器上。

scp -r /data/zookeeper [email protected]:/data

scp -r /data/zookeeper [email protected]:/data

7)分别在三台服务器的/data/zookeeper/data目录下新建myid文件,内容分别为server.1,server.2,server.3后面的数字,例如:

echo "1" > myid

8)分别进入三台服各器的/data/zookeeper/zookeeper-3.4.8/bin目录下,启动服务。

./zkServer.sh start

9)启动完成后,查看服务状态。

./zkServer.sh status

3.Solr分布式集群部署

1)访问Apache官网下载solr安装包,我用的是solr-5.2.1.zip包。

2)解压安装包,我是解压到自己新建的目录/data/solr下。

unzip solr-5.2.1.zip

3)修改/data/solr/solr-5.2.1/bin/solr.in.sh文件

SOLR_JAVA_MEM="-Xms1G -Xmx1G"

ZK_HOST="172.16.20.101:2181,172.16.20.102:2181,172.16.20.103:2181"

4)将配置好的solr复制到另外两台服务器上。

scp -r /data/solr [email protected]:/data

scp -r /data/solr [email protected]:/data

5)在每个节点启动solr服务,进入/data/solr/solr-5.2.1,执行如下命令

bin/solr start

6)在每个节点查看solr运行状态

bin/solr status

7)solr集群搭建完毕,访问solr界面。

http://172.16.20.101:8983/solr

4.Solr集群的操作

  以下的操作均是以http://172.16.20.101:8983/solr这个开头访问的,然后跟在这个url后面才是完整的路径。如:我写的/admin/collections?action=DELETE&name=article,则访问路径是:http://172.16.20.101:8983/solr/admin/collections?action=DELETE&name=article

4.1 创建collection

两种方式创建collection,根据路由方式的不同:

第一种implicit路由方式

/admin/collections?action=CREATE&name=article&router.name=implicit&shards=shard1,shard2,shard3&maxShardsPerNode=5&collection.configName=collection3Conf

第二种compositeId路由方式

/admin/collections?action=CREATE&name=article&router.name=compositeId&numShards=5&replicationFactor=1&maxShardsPerNode=5&collection.configName=collection3Conf

或者

/admin/collections?action=CREATE&name=application&router.name=compositeId&numShards=1&replicationFactor=2&maxShardsPerNode=2&collection.configName=application&createNodeSet=172.16.20.102:8983_solr,172.16.20.103:8983_solr

4.2删除collection

/admin/collections?action=DELETE&name=article

4.3增加分片shard

  implicit路由实现该需求比较简单,只要创建Shard即可。

/admin/collections?action=CREATESHARD&collection=article&shard=shard1&name=article_shard1_replica2

compositeId路由实现该需求稍微麻烦一下,通过分裂(SPLITSHARD)操作实现。

/admin/collections?action=SPLITSHARD&collection=article&shard=shard1

4.4删除分片shard

  /admin/collections?action=DELETESHARD&collection=article&shard=shard1

4.5上传SolrCloud的配置文件到zookeeper,统一保存配置文件

java -classpath .:/data/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 172.16.20.101:2181,172.16.20.102:2181,172.16.20.102:2181 -confdir /data/solr/solr-5.2.1/server/solr/configsets/sample_techproducts_configs/conf/ -confname collection1Conf

4.6将上传到ZooKeeper中配置文件与Collection相关联

  java -classpath .:/data/solr/solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection collection1 -confname collection1Conf -zkhost 172.16.20.101:2181,172.16.20.102:2181,172.16.20.103:2181

4.7将配置上传到zookeeper,如果要让正在运行的solr同步加载这些文件,需要让solr重新加载一下配置文件

  /admin/collections?action=RELOAD&name=article

更多Solr相关教程见以下内容

Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里

相关推荐