一、所需环境

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. Android开发之旅(1) 之 Android 开发环境搭建

    工作室原创出品,欢迎转载,欢迎交流. 转载请注明原文:http://www.cnblogs.com/wangleiblog/p/6019063.html Android开发之旅目录 1 前言 很多朋友 ...

  2. SQL Server 2012链接服务器

    第一步,在服务器对象,链接服务器那里新建链接服务器:输入要链接服务器的IP地址. 第二步,安全性输入连接数据的用户名和密码. 第三步,验证是不可以打开链接服务器库的表名,视图等数据. 第四步,如果要查 ...

  3. 【实战】SpringBoot + KafKa

    1.配置pom包 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId& ...

  4. string类总结第二部分实战练习

    第二部门:实战练习 昨天由于时间原因,这个部分应该在同一个文章中的,无奈只能今天再开一个了,今天主要是讲一些面试题 一:equals和==的区别 最简单的面试题,也是最基础的,我估计每个学习java的 ...

  5. Java内存区域(运行时数据区域)和内存模型(JMM)

    Java 内存区域和内存模型是不一样的东西,内存区域是指 Jvm 运行时将数据分区域存储,强调对内存空间的划分. 而内存模型(Java Memory Model,简称 JMM )是定义了线程和主内存之 ...

  6. java模拟键鼠操作

    很久之前百度的,所以忘记了作者,所以仅作为自己的日记纪录在此: package com.robot.test;import java.awt.AWTException;import java.awt. ...

  7. python函数之 range()

      Python range() 函数用法 python range() 函数可创建一个整数列表,一般用在 for 循环中. 函数语法 range(start, stop[, step]) 参数说明: ...

  8. 并发编程-concurrent指南-信号量Semaphore

    Semaphore翻译成字面意思为 信号量,Semaphore可以控同时访问的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可. acquire( ...

  9. 读取ClassPath下resource文件的正确姿势

    1.前言 为什么要写这篇文章?身为Java程序员你有没有过每次需要读取 ClassPath 下的资源文件的时候,都要去百度一下,然后看到下面的这种答案: Thread.currentThread(). ...

  10. scrapy基础知识之 RedisCrawlSpider:

    这个RedisCrawlSpider类爬虫继承了RedisCrawlSpider,能够支持分布式的抓取.因为采用的是crawlSpider,所以需要遵守Rule规则,以及callback不能写pars ...