solr集群
一、所需环境
1、linux系统(内存分大点)
2、JDK
3、zookeeper
4、solr
二、安装zookeeper
1、此次安装3个zookeeper
2、tar -zxf zookeeper-3.4.6.tar.gz
3、在/usr/local/目录下创建一个solrcloud目录。把zookeeper解压后的文件夹复制到此目录下三份。分别命名为zookeeper1、2、zookeeper3
4、
[root@bogon ~]# mkdir /usr/local/solrcloud
[root@bogon ~]# mv zookeeper-3.4.6 /usr/local/solrcloud/zookeeper1
[root@bogon ~]# cd /usr/local/solrcloud
[root@bogon solrcloud]# ll
[root@bogon solrcloud]# cp -r zookeeper1 zookeeper2
[root@bogon solrcloud]# cp -r zookeeper1 zookeeper3
5、在每个zookeeper文件夹下创建一个data目录,并在data文件夹下创建一个文件名称为myid,文件的内容就是此zookeeper的编号1、2、3。
[root@bogon data]# echo 1 >> myid
[root@bogon data]# cat myid
1
6、在zookeeper2、3文件夹下分别创建data目录和myid文件
[root@bogon solrcloud]# mkdir zookeeper2/data
[root@bogon solrcloud]# echo 2 >> zookeeper2/data/myid
[root@bogon solrcloud]# cat zookeeper2/data/myid
2
[root@bogon solrcloud]# mkdir zookeeper3/data
[root@bogon solrcloud]# echo 3 >> zookeeper3/data/myid
7、把zookeeper1下conf目录下的zoo_sample.cfg文件复制一份改名为zoo.cfg
8、修改zoo.cfg的配置,其他的zookeeper的clientport递增1,反正不同就可以。
9、启动zookeeper:./zkServer.sh start
关闭:./zkServer.sh stop
查看状态:./zkServer.sh status,其中的follower表示从节点,leader是主节点
[root@bogon solrcloud]# zookeeper1/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper1/bin/../conf/zoo.cfg
Mode: follower
[root@bogon solrcloud]# zookeeper2/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper2/bin/../conf/zoo.cfg
Mode: leader
[root@bogon solrcloud]# zookeeper3/bin/zkServer.sh status
JMX enabled by default
Using config: /usr/local/solrcloud/zookeeper3/bin/../conf/zoo.cfg
Mode: follower
10、建立四个tomcat,端口改为8080~8083,每个tomcat都配置好solr,也就是四个solr,solr的配置请参考http://www.cnblogs.com/honger/p/5876289.html,最后目录的结构是这样的
11、把solrhome中的配置文件上传到zookeeper集群。使用solr里的zookeeper的客户端上传。这个客户端的位置在solr解压后的solr-6.2.0/server/scripts/cloud-scripts/里的一个叫zkcli.sh的sell脚本
12、在solr-6.2.0/server/scripts/cloud-scripts/目录下执行(注意,此时的zookeeper应当已经启动)./zkcli.sh -zkhost 192.168.243.128:2181,192.168.243.128:2182,192.168.243.128:2183 -cmd upconfig -confdir /usr/local/solrcloud/solrhome1/collection1/conf -confname myconf
13、查看配置文件是否上传成功,先进入zookeeper1的bin文件夹使用以下命令:
[root@bogon bin]# ./zkCli.sh
Connecting to localhost:2181
[zk: localhost:2181(CONNECTED) 0] ls /
[configs, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /configs
[myconf]
[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf
[admin-extra.menu-top.html, currency.xml, protwords.txt, mapping-FoldToASCII.txt, _schema_analysis_synonyms_english.json, _rest_managed.json, solrconfig.xml, _schema_analysis_stopwords_english.json, stopwords.txt, lang, spellings.txt, mapping-ISOLatin1Accent.txt, admin-extra.html, xslt, synonyms.txt, scripts.conf, update-script.js, velocity, elevate.xml, admin-extra.menu-bottom.html, clustering, schema.xml]
[zk: localhost:2181(CONNECTED) 3]
如果可以看到solr的配置文件在,那就说明上传成功了。
14、修改每个solrhome下的solr.xml文件,指定当前实例运行的ip地址及端口号8080~8083。
15、修改每一台solr的tomcat 的 bin目录下catalina.sh文件中加入DzkHost指定zookeeper服务器地址:
JAVA_OPTS="-DzkHost=192.168.243.128:2181,192.168.243.128:2182,192.168.243.128:2183"
JAVA_OPTS使用vim编辑器的查找功能找到修改。
16、启动所有的tomcat,访问其中一台tomcat,只有一片集群
17、变成多片集群,在你的浏览器中访问
http://192.168.243.128:8080/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
18、删除collection1,在浏览器中输入
http://192.168.243.128:8080/solr/admin/collections?action=DELETE&name=collection1,出现success表示成功。
三、使用java代码访问solr集群。
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test; public class SolrCloudTest { @Test
public void test1() throws Exception {
// 使用zookeeper的地址访问
String zkHost = "192.168.243.128:2181,192.168.243.128:2182,192.168.243.128:2183";
// 创建集群客户端
CloudSolrClient cloudSolrClient = new CloudSolrClient.Builder().withZkHost(zkHost).build();
// 设置默认的索引库
cloudSolrClient.setDefaultCollection("collection2");
// 设置document
SolrInputDocument document = new SolrInputDocument();
// 创建这个document的结构
document.addField("id", "test001");
document.addField("name", "test");
// 添加内容
cloudSolrClient.add(document);
// 提交
cloudSolrClient.commit();
} @Test
public void delDocument() throws Exception {
// 使用zookeeper的地址访问
String zkHost = "192.168.243.128:2181,192.168.243.128:2182,192.168.243.128:2183"; CloudSolrClient cloudSolrClient = new CloudSolrClient.Builder().withZkHost(zkHost).build(); cloudSolrClient.setDefaultCollection("collection2"); cloudSolrClient.deleteByQuery("*:*"); cloudSolrClient.commit(); } @Test
public void query() throws Exception {
// 使用zookeeper的地址访问
String zkHost = "192.168.243.128:2181,192.168.243.128:2182,192.168.243.128:2183"; CloudSolrClient cloudSolrClient = new CloudSolrClient.Builder().withZkHost(zkHost).build(); cloudSolrClient.setDefaultCollection("collection2"); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); QueryResponse queryResponse = cloudSolrClient.query(query); SolrDocumentList list = queryResponse.getResults(); for (SolrDocument solrDocument : list) {
String name = (String) solrDocument.get("name");
System.out.println(name);
} cloudSolrClient.commit(); } }
运行test1()后看查看到
solr集群的更多相关文章
- 在Linux上使用Nginx为Solr集群做负载均衡
在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...
- 27.solr集群
搭建solr集群整个架构: 前提: (1)zookeeper集群 (2)最好做系统间拷贝免密码(频繁复制东西输密码太麻烦) (3)软件solr.*.zip zookerper.*.tar.gz i ...
- Solr集群更新配置的方式
solr集群中配置文件是经常更新的,频率最高的也就是schema.xml和solrconfig.xml这两个配置文件了,对于更新配置文件之前,我们先了解一下集群项目结构 由于在集群模式下,solrco ...
- Solr集群常用的操作总结
之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...
- 搭建Solr集群的推荐方案
之前介绍过2篇SolrCloud的部署流程,第一个是使用安装脚本的方式进行抽取安装,启动比较方便,但是会创建多个目录,感觉比较乱:第二个是官方教程上提供的方法,使用比较简单,直接释放压缩包即可,并且启 ...
- Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)
1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...
- solr集群solrCloud的搭建
上一章讲了solr单机版的搭建,本章将讲解sole集群的搭建.solr集群的搭建需要使用到zookeeper,搭建参见zookeeper集群的安装 一.solr实例的搭建 1. tomcat安装 这里 ...
- Solr集群、KI分词、项目实战
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善 ...
- 分布式搜索之搭建Solrcloud(Solr集群)
Solrcloud介绍: SolrCloud(solr集群)是Solr提供的分布式搜索方案. 当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud. 当索引量很大,搜索请求并发很高时,同 ...
- Solr集群搭建
SolrCloud需要solr基于zookeeper部署,zookeeper是一个集群管理软件,由于SolrCloud需要由多台服务器组成.由zookeeper来进行协调管理.Zookeeper是一个 ...
随机推荐
- 前后端分离时代,Java 程序员的变与不变!
事情的起因是这样的,有个星球的小伙伴向邀请松哥在知乎上回答一个问题,原题是: 前后端分离的时代,Java后台程序员的技术建议? 松哥认真看了下这个问题,感觉对于初次接触前后端分离的小伙伴来说,可能都会 ...
- http-get调用接口简单代码
一.简单便捷的httpget调用接口,并且返回接口数据1.导入相应的jar包: 2.代码如下: HttpGet get=null; try {HttpClient httpClient = new D ...
- js api 之 fetch、querySelector、form、atob及btoa
js api 之 fetch.querySelector.form.atob及btoa 转载请注明出处: https://www.cnblogs.com/funnyzpc/p/11095862.htm ...
- 【nginx】反向代理
反向代理事项负载均衡 是什么:百度 版本 :tomcat8 x2 nginx 1.8.1 保证两台tomcat正常启动. 配置文件:D:\nginx-1.8.1\conf\nginx.conf ,红色 ...
- Appcan 自定义星星评价
注意要先有图片: 放在 css/icons/下 HTML代码: <div class="ub ub-f1"> <input id="bz-0&q ...
- Demo小细节
(1) 程序如下: public class Example { static int i = 1, j = 2; static { display(i); i = i + j; } static v ...
- dubbo整合springboot最详细入门教程
说明 目前互联网公司,大部分项目都是基于分布式,一个项目被拆分成几个小项目,这些小项目会分别部署在不同的计算机上面,这个叫做微服务.当一台计算机的程序需要调用另一台计算机代码的时候,就涉及远程调用.此 ...
- Xmanager 5远程连接CentOS7图形化界面
1.安装Xmanager 5下载链接:https://pan.baidu.com/s/1JwBk3UB4ErIDheivKv4-NA提取码:cw04 双击xmgr5_wm.exe进行安装 点击‘下一步 ...
- 并发编程-concurrent指南-交换机Exchanger
java.util.concurrent包中的Exchanger类可用于两个线程之间交换信息.可简单地将Exchanger对象理解为一个包含两个格子的容器,通过exchanger方法可以向两个格子中填 ...
- Python入门基础(2)
如果你是博客园团队,,看到不符合您们要求的地方可否指出来?不要你不符合要求,然后我不符合哪项要求?是要我自己去找么? python条件语句 首先介绍的是if语句,python中的if语句格式如下: i ...