一. 说明
Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了。
部署前的准备工作:
1. 将各主机IP配置为静态IP(保证各主机可以正常通信,为避免过多的网络传输,建议在同一网段)。
2. 修改主机名,配置各主机映射;修改hosts文件,加入各主机IP和主机名的映射。
3. 开放相应端口或者直接关闭防火墙。
4. 保证Zookeeper集群服务正常运行。Zookeeper的部署参考:http://www.cnblogs.com/wxisme/p/5178211.html
5. root权限
6.相关参数和组件的说明:
Collection:在SolrCloud集群中逻辑意义上的完整的索引。它常常被划分为一个或多个Shard,它们使用相同的Config Set。如果Shard数超过一个,它就是分布式索引,SolrCloud让你通过Collection名称引用它,而不需要关心分布式检索时需要使用的 和Shard相关参数。
Core:也就是Solr Core,一个Solr中包含一个或者多个Solr Core,每个Solr Core可以独立提供索引和查询功能,每个Solr Core对应一个索引或者Collection的Shard,Solr Core的提出是为了增加管理灵活性和共用资源。在SolrCloud中有个不同点是它使用的配置是在Zookeeper中的,传统的Solr core的配置文件是在磁盘上的配置目录中。
Leader:赢得选举的Shard replicas。每个Shard有多个Replicas,这几个Replicas需要选举来确定一个Leader。选举可以发生在任何时间,但是通常他 们仅在某个Solr实例发生故障时才会触发。当索引documents时,SolrCloud会传递它们到此Shard对应的leader,leader 再分发它们到全部Shard的replicas。
Replica:Shard的一个拷贝。每个Replica存在于Solr的一个Core中。一个命名为“test”的collection以 numShards=1创建,并且指定replicationFactor设置为2,这会产生2个replicas,也就是对应会有2个Core,每个在 不同的机器或者Solr实例。一个会被命名为test_shard1_replica1,另一个命名为test_shard1_replica2。它们中 的一个会被选举为Leader。
Shard:Collection的逻辑分片。每个Shard被化成一个或者多个replicas,通过选举确定哪个是Leader。
二. 安装过程
1. 到Apache官网下载Solr-5.2.1安装包
2. 进入到Solr文件的目录,执行以下命令从压缩包中抽出安装脚本:
tar -xvzf solr-5.2.1.tgz solr-5.2.1/bin/install_solr_service.sh --strip-components=2
3. 运行安装脚本
执行以下命令安装Solr:
./install_solr_service.sh solr-5.2.1.tgz -i /usr/solr/solr5 -d /usr/solr/solr5 -u solr -s solr -p 8983
或者执行以下命令按照默认值安装:
./install_solr_service.sh solr-5.2.1.tgz
其实也可以直接解压安装包,然后自定义配置即可。
4.修改配置
执行以下命令编辑solr.in.sh文件:
vim /usr/solr5/solr.in.sh
参照如下进行修改:
SOLR_JAVA_MEM="-Xms1G -Xmx1G"
ZK_HOST="node1:2181,node2:2181,node3:2181/solr"
内存限制可以按照需要设定。
5.按照上述步骤在其他节点执行安装
三. 启动Solr服务并验证
1. 在Solr集群中各节点执行以下命令启动Solr服务:
service solr start
2.查看Solr状态
service solr status
3.登录Solr UI
http://node1:8983/solr
四. 测试Solr
Solr提供了几种常用的方式来操作,Shell命令、REST API、SolrJ接口等等,根据实际情况选择。下面的操作为了简单方便的演示使用Shell命令的方式。
1. 打开并编辑server/solr/configsets/sample_techproducts_configs/conf下的schema.xml文件,在文件末尾随便添加一个field。
2. 创建一个collection并上传关联配置文件至Zookeeper。
./bin/solr create_collection -c students -d server/solr/configsets/sample_techproducts_configs/conf -shards 3 -replicationFactor 3
如果以后要更新配置文件到Zookeeper,可以使用以下命令更新全部配置:
./server/scripts/cloud-scripts/zkcli.sh -zkhost node2:2181,node1:2181,node3:2181 -cmd upconfig -confname students -confdir server/solr/configsets/sample_techproducts_configs/conf
如果只更新单个文件使用putfile命令:
./server/scripts/cloud-scripts/zkcli.sh -zkhost node2:2181,node1:2181,node3:2181 -cmd putfile /solr/configs/students/schema.xml /usr/tempfiles/schema.xml
路径的前者为配置文件在Zookeeper中的存储路径,后者是配置文件的本地路径。需要注意的是如果Zookeeper中的这个文件存在需要先删除之,然后在上传更新。可以登录Zookeeper中操作:
ZK_HOME/./bin/zkCli.sh -timeout 5000 -server node3:2181
登录到Zookeeper之后可以使用命令来对配置文件删除以及其他的操作,如果不清楚配置文件在Zookeeper中的位置也可以查看。
3.检测collection是否成功创建,在Solr UI中刷新页面,点击Cloud如果成功创建了Collection会显示出Solr的集群拓扑。
还可以查看定义的schema.xml是否生效
4.添加索引,查询数据
1.添加索引数据可以使用上述的几种方式,为简单起见使用Solr UI添加简单的索引数据进行测试
点击提交会返回成功的信息:
2.查询测试
测试完之后可以删除Collection
http://node1:8983/solr/admin/collections?action=DELETE&name=students
到此Solr的部署和简单的测试就完成了,接下来就可以深入学习Solr的工作原理、数据结构的定义、配置和查询了。
参考资料:Solr官方文档
Solr3.6.1 在Tomcat6下的环境搭建 http://www.linuxidc.com/Linux/2013-01/77664.htm
基于Tomcat的Solr3.5集群部署 http://www.linuxidc.com/Linux/2012-12/75297.htm
在Linux上使用Nginx为Solr集群做负载均衡 http://www.linuxidc.com/Linux/2012-12/75257.htm
Linux下安装使用Solr http://www.linuxidc.com/Linux/2012-10/72029.htm
在 Ubuntu 12.04 LTS 上通过 Tomcat 部署 Solr 4 http://www.linuxidc.com/Linux/2012-09/71158.htm
Solr实现Low Level查询解析(QParser) http://www.linuxidc.com/Linux/2012-05/59755.htm
基于Solr 3.5搭建搜索服务器 http://www.linuxidc.com/Linux/2012-05/59743.htm
Solr 3.5开发应用教程 PDF高清版 http://www.linuxidc.com/Linux/2013-10/91048.htm
Solr 4.0 部署实例教程 http://www.linuxidc.com/Linux/2013-10/91041.htm
Solr 的详细介绍:请点这里
Solr 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-02/128498.htm
SolrCloud-5.2.1 集群部署及测试的更多相关文章
-
集群部署及测试SolrCloud-5
SolrCloud-5.2.1 集群部署及测试 一. 说明 Solr5内置了Jetty服务,所以不用安装部署到Tomcat了,网上部署Tomcat的资料太泛滥了. 部署前的准备工作: 1. 将各主 ...
-
消息中间件kafka+zookeeper集群部署、测试与应用
业务系统中,通常会遇到这些场景:A系统向B系统主动推送一个处理请求:A系统向B系统发送一个业务处理请求,因为某些原因(断电.宕机..),B业务系统挂机了,A系统发起的请求处理失败:前端应用并发量过大, ...
-
redis3.0集群部署和测试
redis3.0集群部署和测试 环境介绍 两台Centos7的虚拟机模拟6个节点,A台3个master节点,B台3个slave节点A地址:172.16.81.140B地址:172.16.81.141r ...
-
solrCloud 4.9 分布式集群部署及注意事项
环境搭建 一.zookeeper 参考:http://blog.chinaunix.net/uid-25135004-id-4214399.html 现有4台机器 10.14.2.201 10.14. ...
-
redis3.2.11多机多实例集群部署及测试连接情况
机器配置 redis3.2.11安装配置规划 机器 192.168.169.136(本机虚拟机1) 192.168.169.137(本机虚拟机2) 系统 Red Hat Enterprise Linu ...
-
redis3.2.11单机多实例集群部署并测试连接情况
配置准备: redis3.2.11安装配置规划 机器 192.168.169.135(本机虚拟机) 系统 Red Hat Enterprise Linux Server release 6.4 (Sa ...
-
Hadoop系列之(二):Hadoop集群部署
1. Hadoop集群介绍 Hadoop集群部署,就是以Cluster mode方式进行部署. Hadoop的节点构成如下: HDFS daemon: NameNode, SecondaryName ...
-
SolrCloud分布式集群部署步骤
Solr及SolrCloud简介 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口.用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成 ...
-
170825、SolrCloud 分布式集群部署步骤
安装软件包准备 apache-tomcat-7.0.54 jdk1.7 solr-4.8.1 zookeeper-3.4.5 注:以上软件都是基于 Linux 环境的 64位 软件,以上软件请到各自的 ...
随机推荐
-
51nod 1092 回文字符串 (dp)
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1092 这个题是poj-3280的简化版,这里只可以增加字符,设 dp[i ...
-
*[topcoder]BracketExpressions
http://community.topcoder.com/stat?c=problem_statement&pm=13243 就是能否通过把字符串中的'X'替换成"()" ...
-
《java.util.concurrent 包源码阅读》25 Fork/Join框架之Fork与Work-Stealing(重写23,24)
在写前面两篇文章23和24的时候自己有很多细节搞得不是很明白,这篇文章把Fork和Work-Stealing相关的源代码重新梳理一下. 首先来看一些线程池定义的成员变量: 关于scanGuard: v ...
-
gulp简介
简介 gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试.检查.合并.压缩.格式化.浏 ...
-
jenkins(5): jenkins邮件报警配置
参考: https://blog.csdn.net/u013066244/article/details/78665075 1. 使用 增强版的邮件通知 1.1 安装插件 1.2. 系统配置 ...
-
插件:zTree
JQuery zTree core v3.5.23 http://zTree.me/ Date: 2016-04-01 zTree 是利用 JQuery 的核心代码,实现一套能完成大部分常用功能的 T ...
-
FTP 站点及配置
新建FTP站点根据导航步骤一步步来即可. windows server 2008 中ftp的部署以及防火墙的配置 部署环境:Windows Server Enterprise 2008 R2 64b ...
-
Android开发14——监听内容提供者ContentProvider的数据变化
一.提出需求 有A,B,C三个应用,B中的数据需要被共享,所以B中定义了内容提供者ContentProvider:A应用修改了B应用的数据,插入了一条数据.有这样一个需求,此时C应用需要得到数据被修改 ...
-
Redis学习笔记之Linux下Redis的安装和部署
0x00 Redis介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相 ...
-
探究JS中对象的深拷贝和浅拷贝
深拷贝和浅拷贝的区别 在讲深拷贝和浅拷贝的区别之前,回想一下我们平时拷贝一个对象时是怎么操作的?是不是像这样? var testObj1 = {a: 1, b:2}, testObj2=testObj ...