Linux+Solr+Zookeeper-02:Solr+Zookeeper集群配置SolrCloud

[超级连接:Linux+Solr+Zookeeper系列-序章]


本文主要讲解如何在Linux服务器上搭建通过Solr + Zookeeper搭建Solr集群服务(SolrCloud)。

1.环境

  • Ubuntu 16.04 LTS
  • jdk1.8.0_161
  • solr-6.6.0

由于资源有限,所以本人实际搭建时,并没有在三台计算机上进行集群搭建,只是在VMware上的一个虚机Ubuntu上进行了伪集群搭建

虽然是伪集群,但是与集群的搭建方法是类似的,而且比集群搭建更加复杂。

为了便于参考,在后面的章节中给出了集群方式的参考配置

2.配置Solr(伪集群方式)

关于Solr的配置请参考之前的文章:Linux+Solr+Zookeeper-01

伪集群中的Solr配置:

//分别在复制3分solr目录至相应目录
sudo cp /home/hanchao/solr-6.6.0/ /usr/local/solrcloud/solr1
sudo cp /home/hanchao/solr-6.6.0/ /usr/local/solrcloud/solr2
sudo cp /home/hanchao/solr-6.6.0/ /usr/local/solrcloud/solr3

修改Solr的执行权限

//授权(777有点粗暴,用户可以根据自身需求精确授权)
sudo chmod -R 777 /usr/local/solrcloud/solr1
sudo chmod -R 777 /usr/local/solrcloud/solr2
sudo chmod -R 777 /usr/local/solrcloud/solr3

3.配置Zookeeper(伪集群方式)

下载地址:

https://archive.apache.org/dist/zookeeper/

解压安装

//解压
tar -zvxf zookeeper-3.4.9.tar.gz 

拷贝并重命名zookeeper

//拷贝并重命名zookeeper目录
sudo cp -r zookeeper-3.4.9 /usr/local/solrcloud/zookeeper1
sudo cp -r zookeeper-3.4.9 /usr/local/solrcloud/zookeeper2
sudo cp -r zookeeper-3.4.9 /usr/local/solrcloud/zookeeper3

创建集群中的服务id

//创建data目录
sudo mkdir /usr/local/solrcloud/zookeeper1/data
sudo mkdir /usr/local/solrcloud/zookeeper2/data
sudo mkdir /usr/local/solrcloud/zookeeper3/data
//创建myid文件
sudo vim /usr/local/solrcloud/zookeeper1/data/myid
sudo vim /usr/local/solrcloud/zookeeper2/data/myid
sudo vim /usr/local/solrcloud/zookeeper3/data/myid

其中,

  • /usr/local/solrcloud/zookeeper1/data/myid中的内容为1
  • /usr/local/solrcloud/zookeeper2/data/myid中的内容为2
  • /usr/local/solrcloud/zookeeper3/data/myid中的内容为3

配置cfg配置文件

zookeeper1

//拷贝示例配置文件并重命名为zoo.cfg
sudo cp /usr/local/solrcloud/zookeeper1/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper1/conf/zoo.cfg
//修改zoo.cfg配置文件
sudo vim /usr/local/solrcloud/zookeeper1/conf/zoo.cfg

其中/usr/local/solrcloud/zookeeper1/conf/zoo.cfg主要修改项如下:

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/solrcloud/zookeeper1/data/
# the port at which the clients will connect
clientPort=2181
server.1=192.168.71.128:2881:3881
server.2=192.168.71.128:2882:3882
server.3=192.168.71.128:2883:3883

zookeeper2

//拷贝示例配置文件并重命名为zoo.cfg
sudo cp /usr/local/solrcloud/zookeeper2/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper2/conf/zoo.cfg
//修改zoo.cfg配置文件
sudo vim /usr/local/solrcloud/zookeeper2/conf/zoo.cfg

其中/usr/local/solrcloud/zookeeper2/conf/zoo.cfg主要修改项如下:

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/solrcloud/zookeeper2/data/
# the port at which the clients will connect
clientPort=2181
server.1=192.168.71.128:2881:3881
server.2=192.168.71.128:2882:3882
server.3=192.168.71.128:2883:3883

zookeeper3

//拷贝示例配置文件并重命名为zoo.cfg
sudo cp /usr/local/solrcloud/zookeeper3/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper3/conf/zoo.cfg
//修改zoo.cfg配置文件
sudo vim /usr/local/solrcloud/zookeeper3/conf/zoo.cfg

其中/usr/local/solrcloud/zookeeper3/conf/zoo.cfg主要修改项如下:

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/solrcloud/zookeeper3/data/
# the port at which the clients will connect
clientPort=2181
server.1=192.168.71.128:2881:3881
server.2=192.168.71.128:2882:3882
server.3=192.168.71.128:2883:3883

启动zookeeper

//启动zookeeper1
sudo zookeeper1/bin/zkServer.sh start
//启动成功信息
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper1/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
//启动zookeeper2
sudo zookeeper2/bin/zkServer.sh start
//启动成功信息
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper2/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
//启动zookeeper3
sudo zookeeper3/bin/zkServer.sh start
//启动成功信息
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper3/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看zookeeper状态

//查看zookeeper1状态
sudo zookeeper1/bin/zkServer.sh status
//状态显示zookeeper1是follower节点
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper1/bin/../conf/zoo.cfg
Mode: follower
//查看zookeeper2状态
sudo zookeeper2/bin/zkServer.sh status
//状态显示zookeeper2是leader节点
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper2/bin/../conf/zoo.cfg
Mode: leader
//查看zookeeper3状态
sudo zookeeper3/bin/zkServer.sh status
//状态显示zookeeper3是follower节点
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper3/bin/../conf/zoo.cfg
Mode: follower

当前zookeeper2是leader,其他两个服务是follower。


查看zookeeper情况

//查询2181,即zookeeper1的情况
echo stat|nc 127.0.0.1 2181
//信息类似如下
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /127.0.0.1:42336[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 3
Sent: 2
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4
//查询2182,即zookeeper2的情况
echo stat|nc 127.0.0.1 2182
//信息类似如下
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /127.0.0.1:52072[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: leader
Node count: 4
//查询2183,即zookeeper3的情况
echo stat|nc 127.0.0.1 2183
//信息类似如下
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /127.0.0.1:45990[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x100000000
Mode: follower
Node count: 4

4.用Zookeeper启动SolrCloud(伪集群方式)

以SolrCloud方式启动

//启动solr1
./solr1/bin/solr start -c -p 8983 -z 192.168.71.128:2181,192.168.71.128:2182,192.168.71.128:2183
//启动信息
Waiting up to 180 seconds to see Solr running on port 8983 [-]
Started Solr server on port 8983 (pid=15592). Happy searching!
//启动solr2
./solr2/bin/solr start -c -p 8984 -z 192.168.71.128:2181,192.168.71.128:2182,192.168.71.128:2183
//启动信息
Waiting up to 180 seconds to see Solr running on port 8984 [-]
Started Solr server on port 8984 (pid=15814). Happy searching!
//启动solr3
./solr3/bin/solr start -c -p 8985 -z 192.168.71.128:2181,192.168.71.128:2182,192.168.71.128:2183
//启动信息
Waiting up to 180 seconds to see Solr running on port 8985 [-]
Started Solr server on port 8985 (pid=16020). Happy searching!

参数说明:

  • -c:SolrCloud模式
  • -p 8983:端口号
  • -z:以Zookeeper方式
  • 192.168.71.128:2181,192.168.71.128:2182,192.168.71.128:2183:Zookeeper服务地址集,以逗号分隔

验证SolrCloud启动成功
在浏览器中分别验证一下服务能够正常访问:

在任意一个服务中,找到下面的配置,存在节点信息,则证明Solr伪集群配置成功。
这里写图片描述



下面提供集群的配置方式,本人并没有亲测,但是应该可用。

如果存在问题,请多多指教。

11.环境假设

假设有三台服务器,其IP地址如下:

  • 192.168.71.128,以下简称为71.128
  • 192.168.71.129,以下简称为71.129
  • 192.168.71.130,以下简称为71.130

22.配置Solr(集群方式)

关于Solr的配置请参考之前的文章:Linux+Solr+Zookeeper-01

集群中的Solr配置:

//分别在三台服务器进行操作
sudo cp /home/hanchao/solr-6.6.0/ /usr/local/solrcloud/solr

修改Solr的执行权限

//分别在三台服务器进行授权(777有点粗暴,用户可以根据自身需求精确授权)
sudo chmod -R 777 /usr/local/solrcloud/solr

33.配置Zookeeper(集群方式)

下载地址:

https://archive.apache.org/dist/zookeeper/

解压安装

//分别在三台服务器,解压
tar -zvxf zookeeper-3.4.9.tar.gz 

拷贝并重命名zookeeper

//分别在三台服务器,拷贝并重命名zookeeper目录
sudo cp -r zookeeper-3.4.9 /usr/local/solrcloud/zookeeper

创建集群中的服务id

//分别在三台服务器,创建data目录
sudo mkdir /usr/local/solrcloud/zookeeper/data
//分别在三台服务器,创建myid文件
sudo vim /usr/local/solrcloud/zookeeper/data/myid

其中,

  • 在服务器71.128上的/usr/local/solrcloud/zookeeper/data/myid中的内容为1
  • 在服务器71.129上的/usr/local/solrcloud/zookeeper/data/myid中的内容为2
  • 在服务器71.130上的/usr/local/solrcloud/zookeeper/data/myid中的内容为3

配置cfg配置文件
分别在三台服务器上进行以下操作:

//拷贝示例配置文件并重命名为zoo.cfg
sudo cp /usr/local/solrcloud/zookeeper/conf/zoo_sample.cfg /usr/local/solrcloud/zookeeper/conf/zoo.cfg
//修改zoo.cfg配置文件
sudo vim /usr/local/solrcloud/zookeeper/conf/zoo.cfg

其中/usr/local/solrcloud/zookeeper/conf/zoo.cfg主要修改项如下:

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/solrcloud/zookeeper/data/
# the port at which the clients will connect
clientPort=2181
server.1=192.168.71.128:2881:3881
server.2=192.168.71.129:2881:3881
server.3=192.168.71.130:2881:3881

自动zookeeper

分别在三台服务器上进行以下操作:

//启动zookeeper
sudo zookeeper/bin/zkServer.sh start
//启动成功
ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看zookeeper状态

分别在三台服务器上进行以下操作:

sudo zookeeper/bin/zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper/bin/../conf/zoo.cfg
Mode: follower

最后的Mode可能为follower或者leader。


查看zookeeper情况

分别在三台服务器上进行以下操作:

//查询2181,即zookeeper的情况
echo stat|nc 127.0.0.1 2181
//信息类似如下
Zookeeper version: 3.4.9-1757313, built on 08/23/2016 06:50 GMT
Clients:
 /127.0.0.1:42336[0](queued=0,recved=1,sent=0)

Latency min/avg/max: 0/0/0
Received: 3
Sent: 2
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: follower
Node count: 4

44.用Zookeeper启动SolrCloud(集群方式)

以SolrCloud方式启动

分别在三台服务器上进行以下操作:

//启动solr
./solr/bin/solr start -c -p 8983 -z 192.168.71.128:2181,192.168.71.129:2181,192.168.71.130:2181
//启动信息
Waiting up to 180 seconds to see Solr running on port 8983 [-]
Started Solr server on port 8983 (pid=15592). Happy searching!

参数说明:

  • -c:SolrCloud模式
  • -p 8983:端口号
  • -z:以Zookeeper模式
  • 192.168.71.128:2181,192.168.71.129:2181,192.168.71.130:2181:Zookeeper服务地址集,以逗号分隔

验证SolrCloud启动成功
在浏览器中分别验证一下服务能够正常访问:

在任意一个服务中,找到下面的配置,存在节点信息,则证明Solr伪集群配置成功。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值