热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr教程安装运行

sol

Solr是一个分布式高性能全文搜索引擎,是基于Lucene开发的非常流行的企业搜索引擎平台。Solr提供了非常丰富的搜索功能,可以用来构建非常复杂的搜索业务。

这个系列教程旨在介绍Solr的常用功能。


准备

在开始之前你需要准备一些必要的硬件及软件设施:

  1. JDK 1.8 (或者更高版本)
  2. Solr 7.5.x
  3. Postman (可选)
  4. CentOS 7.x (本系列以此OS为准)
  5. VirtualBox (可选)

CentOS可以选择安装,Solr是支持多操作系统的,但是在Linux下体验更好,大部分生产环境也都是Linux系统,建议使用CentOS来学习以及使用Solr。

VirtualBox可以选择安装,如果你是Windows操作系统,建议使用VirtualBox安装CentOS来学习使用Solr。

后面的操作都是基于CentOS 7.x版本操作系统来运行。

安装Solr

安装Solr需要Java 1.8或者更高版本,可以使用java -version命令检查你系统上安装的Java版本。由于Java语言有好几个实现,有些实现并不能非常好的支持Solr,根据Lucene JavaBugs来检查你的Java是否对Solr有很好的支持。Solr支持的操作系统包括Linux, MacOS, Windows。

到https://lucene.apache.org/solr/mirrors-solr-latest-redir.html下载对应操作系统的7.5.0版本的Solr安装包。

  • solr-7.5.0.tgz 是针对Linux/Unix/MacOS系统的安装包
  • solr-7.5.0.zip 是针对Windows系统的安装包
  • solr-7.5.0-src.tgz 是源码包
tar zxf solr-7.5.0.tgz cd solr-7.5.0 bin/solr start 

然后使用浏览器打开http://localhost:8983,你就可以看到Solr Admin UI的界面了,这是Solr自带的管理界面,使用非常方便,在里面可以查看状态,管理core,进行查询。

bin/solr start运行的solr是以standalone模式(非分布式)运行的,如果是学习可以使用此模式快速的尝试。但是建议使用后面将要介绍的SolrCloud模式来运行,SolrCloud模式可以很好的进行扩展,应对海量数据的实时搜索,动态剔除/增加机器节点,动态转移数据分片(shard),所有这些操作都可以不停机进行操作。生产环境也建议使用SolrCloud模式运行。

这是以SolrCloud模式启动solr的命令,只需要添加一个-c参数即可

bin/solr start -c 

详细的命令行参数请参考Solr控制脚本参考

SolrCloud启动之后会占用8983端口,默认会启动一个内置的zookeeper实例,占用9983端口(在solr的端口上加1000)。

多节点的SolrCloud安装-生产环境部署

一般生产环境部署会把zookeeper单独部署,其他的solr节点单独部署。

外部Zookeeper

下面假设是生产环境部署zookeeper,建议至少需要三个zookeeper节点。 开发环境以及测试使用一个zookeeper也没有关系。

假设已经有三个机器来运行zookeeper来组建一个小的zookeeper集群:

  1. 192.168.1.2
  2. 192.168.1.3
  3. 192.168.1.4

步骤为:下载zookeeper-3.4.13 -> 解压 -> 配置conf/zoo.cfg -> 启动

curl -o zookeeper-3.4.13.tar.gz 'https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz' tar -xzvf zookeeper-3.4.13.tar.gz cd zookeeper-3.4.13 cp conf/zoo_sample.cfg conf/zoo.cfg sed -i 's/dataDir=.*/dataDir=.\/data/g' conf/zoo.cfg mkdir data echo -e "\nserver.1=192.168.1.2:2888:3888\nserver.2=192.168.1.3:2888:3888\nserver.3=192.168.1.4:2888:3888" >> conf/zoo.cfg echo 1 > data/myid 

解释一下上面的一些命令:

前四行就不过多解释,下载zookeeper-3.4.13安装包,解压,拷贝conf/zoo_example.cfg为conf/zoo.cfg配置文件。conf/zoo.cfg为必须的配置文件,否则zookeeper是无法启动的。

第五行使用sed命令把conf/zoo.cfg配置文件里面的dataDir设置为安装目录下面的data目录。接着第六行创建dataDir指定的目录,否则也无法正确启动zookeeper。第七行写入三台机器互相通信的配置,2888是连接leader端口,3888是选举端口,两个端口都可以修改。

最后一行也是最重要的一行,每台机器在data/myid文件里面写入一个不重复的值来标识每个节点。所以在其他两台机器就不能再写入1了,分别写入2和3即可。

上面拷贝conf/zoo_example.cfg为conf/zoo.cfg的时候,已经默认设置了2181端口为zookeeper客户端连接的端口,下面在solr启动的时候使用。

最后运行bin/zkServer.sh start启动三台机器上的zookeeper即可。

启动多个solr节点

假设现在也有三个机器安装了solr(下载下来直接解压即可),分别为192.168.1.10192.168.1.11192.168.1.12,解压的目录都为solr-7.5.0。命令行切换到solr-7.5.0目录运行如下命令:

bin/solr start -c -z 192.168.1.2:2181,192.168.1.3:2181,192.168.1.4:2181 

三台机器运行同样的命令后,整个SolrCloud集群就已经启动好了,可以访问http://192.168.1.10:8983查看solr admin ui。

负载均衡

这个话题比较有意思,很多人问我SolrCloud已经使用了Zookeeper来选举leader了,SolrCloud里面的leader shard也会把请求分发到其他的shard上,为什么还要做负载均衡呢。如果你深入了解过solr的search component你就会明白,接收请求的那个机器做的计算是要比其他机器多的,如果你在代码当中只是访问其中一台机器,那么这台机器的负载会高于其他的机器。所以你需要在你的应用程序和SolrCloud之间搭建一个负载均衡,把请求均匀的分布到各个机器上去。

常用的有nginx, haproxy这两个做负载均衡的软件了。最后要保证高可用,还需要做一个负载均衡层面的热备的配置,这样你的SolrCloud可以说已经非常坚固了。


推荐阅读
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • 1.tarzxfapache-activemq-5.12.0-bin.tar.gztarzxfapache-activemq-5.12.0-bin.tar.gz2.cdapac ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文介绍了如何通过安装 rpm 包来使用 resize2fs 和 ext2online 工具进行系统文件的扩容。提供了详细的步骤和注意事项。 ... [详细]
  • Linux下MySQL 8.0.28安装指南
    本文详细介绍了在Linux系统上安装MySQL 8.0.28的步骤,包括下载数据库、解压数据包、安装必要组件和启动MySQL服务。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 在Linux系统中,压缩命令与Windows系统存在显著差异。本文将详细介绍ZIP压缩命令的使用方法及其应用场景。首先,通过`unzip`命令可以将文件解压到指定目录,例如 `unzip monitor-0.8.2.zip -d /目标目录/`。此外,还将涵盖其他常用的ZIP相关命令和选项,帮助用户高效地管理和操作压缩文件。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
author-avatar
mobiledu2502887403
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有