solr快速上手:搭建solr集群并创建核心,设置数据同步(十一)

这篇具有很好参考价值的文章主要介绍了solr快速上手:搭建solr集群并创建核心,设置数据同步(十一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0. 引言

前几章我们已经讲解了solr单机版的基本使用,但实际生产中,为了保证高可用、高性能,我们一般会采用集群模式,所以接下来,我们继续讲解solr集群的搭建和基本操作

1. 集群模式

1.1 分片

在讲解solr集群模式前,我们要先了解“分片”的概念。

当节点由一个拓展为多个时,数据存储和同步问题也随之而来,如果单纯的把数据存储到某一个节点,高可用的目的又实现不了了,如果把数据在每个节点中都存储,那么又会导致空间浪费,于是就出现了分片的概念。

所谓分片就是将数据分成多份,每一份就是一个分片,然后将这些分片存储到不同的节点上,以此实现存储扩展,同时因为不同的数据存储在不同的节点上,实际上也提高了查询的性能。

并且这些分片里,还分为主分片盒副本分片,主分片是不同的数据,副本分片则是主分片的备份,然后将这些分片分布到不同的节点上,这样既实现了数据存储,也实现了数据备份

因为要实现高可用,所以要求相同的主副分片不能在同一个节点上,否则当一个节点挂了,副分片也跟着挂了

1.2 节点治理

当节点变多了之后,节点之间的调用协调就成了问题,solr没有自带服务治理,也就需要引入第三方组件,一般我们通过zookeeper来作为注册中心,管理服务调度

同时为了保证注册中心的高可用,因此我们的zookeeper也需要部署成集群模式。可能有的同学会有疑惑,zk部署成集群模式了,那么又是谁来协调zk多节点呢,这个当然是zk自身了,它的集群模式自带了服务治理功能

1.3 部署架构

有了以上的基础概念后,我们再来梳理所要部署的solr集群架构。

首先集群模式最小主节点数是3个,这里为了模拟线上环境,搭建4个主分片,每个主分片3个副本分片的效果,我采用4个节点,具体大家可根据服务器环境来选择节点数,但不要小于3个

其次zookeeper搭建集群,最小节点数是3个,于是部署架构如下图所示

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

2. 搭建

2.1 搭建zookeeper集群

zookeeper的集群搭建可我另一篇文章:搭建zookeeper集群并设置开机自启

但是注意因为我solr版本用的是8.2.0,zookeeper对应版本选3.4.14,版本不对应可能有连接问题。会导致报错TimeoutException: Could not connect to ZooKeeper

2.2 搭建solr集群

1、之前我们已经搭建过solr单节点,将该节点复制3份到其他3个服务器

2、修改solr配置文件solr.xml

vim server/solr/solr.xml 

内容,调整为服务器solr服务器ip,如果端口有调整的话直接修改即可
solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

3、修改启动脚本文件solr.in.sh,配置zk地址

vim bin/solr.in.sh

内容

ZK_HOST="192.168.244.42:2181,192.168.244.43:2181,192.168.244.44:2181"

# Set the ZooKeeper client timeout (for SolrCloud mode)
ZK_CLIENT_TIMEOUT="15000"

4、在其他3个节点,同步调整上述2步

5、重启四个solr节点

# 如下启动指令是单独配置的,参考专栏第一篇文章
service solr restart

能够正常访问solr-admin即证明集群部署成功!
solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

这里如果发现报错SolrException: ruok is not executed because it is not in the whitelist. Check 4lw.commands.whitelist setting in zookeeper configuration file

这是因为要想在不登陆zk客户端的情况下,简单便捷的使用zk的四字指令时,比如ruok是查看zk是否启动的指令,就需要添加zk允许的指令白名单

在zookeeper配置文件conf/zoo.cfg中添加配置项4lw.commands.whitelist=stat,ruok,conf,isro,设置指定的四字指令被远程调用,如果设置的是*则表示所有的指令都允许被调用

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

配置完后重启zk,solr,如果是集群记得修改每个zk节点

正常启动,可以在Cloud菜单查看集群节点情况

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

6、因为用zookeeper管理集群了,我们要将solr的相关配置文件上传到zookeeper上,用zookeeper作为配置中心

先把我们之前单机solr中创建的orders核心的配置文件上传到其中一个solr节点上

scp -r orders root@192.168.244.42:/data/solr-8.2.0/server/solr

7、而上传到zk,solr为我们提供了一个脚本文件server/scripts/cloud-scripts/zkcli.sh

主要将solr.xml和核心(索引)下的配置文件managed-schema,solrconfig.xml

在任意一个solr节点执行:

# 设置solr配置文件路径
sh /data/solr-8.2.0/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.244.44:2181,192.168.244.43:2181,192.168.244.42:2181 --cmd upconfig -solrhome /data/solr-8.2.0/server/solr
# 上传核心配置文件目录
sh /data/solr-8.2.0/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.244.44:2181,192.168.244.43:2181,192.168.244.42:2181 --cmd upconfig -confdir /data/solr-8.2.0/server/solr/orders -confname orders

后续如果还需要上传其他的核心(索引)配置文件,就只需要执行下面的指令即可

sh /data/solr-8.2.0/server/scripts/cloud-scripts/zkcli.sh -zkhost 192.168.244.44:2181,192.168.244.43:2181,192.168.244.42:2181 --cmd upconfig -confdir /data/solr-8.2.0/server/solr/collection_name -confname collection_name

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

连接zk,也能发现对应的数据了,这里连接使用的是prettyZoo工具,不知道怎么安装的可以查看我之前的博客:
安装zookeeper可视化工具PrettyZoo、ZooKeeperAssistant

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene
8、登陆任意一个solr-admin,添加核心,名称与之前上传的orders保持一致,同时因为我们是4个节点,一般设置主分片数与节点数一致,不能超过节点数,同一主副分片不在一个节点上,那么一共就有4个主分片,每个主分片有3个副本分片

因为solr节点默认的maxShardsPerNode为1,即每个节点只允许创建1个分片(主分片或副分片),明显不满足我们上述的架构,每个节点需要创建1个主分片3个副本分片,所以一个节点需要创建4个分片,则我们需要将maxShardsPerNode调整为4

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

保存后创建的核心会同步到其他节点上

可以在Collections中查看分片情况

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

9、执行全量同步,如果对同步操作不熟悉的,可以查看专栏之前的文章

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

10、查询数据,发现数据查询成功

solr快速上手:搭建solr集群并创建核心,设置数据同步(十一),solr快速上手,solr,lucene

总结

自此,我们针对solr集群的搭建,核心创建,数据同步都讲解完了,同时还需要改变的呢,是我们客户端连接时的代码,要调整为集群模式,也就是通过zk来连接了文章来源地址https://www.toymoban.com/news/detail-545296.html

到了这里,关于solr快速上手:搭建solr集群并创建核心,设置数据同步(十一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快速上手Linux核心命令(一):核心命令简介

    Linux核心命令系列文章目录 快速上手Linux核心命令(一):核心命令简介 快速上手Linux核心命令(二):关机、重启 快速上手Linux核心命令(三):文件和目录操作命令 快速上手Linux核心命令(四):文件内容相关命令 快速上手Linux核心命令(五):文本处理三剑客 快速上手

    2023年04月22日
    浏览(45)
  • 快速上手Linux核心命令

    Linux 的重要性不用我多说了吧,大多数互联网公司,服务器都是采用的Linux操作系统 Linux是一个主要通过命令行来进行管理的操作系统。 只有熟练掌握Linux核心命令,在使用起来我们才会得心应手 这里给大家整理了Linux一些核心命令,掌握这些核心命令,工作中应该游刃有余

    2024年04月16日
    浏览(56)
  • 快速上手Linux核心命令(八):网络相关命令

    目录 前言 测试主机之间网络是否联通 ifconfig 配置或显示网络信息 route 显示或管理路由表 netstat 查看网络状况 telnet 远程登录主机 ssh 安全的远程登录主机 wget 命令行下载工具 ip网络配置工具 tcpdump 监听网络流量 nmap 网络探测工具和安全/端口扫描器 ifup 激活网络接口 ifdown 禁

    2024年02月01日
    浏览(45)
  • 快速上手Linux核心命令(九):文件备份与压缩

    目录 tar 打包备份 gzip 压缩或解压文件 zip 打包和压缩文件 unzip 解压zip文件 scp 远程文件复制 rsync 文件同步工具 这期呢主要说一说Linux中文件备份与压缩命令,一共6个命令。这6个命令都是平常工作中非常非常常用的。 1、简介 tar 可以将多个文件压缩打包、压缩。是工作中经

    2024年02月01日
    浏览(53)
  • 快速上手Linux核心命令(四):文件内容相关命令

    目录 前言 cat 合并文件或查看文件内容 more 分页显示文件内容 less 分页显示文件内容 head 显示文件内容头部 tail 显示文件内容尾部 tailf 跟踪日志文件 diff 比较两个文件的不同 vimdiff 可视化比较工具 wc 统计文件的的行数、单词数或字节数 sort 文本排序 uniq 去除重复行 join 按两

    2023年04月25日
    浏览(40)
  • 快速上手Linux核心命令(十):Linux安装软件

    目录 前言 rpm rpm包管理器 yum 自动化RPM包管理工具 这期呢主要说一说Linux中包软件管理相关命令,这一期的命令虽然只有两个。但 软件包的安装和卸载都是我们平常最常用的,需要熟练掌握。 rpm和yum 是CentOS 主要的包软件管理。 两个命令各有用处,①yum需要互联网,yum会去网

    2024年02月01日
    浏览(57)
  • 快速上手Linux核心命令(五):文本处理三剑客

    目录 前言 正则表达式 第一剑客 grep 第二剑客 sed 第三 剑客 awk 小结 上一篇中已经预告,我们这篇主要说Linux文本处理 三剑客 。他们分别是 grep 、 sed 、 awk 。既然能被业界称为三剑客,可见其在Linux命令中占有举足轻重得地位。所以呢,这里也专门写一篇文章说一说其用法。

    2023年04月25日
    浏览(63)
  • 快速上手Linux核心命令(三):文件和目录操作命令

    目录 前言 cd 切换目录 pwd 显示当前路径 ls 显示目录下内容及相关属性信息 mkdir 创建目录 tree 以树形结构显示目录下的内容 touch 创建空白文件或改变文件的时间戳属性 cp 复制文件或目录 mv 移动或重命名文件 rm 删除文件或目录 chown 改变文件或目录的用户用户组 chmod 改变文件

    2023年04月23日
    浏览(53)
  • [GN] Vue3.2 快速上手 ---- 核心语法2

    用在普通 DOM 标签上,获取的是 DOM 节点。 用在组件标签上,获取的是组件实例对象。 用在普通 DOM 标签上: 用在组件标签上: 父组件App使用子组件Person Person组件标签上使用ref 可以获取组件实例 但需要子组件代码中 使用defineExpose暴露内容 App.vue是父组件,Person是子组件 父

    2024年01月21日
    浏览(59)
  • 快速上手Linux核心命令(十一):Linux用户相关命令

    目录 前言 useradd 创建用户 usermod 修改用户信息 userdel 删除用户 groupadd 创建新的用户组 groupdel 删除用户组 passwd 修改用户密码 chage 修改用户密码有效期 批量更新用户密码 su 切换用户 visudo 编辑sudoers文件 sudo 以另一个用户身份执行命令 id 显示用户与用户组信息 w 显示已登录用

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包