• [技术干货] Solr和Elasticsearch对比
    搜索引擎是现代化的网络技术之一。搜索引擎的主要工作是在用户查询时返回包含相关信息的文档列表,它可以用于Web搜索,企业搜索和数据搜索等多个领域。Solr和Elasticsearch(ES)是两个受欢迎的开源搜索引擎,它们都基于Lucene,都提供了全文搜索、分布式架构和强大的API等特征。下面我们将对Solr和Elasticsearch进行详细的介绍。一、SolrSolr是一个开源的搜索平台,适用于 Web 搜索、企业搜索以及数据搜索等领域。它提供了全文搜索、分布式架构和强大的HTTP API等特点。Solr最初是由Apache Software Foundation开发并支持的,它是基于Lucene Java库构建而成的。Solr提供了一组充分证明了性能和可扩展性的核心功能,包括数据分片、复制、高可用性、集群管理、查询和索引优化。Solr的优点如下:大规模数据处理与搜索:Solr强大的文本分析器和查询模式的灵活性,使得 Solr 能够进行大量数据的处理与搜索。相对简单的安装:Solr的安装非常简单,它支持多种操作系统,提供了多种方式进行部署。多语言支持:Solr支持多语言搜索,它能够处理包括泰语、中文、日语、朝鲜语等在内的多种语言。二、Elasticsearch(ES)ES是一个基于开源搜索引擎Lucene的分布式、RESTful的搜索系统。它不但具有强大的搜索能力,还具有快速稳定的响应性和可扩展性。ES不仅支持全文搜索,还支持结构化数据搜索、地理数据搜索、大数据分析和监控等场景。ES创建的目的是提供一个容易扩展和管理的搜索引擎,它提供了许多强大和易用的功能,如近实时搜索、动态字段支持、自动索引、多租户和强大的文本搜索等。ES的优点如下:高性能:ES内部采用了许多优化技术,支持近实时搜索、分布式搜索和索引等优点,可处理大量数据的搜索请求。功能完善:ES支持多种数据类型,数据可导入到ES中,支持结构化和半结构化数据,并且拥有强大的聚合分析功能。可扩展性:ES基于分布式架构,每个节点都可以承载数据、进行存储和计算处理,可实现水平扩展。Solr和Elasticsearch的区别主要在于:架构设计:Solr采用独立的Solr服务器和Solr客户端,而ES基于分布式架构,节点可以担任多个角色。文档存储:Solr文档必须在对应的Shard中存储,而ES不同,ES文档可以存储到初始节点或分片节点中。数据同步:Solr通过复制索引的方式进行数据同步,ES通过传输可序列化的JSON数据进行同步。综上所述,Solr和Elasticsearch虽然都基于Lucene,但是它们的架构设计、文档存储和数据同步方式还是有所不同,所以在选择时需要根据实际情况进行权衡和选择
  • [整体安全] 【漏洞通告】Apache Solr 任意文件删除漏洞
    漏洞名称 : Apache Solr 任意文件删除漏洞组件名称 : Apache Solr影响范围 : Apache Solr <= 8.8.2漏洞类型 : 任意文件删除利用条件 : 1、用户认证:不需要用户认证2、触发方式:远程综合评价 : <综合评定利用难度>:容易,无需授权即可删除任意文件。<综合评定威胁等级>:高危,可删除服务器任意文件。漏洞分析:1 组件介绍Apache Solr是一个开源的搜索服务器。具有高度可靠、可伸缩和容错的,提供分布式索引、复制和负载平衡查询、自动故障转移和恢复、集中配置等功能。Solr为世界上许多最大的互联网站点提供搜索和导航功能。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。Apache Solr 中存储的资源是以 Document 为对象进行存储的。每个文档由一系列的 Field 构成,每个 Field 表示资源的一个属性。Solr 中的每个 Document 需要有能唯一标识其自身的属性,默认情况下这个属性的名字是 id,在 Schema 配置文件中使用:<uniqueKey>id</uniqueKey>进行描述。2 漏洞描述安全团队监测到一则Apache Solr组件存在任意文件删除漏洞的信息,漏洞编号:暂无,漏洞威胁等级:高危。该漏洞出现在默认配置的PingRequestHandler中,攻击者可利用该漏洞在未授权的情况下,构造恶意数据,删除服务器任意文件。3 漏洞复现搭建Apache Solr组件8.8.2版本环境,复现该漏洞,效果如下:影响范围:全球约有一万多台服务器使用了Apache Solr组件,在国内可能受Apache Solr任意文件删除漏洞影响的资产主要分布于浙江、北京、上海、广东等省市。目前受影响的Apache Solr版本:Apache Solr < = 8.8.2解决方案:1 如何检测组件系统版本访问默认路径http://ip:port/solr/,进入Web主界面,查看对应版本:2 官方修复建议当前官方暂未发布相关安全通告,请及时关注官方最新安全通告或最新版本。链接如下:https://solr.apache.org/downloads.html3 临时修复建议该临时修复建议存在一定风险,建议用户可根据业务系统特性审慎选择采用临时修复方案:1、将Apache Solr组件部署在内网场景,禁止暴露在外部。2、增加用户权限控制在security.json中配置身份校验插件, 代码示例如下:{ "authentication" : {"class": "class.that.implements.authentication" }, "authorization": { "class": "class.that.implements.authorization" }}SolrCloud模式时,需将对应文件security.json上传到ZooKeeper。以下命令在上传文件时可将其写入文件:>server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd put /security.json '{"authentication":{"class":"org.apache.solr.security.KerberosPlugin"}}'独立模式时,需将创建好的security.json放置在$SOLR_HOME安装目录中生效。
  • [整体安全] 【漏洞预警】Apache Solr stream.url SSRF与任意文件读取漏洞
    漏洞描述:Apache Solr是一个开源的搜索服务,使用Java语言开发。Apache Solr的某些功能存在过滤不严格,在Apache Solr未开启认证的情况下,攻击者可直接构造特定请求开启特定配置,并最终造成SSRF或文件读取漏洞。提醒Solr用户尽快采取安全措施阻止漏洞攻击。漏洞评级:Apache Solr stream.url SSRF与任意文件读取漏洞 中危漏洞复现:影响版本:Apache Solr 所有版本安全版本:官方不予修复,暂无安全版本。安全建议:1. 增加身份验证/授权,可参考官方文档:https://lucene.apache.org/solr/guide/8_6/authentication-and-authorization-plugins.html2. 禁止Solr API 以及管理 UI 直接对公网开放。设置防火墙,以便只允许受信任的计算机和人员访问。相关链接:https://issues.apache.org/jira/browse/SOLR
  • Lucene-solr 7.7.0 软件移植指导书
    1      软件介绍Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。2      预置条件类别子项版本硬件CPU鲲鹏920OSCentOS7.6软件GCC4.8.5Maven3.5.4JDKOpenJDK 8u191-b123      编译环境准备3.1      编译环境配置安装git gcc gcc-c++ make cmake libtools等工具yum install git gcc gcc-c++ make cmake libtools –yARM平台下gcc、g++默认使用unsigned char和x86下表现不同,ARM下需要做出修改。mv /usr/bin/gcc /usr/bin/gcc-implecho ‘gcc-impl –fsigned-char “$@” ’ > /usr/bin/gccchmod 655 /usr/bin/gccmv /usr/bin/g++ /usr/bin/g++-implecho ‘g++-impl –fsigned-char “$@” ’ > /usr/bin/g++chmod 655 /usr/bin/g++3.2      ant安装及配置Lucene-solr采用ant作为编译工具,安装方式如下:yum install ant –y验证安装结果:ant –version需手动设置环境变量ANT_HOME。export ANT_HOME=/usr/share/ant/*注意末尾的斜杠,不能缺少否则报错找不到ivy。3.3      Lucene-solr源码下载Lucene-solr 7.7.0的源码可通过以下命令获取。wget https://github.com/apache/lucene-solr/archive/releases/lucene-solr/7.7.0.tar.gz 3.4      依赖包准备ivy会自动下载依赖,部分依赖为x86版本,需要在ARM平台上重新编译替换。以下是需要编译的包:包名版本源码地址netty-tcnative1.1.33.Fork15https://github.com/netty/netty-tcnative/archive/netty-tcnative-1.1.33.Fork15.tar.gznetty4.0.36.Finalhttps://github.com/netty/netty/archive/netty-4.0.36.Final.tar.gz以上两个包的编译参见相关移植指导书。需将编译好的netty-all-4.0.36.Final.jar放在/root/.ivy2/cache/io.netty/netty-all/jars/目录下4      编译Lucene-solr解压缩lucene-solr源码包tar –zxf lucene-solr-releases-lucene-solr-7.7.0.tar.gzcd ./lucene-solr-releases-lucene-solr-7.7.0/需要对配置文件做出修改才能正常编译。 4.1      修改default-nested-ivy-settings.xmlvim ./lucene/default-nested-ivy-settings.xml注释第40行: 注释第56行:为提高国内镜像访问速度,可添加华为云镜像,添加方法如下:在先前注释的40行上方如下图加入华为云镜像地址:并在57行加入华为云镜像对应resolver。:wq保存并退出。 ***不注释uk会导致resolve非常慢,几乎不可能完成。***添加华为云镜像可以提高resolve速度,下载依赖快很多。 4.2      修改common-build.xmlvim ./lucene/common-build.xml在441行将http修改为https。 4.3      下载ivyant ivy-bootstrapant会自动下载ivy并配置好。 4.4      编译Lucene-solr在lucene-solr-7.7.0文件夹下执行:ant jarant会开始编译,如果第一次使用ivy,过程会比较长,为正常现象。出现以下提示即为编译成功。编译好的lucene-core-7.7.0-SNAPSHOT.jar在lucene/build/core文件夹下,lucene-demo-7.7.0-SNAPSHOT.jar在lucene/build/demo文件夹下,solr-core-7.7.0-SNAPSHOT.jar在solr/build/solr-core文件夹下。 5      验证5.1      验证Lucene5.1.1        测试环境搭建在luceme-solr-7.7.0文件夹下执行cd lucenemkdir lucene-libsfor f in `find build –name *.jar`; do cp $f lucene-libs;doneexport LUCENE_HOME=`pwd`export CLASSPATH=$CLASSPATH:$LUCENE_HOME/lucene-libs/*如上,lucene配置完毕,可以使用demo测试功能。 5.1.2        测试建立索引java org.apache.lucene.demo.IndexFiles -docs $LUCENE_HOME/core/src可见索引建立。5.1.3        测试关键词检索在5.1.2测试相同文件夹中执行(因为需要使用测试生成的索引):java org.apache.lucene.demo.SearchFiles 在提示Enter query后输入lucene回车。可见检索功能正常。 输入newspaper进行测试:可见newspaper不在索引中。5.2      验证solr5.2.1        测试环境搭建在luceme-solr-7.7.0文件夹下执行cd solr构建服务端:ant server默认Java栈大小为256K,不满足solr最低要求,需要修改。步骤如下:vim bin/solr找到SOLR_JAVA_STACK_SIZE,改为-Xss16m。5.2.2        测试Solr执行bin/solr –force可见solr已经启动。 访问测试机IP的8983端口,可见Solr管理页面:6      FAQ6.1      ant compile报错需要ivy现象如图:解决方案:ant ivy-bootstrap如果执行报告BUILD SUCCESS之后仍然出现此错误,设置环境变量export ANT_HOME=/usr/share/ant/,注意末尾斜杠。6.2      ant compile报错http://uk.maven.org连接超时参考4.1修改default-nested-ivy-settings.xml后重试。 6.3      ant ivy-bootstrap报错HTTP response 501现象如图:参考4.2修改common-build.xml后重试。6.4      测试Lucene报错Could not find or load main class或A JNI error has occurred现象如图:参考5.1.1配置CLASSPATH环境变量。6.5      测试Solr报错stack size too small或卡在Waiting to see Solr running参考5.2.1修改SOLR_JAVA_STACK_SIZE大于328K。 
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第081期solr安装配置指南
    1、简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。 2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.7Kernel4.14软件包Solr8.3.0https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.3.0/solr-8.3.0.tgz3、依赖安装 通过yum安装java-1.8.0yum install java-1.8.0-openjdk4、组件安装下载solr tar包解压安装wget https://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/8.3.0/solr-8.3.0.tgztar xf solr-8.3.0.tgzcd solr-8.3.0mv solr-8.3.0 /usr/local/solr启动solrusr/local/solr/bin/solr start –force5、系统配置无 6、测试无7、参考信息https://www.huaweicloud.com/kunpeng/software/solr.html8、FAQ无
  • [技术干货] 【大咖直播】华为云分布式缓存服务 Redis 系列直播,持续更新中
    DCS技术交流直播华为云分布式缓存服务Redis(DCS)的产品专家会经常以直播的形式与大家交流技术和分享心得,欢迎观看!序号直播日期直播主题直播/回放链接12018/5/24Redis缓存服务的关键技术和实践https://huaweicloud.bizconf.cn/watch/1965629 22018/9/19华为云新一代缓存Redis技术解读https://huaweicloud.bizconf.cn/watch/2385495 32018/12/17Redis5.0抢先发布!https://huaweicloud.bizconf.cn/watch/2656118 42018/12/27华为云Redis5.0解读-Stream尝鲜https://huaweicloud.bizconf.cn/watch/2703208 52019/1/11Redis 5.0之Stream案例应用解读https://huaweicloud.bizconf.cn/watch/2741475 62019/6/27华为云鲲鹏Redis技术解读交流会https://huaweicloud.bugu.mudu.tv/watch/5lm69lm2 敬请期待DCS产品技术交流群扫码添加华为云智能应用平台小助手微信(微信号zhongjianjianxiaoge,“中间件小哥”全拼),加入产品技术沟通交流群。扫码关注“中间件小哥”微信公众号,了解更多行业前沿资讯、技术分享等。
  • [大数据] 开源Solr部署指导书
    # 1 介绍 Solr是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。 Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和json等格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。 Solr已经在众多大型的网站中使用,较为成熟和稳定。 zookeeper在solrCloud中主要用来管理solr集群中的相关配置信息和集群的运行状态, 协助solr进行主节点的选举。 # 2 环境要求 ##获取软件包 | 软件包名称 | 获取方法 | | --------------- | ------------------------------------------------------------ | | zookeeper-3.4.6 | 在zookeeper官网下载所需版本的软件包。下载地址:[https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/](https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/) | | solr-6.2.0 | 在solr官网下载所需版本的软件包。下载地址:[https://archive.apache.org/dist/lucene/solr/6.2.0/solr-6.2.0.tgz](https://archive.apache.org/dist/lucene/solr/6.2.0/solr-6.2.0.tgz) | | apache-tomcat-8.5.28 | 在tomcat官网下载所需版本的软件包。下载地址:[https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz](https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz) | ## 集群环境规划 五台机器分别为节点1、节点2、节点3、节点4、节点5 | 机器名称 | IP地址 | 硬盘数 | OS & JDK | | -------- | -------------- | ----------------------------------------- | ------------------------------ | | 节点1 | 192.168.13.224 | 系统盘:1 \* 4T HDD数据盘:7 \* 4T HDD | RedHat 7.4 & OpenJDK 1.8.0_141 | | 节点2 | 192.168.13.115 | 系统盘:1 \* 4T HDD数据盘:7 \* 4T HDD | RedHat 7.4 & OpenJDK 1.8.0_141 | | 节点3 | 192.168.13.196 | 系统盘:1 \* 4T HDD数据盘:7 \* 4T HDD | RedHat 7.4 & OpenJDK 1.8.0_141 | | 节点4 | 192.168.13.185 | 系统盘:1 \* 4T HDD数据盘:7 \* 4T HDD | RedHat 7.4 & OpenJDK 1.8.0_141 | | 节点5 | 192.168.13.202 | 系统盘:1 \* 4T HDD数据盘:7 \* 4T HDD | RedHat 7.4 & OpenJDK 1.8.0_141 | ## 软件规划 五台机器分别为节点1、节点2、节点3、节点4、节点5 | 机器名称 | 服务名称 | | -------- | ---------------------------- | | 节点1 | - | | 节点2 | - | | 节点3 | QuorumPeerMain、Bootstrap(Solr) | | 节点4 | QuorumPeerMain、Bootstrap(Solr) | | 节点5 | QuorumPeerMain、Bootstrap(Solr) | # 3 配置部署环境 **步骤 1** 依次登录节点1-5,将节点的主机名分别修改为Namenode1、Namenode2、Datanode1、Datanode2、Datanode3 ``` hostnamectl set-hostname 主机名 --static ``` **步骤 2** 登录所有节点,修改“/etc/hosts”文件。 在hosts文件中添加集群所有节点的“地址-主机名”映射关系 ``` 192.168.13.224 Namenode1 192.168.13.115 Namenode2 192.168.13.196 Datanode1 192.168.13.185 Datanode2 192.168.13.202 Datanode3 ``` **步骤 3** 登录所有节点,关闭防火墙。 ``` systemctl stop firewalld.service systemctl disable firewalld.service ``` **步骤 4** 登录所有节点,配置SSH免密登录。 1. 执行如下命令,生成密钥,遇到提示时,按回车。 ``` ssh-keygen -t rsa ``` 2. 在每台机器上执行如下命令,配置SSH免密登录(包括配置自身节点的免密)。 ``` ssh-copy-id -i ~/.ssh/id_rsa.pub root@所有节点IP ``` **步骤 5** 登录所有节点,安装OpenJDK 1.8。 1. 安装OpenJDK 1.8。 ``` yum install java-1.8.0-openjdk* ``` 2. 添加环境变量。 ``` vim /etc/profile export JAVA_HOME=/usr/lib/jvm/java export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ``` 3. 生效环境变量。 ``` source /etc/profile ``` 4. 查看jdk版本。 ``` java -version ``` # 4 部署Zookeeper ## **4.1解压zookeeper** **步骤 1** 将zookeeper-3.4.6.tar.gz放置于Datanode1节点的“/usr/local”目录下,并解压。 ``` tar -zxvf zookeeper-3.4.6.tar.gz ``` **步骤 2** 建立软链接,便于后期版本更换。 ``` ln -s zookeeper-3.4.6 zookeeper ``` ## 4.2添加zookeeper到环境变量 **步骤 1** 编辑/etc/profile文件。 ``` vim /etc/profile ``` **步骤 2** 在文件底部添加环境变量。 ``` export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$ZOOKEEPER_HOME/bin:$PATH ``` **步骤 3** 环境变量生效 ``` source /etc/profile ``` ## 4.3修改zookeeper配置文件 **步骤 1** 切换至zookeeper的配置目录。 命令如下所示: ``` cd /usr/local/zookeeper/conf ``` **步骤 2** 将zoo_sample.cfg拷贝并重命名为zoo.cfg。 命令如下所示: ``` cp zoo_sample.cfg zoo.cfg ``` **步骤 3** 编辑zoo.cfg ``` vim zoo.cfg ``` dataDir=/usr/local/zookeeper/tmp # 修改数据目录 在最后添加,Datanode1-3是部署Zookeeper的节点 ``` server.1=Datanode1:2888:3888 server.2=Datanode2:2888:3888 server.3=Datanode3:2888:3888 ``` ![yy.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/201911/14/170632fejpnwwi6gzrgw58.png) **步骤 4** 保存退出。 **步骤 5** 然后创建一个tmp目录作为数据目录。 命令如下所示: ``` mkdir /usr/local/zookeeper/tmp ``` **步骤 6** 在tmp目录中创建一个空文件,并向该文件写入ID。 命令如下所示: ``` touch /usr/local/zookeeper/tmp/myid echo 1 > /usr/local/zookeeper/tmp/myid ``` ## 4.4同步配置到其它节点 **步骤 1** 将配置好的zookeeper目录拷贝到其它节点,即Datanode2和Datanode3节点。 命令如下所示: ``` scp -r /usr/local/zookeeper-3.4.6 root@Datanode2:/usr/local scp -r /usr/local/zookeeper-3.4.6 root@Datanode3:/usr/local ``` **步骤 2** 登录Datanode2、Datanode3,创建软链接、修改myid内容。 1. 在Datanode2节点创建软链接并修改myid内容,如下所示: ``` cd /usr/local ln -s zookeeper-3.4.6 zookeeper echo 2 > /usr/local/zookeeper/tmp/myid ``` 2. 在Datanode3节点创建软链接并修改myid内容,如下所示: ``` cd /usr/local ln -s zookeeper-3.4.6 zookeeper echo 3 > /usr/local/zookeeper/tmp/myid ``` ## 4.5运行验证 **步骤 1** 分别在Datanode1、Datanode2、Datanode3节点上执行以下命令,启动zookeeper。 ``` cd /usr/local/zookeeper/bin ./zkServer.sh start ``` 说明:您可以分别在Datanode1,Datanode2,Datanode3上执行以下命令,停止Zookeeper。 ``` cd /usr/local/zookeeper/bin ./zkServer.sh stop ``` **步骤 2** 查看Zookeeper状态。 ``` ./zkServer.sh status ``` # 5 部署Solr ​ Solr集群依赖Zookeeper,部署Solr前需先根据第3章部署zookeeper ## 5.1 下载软件包 **步骤 1** 将solr-6.2.0.tgz、apache-tomcat-8.5.28.tar.gz放置于Datanode1的“/usr/local/solrCloud” 目录下。 说明: “/usr/local/solrCloud”目录需提前创建。 **步骤 2** 解压Solr软件包。 ``` tar -zxvf solr-6.2.0.tgz ``` **步骤 3** 建立软链接,便于后期版本更换。 ``` ln -s solr-6.2.0 solr ``` **步骤 4** 解压tomcat软件包。 ``` tar -zxvf apache-tomcat-8.5.28.tar.gz ``` **步骤 5** 建立软链接,便于后期版本更换。 ``` ln -s apache-tomcat-8.5.28 tomcat ``` ## 5.2 添加Solr到环境变量 **步骤 1** 打开配置文件。 ``` vim /etc/profile ``` **步骤 2** 添加Solr到环境变量。 ``` export SOLR_HOME=/usr/local/solrCloud export PATH=$SOLR_HOME/bin:$PATH ``` **步骤 3** 环境变量生效 ``` source /etc/profile ``` ## 5.3 拷贝Solr配置至相应目录 说明: Solr安装目录: /usr/local/solrCloud/solr Solr配置文件目录:/usr/local/solrCloud/solrConfig Solr数据文件目录:/usr/local/solrCloud/solrCores Tomcat安装目录: /usr/local/solrCloud/tomcat **步骤 1** 创建Solr配置文件、数据文件目录。 ``` mkdir -p /usr/local/solrCloud/{solrConfig,solrCores} ``` **步骤 2** 拷贝solr-webapps。 ``` cp -r /usr/local/solrCloud/solr/server/solr-webapp/webapp /usr/local/solrCloud/tomcat/webapps/solr ``` **步骤 3** 将solr/server/lib/ext目录下的jar文件拷贝到tomcat/webapps/solr/WEB-INF/lib目录。 ``` cp -r /usr/local/solrCloud/solr/server/lib/ext/*.jar /usr/local/solrCloud/tomcat/webapps/solr/WEB-INF/lib/ ``` **步骤 4** 拷贝配置文件。 ``` cp -r /usr/local/solrCloud/solr/server/solr/configsets/basic_configs/conf/* /usr/local/solrCloud/solrConfig cp -r /usr/local/solrCloud/solr/example/files/conf/velocity /usr/local/solrCloud/solrConfig cp /usr/local/solrCloud/solr/server/solr/solr.**Xml** /usr/local/solrCloud/solrCores ``` ## 5.4 修改配置 **步骤 1** 打开solrCores/solr.**Xml**,修改hostPort,保持和tomcat端口一致,本文使用tomcat默认端口8080。 ``` vim solrCores/solr.xml ``` ``` <int name="hostPort">8080</int> ``` 将solr.xml拷贝到/usr/local/solrCloud/solr目录 ``` cp /usr/local/solrCloud/solrCores/solr.xml /usr/local/solrCloud/solr ``` **步骤 2** 创建目录 ``` mkdir -p /usr/local/solrCloud/tomcat/conf/Catalina/localhost ``` **步骤 3** 在“/usr/local/solrCloud/tomcat/conf/Catalina/localhost/”目录下创建solr.xml,添加以下内容: ``` vim /usr/local/solrCloud/tomcat/conf/Catalina/localhost/solr.xml ``` ``` <?xml version="1.0" encoding="UTF-8"?> <Context docBase="/usr/local/solrCloud/tomcat/webapps/solr" debug="0" crossContext="true"> <Environment name="solr/home" type="java.lang.String" value="/usr/local/solrCloud/solrCores" override="true"/> </Context> ``` **步骤 4** 修改tomcat/bin/catalina.sh。 修改/usr/local/solrCloud/tomcat/bin/catalina.sh 执行: ``` vim /usr/local/solrCloud/tomcat/bin/catalina.sh ``` 添加下面一行内容: ``` JAVA_OPTS="-DzkHost=Datanode1:2181,Datanode2:2181,Datanode3:2181" ``` ![11111.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/201911/18/172220wk7cde1z8rohfzim.png) ##5.5 同步配置到其它节点 **步骤 1** 拷贝solrCloud到Datanode2、Datanode3的“/usr/local”目录下。 ``` scp -r /usr/local/solrCloud root@Datanode2:/usr/local scp -r /usr/local/solrCloud root@Datanode3:/usr/local ``` **步骤 2** 登录到Datanode2、Datanode3节点,为solr和tomcat建立软链接。 可不执行这一步,因为在scp的时候,软链接后的solr和tomcat都变成了真实目录。 ``` cd /usr/local/solrCloud rm -rf solr tomcat ln -s solr-6.2.0 solr ln -s apache-tomcat-8.5.28 tomcat ``` ##5.6 上传配置至zookeeper集群 **步骤 1** 请提前启动Zookeeper集群,具体操作请参见4.5 运行验证。 **步骤 2** 在Datanode1执行以下命令。 ``` java -classpath .:/usr/local/solrCloud/tomcat/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost Datanode1:2181,Datanode2:2181,Datanode3:2181 -confdir /usr/local/solrCloud/solrConfig/ -confname solrconfig ``` **步骤 3** 查看配置是否成功上传至Zookeeper。 ``` cd /usr/local/zookeeper/bin ./zkCli.sh -server Datanode1:2181 ls /configs/solrconfig ``` ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/201909/29/1434304yqu80a7imsd5ied.png) **步骤 4** 退出连接。 ``` quit ``` ## 5.7 启动Solr **步骤 1** 分别在Datanode1-3节点执行以下命令,启动Tomcat即启动Solr。 ``` /usr/local/solrCloud/tomcat/bin/startup.sh ``` **可选:**默认8080端口常常被占用,可通过${tomcat}/conf/server.**Xml**修改tomcat默认访问端口。修改后,请同步修改solrCores/solr.**Xml**的hostPort,具体操作请参见步骤1。 ``` <Connector port="新端口号" protocol="HTTP/1.1" ``` ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/201909/29/143438imaqvjzgymag4odp.png) 说明: 您可以分别在Datanode1-3节点执行以下命令,关闭Tomcat即关闭Solr: ``` /usr/local/solrCloud/tomcat/bin/shutdown.sh ``` **步骤 2** 在浏览器地址栏输入http://Datanode1:8080/solr/index.html,按Enter,访问Solr。 其中地址栏中,"Datanode1"填写Datanode1进程所在节点的IP地址,此处是192.168.13.196。 ![image.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/201909/29/143449e9p8y520rd60p2fr.png)
  • 【鲲鹏翱翔】应用中间件05-solr移植安装指南
    1、简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Solr可以支持在arm环境下运行,无需重新编译。但需要配合Tomcat 8以上版本使用。可以从官网下载最新的Solr包进行解压缩、配置、运行。2、环境类别版本配置备注ARM测试服务器CentOS7.4arm通用计算增强型 | rc3.xlarge.4 | 4vCPUs | 14GB华为云公测可申请ARM服务器3、Tomcat安装(详细见tomcat指导安装文档)4、Solr安装(arm服务器)4.1.下载安装包wget http://mirror.bit.edu.cn/apache/lucene/solr/8.1.1/solr-8.1.1.zip4.2.解压缩包unzip solr-8.1.1.zip4.3.复制文件夹到目录1.拷贝solr-8.1.1/server/solr-webapp/webapp目录到tomcat/webapp/,改名叫solrcp -r solr-8.1.1/server/solr-webapp/webapp tomcat8/webapps/solr2.拷贝solr-8.1.1/server/lib/ext下的jar包到tomcat下的webapps/solr/WEB-INF/lib路径下cp solr-8.1.1/server/lib/ext/*.jar tomcat8/webapps/solr/WEB-INF/lib/3. 拷贝solr-8.1.1/dist 下的solr-dataimporthandler-8.1.1.jar、solr-dataimporthandler-extras-8.1.1.jar 包到tomcat下的webapps/solr/WEB-INF/lib路径cp solr-8.1.1/dist/solr-dataimporthandler*.jar   tomcat8/webapps/solr/WEB-INF/lib4.拷贝solr-8.1.1/server/lib下的metrics开头的5个jar到tomcat下的webapps/solr/WEB-INF/lib路径下(metrics-core-3.2.2.jar、metrics-ganglia-3.2.2.jar、metrics-graphite-3.2.2.jar、metrics-jetty9-3.2.2.jar、metrics-jvm-3.2.2.jar)5.新建一个文件夹solr-home,并将solr-8.1.1/server/路径下solr文件夹中的内容拷贝过来mkdir solr-homecp -r solr-8.1.1/server/solr/* solr-home  (复制到刚刚新建的solr-home里)4.4.环境配置1.进入tomcat8下的webapps/solr/WEB-INF下修改web.xmlcd tomcat8/webapps/solr/WEB-INFvi web.xml2. //记得打开此处的注释(如果没有手动输入)<env-entry>    <env-entry-name>solr/home</env-entry-name>  <env-entry-value>/usr/local/solr/solr-home</env-entry-value>//自己solr-home的位置    <env-entry-type>java.lang.String</env-entry-type></env-entry> //中间省略...//下面这段注释掉<!--  <security-constraint>    <web-resource-collection>        <web-resource-name>Disable TRACE</web-resource-name>        <url-pattern>/</url-pattern>        <http-method>TRACE</http-method>      </web-resource-collection>    <auth-constraint/>  </security-constraint>  <security-constraint>      <web-resource-collection>        <web-resource-name>Enable everything but   TRACE</web-resource-name>        <url-pattern>/</url-pattern>        <http-method-omission>TRACE</http-method-omission>      </web-resource-collection>  </security-constraint>  -->5、测试5.1.测试执行1.运行tomcat2.访问http://ip:port/solr/index.html(ip端口根据tomcat配置来填) 6、参考信息     solr安装指导: https://blog.csdn.net/qq_40524941/article/details/815122937、FAQ     待补充来源: 【鲲鹏翱翔】应用中间件05-solr移植安装指南
  • [中间件] 【华为云鲲鹏云服务最佳实践】【中间件篇】第003期 Solr 7.7.2 安装配置指南
    1、简介      Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。      官方链接:https://lucene.apache.org/solr/      类别:服务器2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Solr7.7.2 JDK1.8.0 3、依赖安装参考文档“华为云鲲鹏云服务最佳实践-JDK-1.8.0安装配置指南.docx”4、组件编译安装无5、系统配置下载并解压solr-7.7.2.tgzmkdir /xxx/solrcd /xxx/solrwget http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/7.7.2/solr-7.7.2.tgztar -zxvf solr-7.7.2.tgz6、测试测试内容:Solr是否能正常使用cd solr-7.7.2bin/solr stop -all 关闭solr服务bin/solr start -force 开启solr服务bin/solr status    查看solr服务状态测试结果:7、参考信息官方文档:https://lucene.apache.org/solr/resources.html8、FAQ无
  • [中间件] 【鲲鹏翱翔】应用中间件05-solr移植安装指南
    1、简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Solr可以支持在arm环境下运行,无需重新编译。但需要配合Tomcat 8以上版本使用。可以从官网下载最新的Solr包进行解压缩、配置、运行。2、环境类别版本配置备注ARM测试服务器CentOS7.4arm通用计算增强型 | rc3.xlarge.4 | 4vCPUs | 14GB华为云公测可申请ARM服务器3、Tomcat安装(详细见tomcat指导安装文档)4、Solr安装(arm服务器)4.1.下载安装包wget http://mirror.bit.edu.cn/apache/lucene/solr/8.1.1/solr-8.1.1.zip4.2.解压缩包unzip solr-8.1.1.zip4.3.复制文件夹到目录1.拷贝solr-8.1.1/server/solr-webapp/webapp目录到tomcat/webapp/,改名叫solrcp -r solr-8.1.1/server/solr-webapp/webapp tomcat8/webapps/solr2.拷贝solr-8.1.1/server/lib/ext下的jar包到tomcat下的webapps/solr/WEB-INF/lib路径下cp solr-8.1.1/server/lib/ext/*.jar tomcat8/webapps/solr/WEB-INF/lib/3. 拷贝solr-8.1.1/dist 下的solr-dataimporthandler-8.1.1.jar、solr-dataimporthandler-extras-8.1.1.jar 包到tomcat下的webapps/solr/WEB-INF/lib路径cp solr-8.1.1/dist/solr-dataimporthandler*.jar   tomcat8/webapps/solr/WEB-INF/lib4.拷贝solr-8.1.1/server/lib下的metrics开头的5个jar到tomcat下的webapps/solr/WEB-INF/lib路径下(metrics-core-3.2.2.jar、metrics-ganglia-3.2.2.jar、metrics-graphite-3.2.2.jar、metrics-jetty9-3.2.2.jar、metrics-jvm-3.2.2.jar)5.新建一个文件夹solr-home,并将solr-8.1.1/server/路径下solr文件夹中的内容拷贝过来mkdir solr-homecp -r solr-8.1.1/server/solr/* solr-home  (复制到刚刚新建的solr-home里)4.4.环境配置1.进入tomcat8下的webapps/solr/WEB-INF下修改web.xmlcd tomcat8/webapps/solr/WEB-INFvi web.xml2. //记得打开此处的注释(如果没有手动输入)<env-entry>    <env-entry-name>solr/home</env-entry-name>  <env-entry-value>/usr/local/solr/solr-home</env-entry-value>//自己solr-home的位置    <env-entry-type>java.lang.String</env-entry-type></env-entry> //中间省略...//下面这段注释掉<!--  <security-constraint>    <web-resource-collection>        <web-resource-name>Disable TRACE</web-resource-name>        <url-pattern>/</url-pattern>        <http-method>TRACE</http-method>      </web-resource-collection>    <auth-constraint/>  </security-constraint>  <security-constraint>      <web-resource-collection>        <web-resource-name>Enable everything but   TRACE</web-resource-name>        <url-pattern>/</url-pattern>        <http-method-omission>TRACE</http-method-omission>      </web-resource-collection>  </security-constraint>  -->5、测试5.1.测试执行1.运行tomcat2.访问http://ip:port/solr/index.html(ip端口根据tomcat配置来填) 6、参考信息     solr安装指导: https://blog.csdn.net/qq_40524941/article/details/815122937、FAQ     待补充