solrcloud5.5+zk3.4.6+tomcat8(jdk7)集群配置


solrcloud5.5+zk3.4.6+tomcat8(jdk7) 详细配置(3台服务器举例)

1.官网分别下载标题对应版本软件,并分别安装在3台服务器


2.ZooKeeper集群配置

安装ZooKeeper集群,在上面3节点上分别安装,使用的版本是zookeeper-3.4.6
在任意一台服务器上,更名 /zookeeper-3.4.6/conf/zoo.cfg

编辑内容:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=E://work/solrcloud1/zookeeper-3.4.6/data #必须手动mkdir
dataLogDir=E://work/solrcloud1/zookeeper-3.4.6/logs #必须手动mkdir
clientPort=2181 #zk端口
server.1=127.0.0.1:2887:3887
server.2=127.0.0.1:2888:3888
server.3=127.0.0.1:2889:3889

然后,在data目录下创建myid文件,内容为1,对应server.1

然后在其他2台服务器相同的操作,注意clientPort是否占用,
并且创建对应的myid文件,内容分别是2、3

启动ZooKeeper集群,在每个节点上分别启动ZooKeeper服务:

bin/zkServer.sh start
(bin/zkServer.cmd)

可以查看ZooKeeper集群的状态,保证集群启动没有问题:

[hadoop@master zookeeper-3.4.5]$ bin/zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/applications/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg

Mode: follower

[hadoop@slave1 zookeeper-3.4.5]$ bin/zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/applications/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg

Mode: follower


[hadoop@slave4 zookeeper-3.4.5]$ bin/zkServer.sh status

JMX enabled by default

Using config: /home/hadoop/applications/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg

Mode: leader

可以看到,slave4节点是ZooKeeper集群服务Leader

注意:zk最小安全集群服务器数量是3,如果出现一台宕机,出现1 leader 和 1 follower 正常工作,
如果集群剩下小于等于1台服务器,集群不能正常工作。


2.SolrCloud集群

任意一台添加tomcat关联solr-home配置:

把solr5.5目录 \solr-5.5.0\server\solr-webapp 下的webapp目录copy到
tomcat webapp目录下,更名solr;
目录:
\work\solrcloud1\tomcat8\webapps\solr

cp \solr-5.5.0\server\lib\* \work\solrcloud1\tomcat8\webapps\solr\WEB-INF\lib
cp \solr-5.5.0\server\resources\log4j.properties  \work\solrcloud1\tomcat8\webapps\solr\WEB-INF\classes(没有自己手动创建)


添加solr_home
\work\solrcloud1\solr_home
里边包含一个文件:

solr.xml

主要修改内容:
<int name="hostPort">8081</int> #端口号必须和当前tomcat端口一致

继续修改tomcat
\work\solrcloud1\tomcat8\webapps\solr\WEB-INF\web.xml

<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>\work\solrcloud1\solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>


同上分别在其他2台服务器做相同的配置;

在以上步骤已经分别把zk集群管理搭建完毕、把tomcat服务solr搭建完成,接下来
怎样把tomcat服务加到zk管理中呢?

分别修改tomcat的catalina.sh or bat
文件在\work\solrcloud1\tomcat8\bin下

在第二行添加如下代码:
set JAVA_OPTS="-DzkHost=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"

启动三台tomcat服务器,到此为止,zk管理tomcat solr服务已经搭建完成。
但是,打开任意tomcat solr服务

http://127.0.0.1:8081/solr/index.html#/~cloud

看不到内容,因为这个时候只是搭建了关联关系,并没有实实在在做任何collection集群配置;

继续

核心ZooKeeper管理监控配置文件:

还在当前这个服务器上,创建2个文件夹
cp \work\solr-5.5.0\server\solr\configsets\sample_techproducts_configs\conf\* \work\solrcloud1\config-files
cp \work\solrcloud1\tomcat8\webapps\solr\WEB-INF\lib\* \work\solrcloud1\solr-lib

SolrCloud是通过ZooKeeper集群来保证配置文件的变更及时同步到各个节点上,所以,需要将配置文件上传到ZooKeeper集群中
上传solr collection配置给zk做集群统一保存

java -classpath /work/solrcloud1/solr-lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 -confdir /work/solrcloud1/config-files/ -confname myconf

可以去zk下看看是否上传成功;
cd work\solrcloud1\zookeeper-3.4.6\bin
zkCli.sh -server ip:2181
ls /configs/myconf
ls /collections

....


这个时候
http://127.0.0.1:8081/solr/index.html#/~cloud 下依然没有什么内容

3.创建Collection、Shard和Replication

直接通过REST接口来创建Collection,如下所示:
curl 'http://127.0.0.1:8081/solr/admin/collections?action=CREATE&name=collection1&numShards=3&replicationFactor=1'

如果成功会得到类似如下内容:
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">5546</int>
</lst>
<lst name="success">
<lst>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">4653</int>
</lst>
<str name="core">mycore4_shard1_replica3</str>
</lst>
<lst>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">4655</int>
</lst>
<str name="core">mycore4_shard1_replica1</str>
</lst>
<lst>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">5016</int>
</lst>
<str name="core">mycore4_shard1_replica2</str>
</lst>
</lst>
</response>


上面链接中的几个参数的含义,说明如下:
name                待创建Collection的名称
numShards           分片的数量
replicationFactor   复制副本的数量

现在,,,终于。。。。可以通过Web管理页面,访问http://127.0.0.1:8081/solr/index.html#/~cloud,查看SolrCloud集群的分片信息。

并且在 每台服务器 \work\solrcloudX\solr_home 下会多一个文件夹
类似:
mycore4_shard1_replica1








http://blog.csdn.net/shirdrn/article/details/9718387
http://my.oschina.net/zhzhenqin/blog/84995
http://shiyanjun.cn/archives/100.html
http://www.cnblogs.com/huangfox/p/3920315.html

猜你喜欢

转载自zlr.iteye.com/blog/2290425