专栏首页python学习笔记Solr集群(即SolrCloud)搭建与使用

Solr集群(即SolrCloud)搭建与使用

1、什么是SolrCloud

  SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud。

当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求。SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心。

它有几个特色功能:

  1)集中式的配置信息。

  2)自动容错。

  3)近实时搜索。

  4)查询时自动负载均衡。

  注意:一般使用zookeeper,就是将他当作一个注册中心使用。SolrCloud使用zookeeper是使用其的管理集群的,请求过来,先连接zookeeper,然后再看看分发到那台solr机器上面,决定了那台服务器进行搜索的,对Solr配置文件进行集中管理。

2、zookeeper是个什么玩意?

  顾名思义zookeeper就是动物园管理员,他是用来管hadoop(大象)、Hive(蜜蜂)、pig(小猪)的管理员, Apache Hbase和 Apache Solr 的分布式集群都用到了zookeeper;Zookeeper:是一个分布式的、开源的程序协调服务,是hadoop项目下的一个子项目。

3、SolrCloud结构

    SolrCloud为了降低单机的处理压力,需要由多台服务器共同来完成索引和搜索任务。实现的思路是将索引数据进行Shard(分片)拆分,每个分片由多台的服务器共同完成,当一个索引或搜索请求过来时会分别从不同的Shard的服务器中操作索引。

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

下图是一个SolrCloud应用的例子:

SolrCloud应用的例子

对上图进行图解,如下图所示:

1)、物理结构
三个Solr实例( 每个实例包括两个Core),组成一个SolrCloud。

2)、逻辑结构
索引集合包括两个Shard(shard1和shard2),shard1和shard2分别由三个Core组成,其中一个Leader两个Replication,Leader是由zookeeper选举产生,zookeeper控制每个shard上三个Core的索引数据一致,解决高可用问题。
用户发起索引请求分别从shard1和shard2上获取,解决高并发问题。
a、collection
    Collection在SolrCloud集群中是一个逻辑意义上的完整的索引结构。它常常被划分为一个或多个Shard(分片),它们使用相同的配置信息。

    比如:针对商品信息搜索可以创建一个collection。
    collection=shard1+shard2+....+shardX

b、Core
    每个Core是Solr中一个独立运行单位,提供 索引和搜索服务。一个shard需要由一个Core或多个Core组成。由于collection由多个shard组成所以collection一般由多个core组成。
c、Master或Slave

    Master是master-slave结构中的主结点(通常说主服务器),Slave是master-slave结构中的从结点(通常说从服务器或备服务器)。同一个Shard下master和slave存储的数据是一致的,这是为了达到高可用目的。
d、Shard
    Collection的逻辑分片。每个Shard被化成一个或者多个replication,通过选举确定哪个是Leader。
注意:collection就是一个完整的索引库,分片存储,有两片,两片的内容不一样的。一片存储在三个节点,一主两从,他们之间的内容就是一样的。`

如下图所示

4、SolrCloud搭建

    本教程的这套安装是单机版的安装,所以采用伪集群的方式进行安装,如果是真正的生成环境,将伪集群的ip改下就可以了,步骤是一样的。

SolrCloud结构图如下:

环境准备,请安装好自己的jdk。

5、zookeeper集群安装。

第一步:解压zookeeper,tar -zxvf zookeeper-3.4.6.tar.gz将zookeeper-3.4.6拷贝到/usr/local/solr-cloud下,复制三份分别并将目录名改为zookeeper1、zookeeper2、zookeeper3。

 1 # 首先将zookeeper进行解压缩操作。
 2 [root@localhost package]# tar -zxvf zookeeper-3.4.6.tar.gz -C /home/hadoop/soft/
 3 # 然后创建一个solr-cloud目录。
 4 [root@localhost ~]# cd /usr/local/
 5 [root@localhost local]# ls
 6 bin  etc  games  include  lib  libexec  sbin  share  solr  src
 7 [root@localhost local]# mkdir solr-cloud
 8 [root@localhost local]# ls
 9 bin  etc  games  include  lib  libexec  sbin  share  solr  solr-cloud  src
10 [root@localhost local]# 
11 # 复制三份分别并将目录名改为zookeeper1、zookeeper2、zookeeper3。
12 [root@localhost soft]# cp -r zookeeper-3.4.6/ /usr/local/solr-cloud/zookeeper1
13 [root@localhost soft]# cd /usr/local/solr-cloud/
14 [root@localhost solr-cloud]# ls
15 zookeeper1
16 [root@localhost solr-cloud]# cp -r zookeeper1/ zookeeper2
17 [root@localhost solr-cloud]# cp -r zookeeper1/ zookeeper3

原文链接:https://www.cnblogs.com/biehongli/p/11517074.html

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python第三方库的安装pip的使用与换源

    python和其他语言一样,也有大量的第三方库,在安装python时默认都会安装pip,安装了pip后,windows在cmd.exe下可以运行pip,linu...

    风之随想
  • python __str__()函数的作用

    不知道大家再写程序是,打印一个实例化对象时,打印的其实时一个对象的地址。而通过__str__()函数就可以帮助我们打印对象中具体的属性值,或者你想得到的东西。

    风之随想
  • Python查看模块(变量、函数、类)方法

    前面章节中,详细介绍了模块和包的创建和使用(严格来说,包本质上也是模块),有些读者可能有这样的疑问,即正确导入模块或者包之后,怎么知道该模块中具体包含哪些成员(...

    风之随想
  • zookeeper 都有哪些使用场景?

    大致来说,zookeeper 的使用场景如下,我就举几个简单的,大家能说几个就好了:

    IT技术小咖
  • zookeeper的介绍与搭建

    它是一个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群...

    胡齐
  • CentOS 7 中使用 Docker 方式搭建 ZooKeeper 集群

    1. 首先 CentOS 7 中应该安装好 Docker, Docker 安装参考

    北漂的我
  • Android自定义键盘的实现(数字键盘和字母键盘)

    在项目中,产品对于输入方式会有特殊的要求,需要对输入方式增加特定的限制,这就需要采用自定义键盘。本文主要讲述数字键盘和字母键盘的自定义实现。

    砸漏
  • 升级版VNPY(一)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qtlyx/article/details/88981...

    钱塘小甲子
  • Frontiers in Neuroscience:弥散张量成像(DTI)研究指南

    弥散张量成像(DTI)的研究越来越受到临床医生和研究人员的欢迎,因为它们提供了对脑网络连接的独特见解。然而,为了优化DTI的使用,必须考虑到几个技术和方法方面的...

    用户1279583
  • 旧iPhone怎么处理?苹果弄了个机器人,11秒拆部iPhone6

    昨日,苹果召开春季发布会,推出了一款四寸手机和9.7英寸的新平板,这些产品都在媒体预料之中。当天,苹果还对外介绍了一个机器人系统,专门分拆旧手机并且提取有用的金...

    机器人网

扫码关注云+社区

领取腾讯云代金券