[超级连接: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伪集群配置成功。