一、所需环境

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集群的更多相关文章

  1. 在Linux上使用Nginx为Solr集群做负载均衡

    在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxy ...

  2. 27.solr集群

    搭建solr集群整个架构: 前提: (1)zookeeper集群 (2)最好做系统间拷贝免密码(频繁复制东西输密码太麻烦) (3)软件solr.*.zip  zookerper.*.tar.gz  i ...

  3. Solr集群更新配置的方式

    solr集群中配置文件是经常更新的,频率最高的也就是schema.xml和solrconfig.xml这两个配置文件了,对于更新配置文件之前,我们先了解一下集群项目结构 由于在集群模式下,solrco ...

  4. Solr集群常用的操作总结

    之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...

  5. 搭建Solr集群的推荐方案

    之前介绍过2篇SolrCloud的部署流程,第一个是使用安装脚本的方式进行抽取安装,启动比较方便,但是会创建多个目录,感觉比较乱:第二个是官方教程上提供的方法,使用比较简单,直接释放压缩包即可,并且启 ...

  6. Solr集群的搭建以及使用(内涵zookeeper集群的搭建指南)

    1   什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...

  7. solr集群solrCloud的搭建

    上一章讲了solr单机版的搭建,本章将讲解sole集群的搭建.solr集群的搭建需要使用到zookeeper,搭建参见zookeeper集群的安装 一.solr实例的搭建 1. tomcat安装 这里 ...

  8. Solr集群、KI分词、项目实战

    Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善 ...

  9. 分布式搜索之搭建Solrcloud(Solr集群)

    Solrcloud介绍: SolrCloud(solr集群)是Solr提供的分布式搜索方案. 当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud. 当索引量很大,搜索请求并发很高时,同 ...

  10. Solr集群搭建

    SolrCloud需要solr基于zookeeper部署,zookeeper是一个集群管理软件,由于SolrCloud需要由多台服务器组成.由zookeeper来进行协调管理.Zookeeper是一个 ...

随机推荐

  1. 【转】子弹短信内部技术分享:Redis

    原理 Redis 是一个内存型「数据库」,除存储之外,它还有许多强大的命令,使之远远超出了数据库的定义,所以官方称之为「data structure store」,数据结构存储系统. 通过 Redis ...

  2. 查看linux系统时间和时区

    参考地址:http://lidao.blog.51cto.com/ 一.使用date命令查看系统时间 [root@benbang ~]# date -R Tue, 01 Aug 2017 15:43: ...

  3. 【React入门】React父子组件传值demo

    公司一直是前后端分离的,最近集团开始推进中后台可视化开发组件(基于React封装),跟师兄聊起来也听说最近对后台开发人员的前端能力也是越来越重视了.所以作为一名后端,了解下前端的框架对自己也是大有好处 ...

  4. mysql的union和or

    实践出真知! 使用union连接 select `id` from `表名` where 0=0 and active=1 and `fullname` like '王%' union select ...

  5. 浅说——状压DP

    第一次没认真听,没听懂.(有点难) 第二次才搞懂,主要位运算太烦了!!! 位运算基础知识: 名称 符号 规则 按位与 & 全一则一,否则为零 按位或 | 有一则一,否则为零 按位取反 ~ 是零 ...

  6. Codeforces 776D:The Door Problem(DFS染色)

    http://codeforces.com/problemset/problem/776/D 题意:有n个门,m个开关,每个门有一个当前的状态(0表示关闭,1表示打开),每个开关控制k个门,但是每个门 ...

  7. 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探

    SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...

  8. cookie 和 session 设置

    cookie: 保存在浏览器上的一组键值对, 是由服务器让浏览器进行设置的 下次浏览器访问的时候会携带cookie. request是客户端请求, response是服务端响应. 读取客户端的cook ...

  9. 一、JavaScript概述

    1.Javascript是什么?可以做什么? 1)    JavaScript是一种基于对象和事件驱动的解释性脚本语言, 它具有与Java和C语言类似的语法. 2)    JavaScript可直接嵌 ...

  10. Java实现LRU算法

    一.LRU算法简介 LRU(Least Recently Used)最近最久未使用算法 常见应用场景:内存管理中的页面置换算法.缓存淘汰中的淘汰策略等 二.实现理论 底层结构:双向链表 + HashM ...