solrCloud搭建

来源:互联网 发布:广东淘宝商城 编辑:程序博客网 时间:2024/05/21 10:33

当然这是在我们solr单机版已经搭建好了的情况下

搭建zookeeper集群
mkdir /usr/local/solr-cloud
复制3个zookeeper [最少的集群至少有3个zookeeper集群]

cp zookeeper /usr/local/solr-cloud/zookeeper01cp zookeeper /usr/local/solr-cloud/zookeeper02cp zookeeper /usr/local/solr-cloud/cd zookeeper01mkdir datacd dataecho 1 > /data/myid   每个zookeeper都需要不同的myidcd confmv zoo_sample.cfg zoo.cfgvim zoo.cfgdataDir=/usr/local/solr-cloud/zookeeper01/dataclientPort=2182 修改端口号,这个是客户端连接的端口server.1=172.16.82.68:2881:3881   这里2881是zookeeper内部通讯的端口号,3881是选举的端口号    server.2=172.16.82.68:2882:3882    server.3=172.16.82.68:2883:3883

其余同理 * 3

启动zookeeper集群

cd /usr/local/solr-cloud/zookeeper01/bin./zkServer.sh startcd ../../cd /usr/local/solr-cloud/zookeeper02/bin./zkServer.sh startcd ../../cd /usr/local/solr-cloud/zookeeper03/bin./zkServer.sh startcd ../../

chomd +x start-zookeeper.sh 给一下权限

Tomcat
复制4个tomcat过去

cp tomcat /usr/local/solr-cloud/tomcat01cp tomcat /usr/local/solr-cloud/tomcat02cp tomcat /usr/local/solr-cloud/tomcat03cp tomcat /usr/local/solr-cloud/tomcat04

配置tomcat端口号

vim tomcat01/conf/server.xml/port8105 8180 8109   修改以下端口<Server port="8005" shutdown="SHUTDOWN"><Connector port="8080"  ......./><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:wq

vim tomcat02/conf/server.xml/port8205 8280 8209<Server port="8005" shutdown="SHUTDOWN"><Connector port="8080"  ......./><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />:wq

….其余tomcat同理

把solr拷贝到每个tomcat下

cp -r solr /tomcat01/webapps/cp -r solr /tomcat02/webapps/cp -r solr /tomcat03/webapps/cp -r solr /tomcat04/webapps/

拷贝一下solrhome

cp -r solrhome /usr/local/solr-cloud/solrhome01cp -r solrhome /usr/local/solr-cloud/solrhome02cp -r solrhome /usr/local/solr-cloud/solrhome03cp -r solrhome /usr/local/solr-cloud/solrhome04

接下来配置一下solrhome

<solrcloud><str name="host">172.16.82.68</str><!--对应的tomcat端口--><int name="hostPort">8180</int></solrcloud>

<solrcloud><str name="host">172.16.82.68</str><!--对应的tomcat端口--><int name="hostPort">8280</int></solrcloud>

….其余同理

修改一下solr下的web.xml 修改<env-entry-name></env-entry-name>为solrhome

vim /usr/local/solr-cloud/tomcat01/webapps/solr/WEB-INF/web.xml
<env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>/usr/local/solr-cloud/solrhome01</env-entry-value><env-entry-type>java.lang.String</env-entry-type></env-entry>

vim /usr/local/solr-cloud/tomcat02/webapps/solr/WEB-INF/web.xml
<env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>/usr/local/solr-cloud/solrhome02</env-entry-value><env-entry-type>java.lang.String</env-entry-type></env-entry>

…其余同理

配置tomcat 将solr和zookeeper的关联关系建立起来 配置JAVA_OPTS指定一下zkHost

cd tomcat01/binvim catalina.sh
在配置这个JAVA_OPTS的时候注意一下,就是那啥 我是写在#JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask` 这条注释下面了JAVA_OPTS="-DzkHost=172.16.82.68:2182,172.16.82.68:2183,172.16.82.68:2184"

其他tomcat同理

配置文件上传zookeeper

每个tomcat下的solr都有他的solrhome,但solrhome下他们的配置文件可能会不一样,在集群环境下配置一般都是一份儿的,所以我们需要把配置文件上传到zookeeper,让zookeeper管理我们的配置文件

我们需要上传 solrhome/conf

这里我们需要用到 solr/example/scripts/cloud-scripts/zkcli.sh 我们用这个来上传

cd solr/example/scripts/cloud-scripts/./zkcli.sh -zkhost 172.16.82.68:2181,172.16.82.68:2182,172.16.82.68:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf/ -confname myconf

链接zookeeper检查一下conf文件是否上传成功了

./zkCli.sh -server 172.16.82.68:2182ls /configs

启动tomcat

/usr/local/solr-cloud/tomcat01/bin/startup.sh/usr/local/solr-cloud/tomcat02/bin/startup.sh/usr/local/solr-cloud/tomcat03/bin/startup.sh/usr/local/solr-cloud/tomcat04bin/startup.sh

chomd +x start-tomcat.sh
最后,SolrCloud创建Collection的命令

http://172.16.82.68:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2

删除Collection1的分片

http://172.16.82.68:8180/solr/admin/collections?action=DELETE&name=collection1

ojbk

原创粉丝点击