SolrCloud4.7.1分布式部署
软件:
- apache-tomcat-7.0.53.tar.gz
- solr-4.7.1.tgz
- zookeeper-3.4.6.tar.gz
规划:
三个节点IP:
- 192.168.50.9
- 192.168.50.227
- 192.168.20.32
请配置每台机器上hosts文件,使每个节点都能通过机器名访问
|
SolrCloud数据集 |
primary |
|
Zookeeper集群 |
3 |
|
索引分片 |
3 |
|
复制因子 |
2 |
个索引分片(Shard)的复本(Replica)分布在3个SolrCloud节点上
说明:部署修改配置操作都在Window系统上完成,最后打成包放到Linux上解压运行
二.安装Zookeeper集群
1.解压zookeeper-3.4.6.tar.gz到本地
2.复制zookeeper-3.4.6\conf下zoo_sample.cfg为zoo.cfg并修改内容
|
tickTime=2000 initLimit=10 syncLimit=5 dataDir=/data/zookeeper-3.4.6 clientPort= server.1=192.168.50.9:1888:2888 server.2=192.168.20.32:1888:2888 server.3=192.168.50.227:1888:2888 |
这里我修改了端口号,也可根据情况调整.
为下面对应机器的myid编号
3.在zookeeper-3.4.6的根目录打包成zookeeper-3.4.6.zip
4.在liunx中建立solrCloud4.7目录将zookeeper-3.4.6.zip上传并解压
|
mkdir solrCloud4.7 unzip zookeeper-3.4.6.zip |

5.新建/data/zookeeper-3.4.6,初始化myid,三个节点编号依次为1,2,3,在其余节点上分别执行命令(注意修改编号)。
|
mkdir /data/zookeeper-3.4.6 -p echo "1">/data/zookeeper-3.4.6/myid |
注意1的节点IP为192.168.50.9
6.在其他三个节点上执行上述操作后,启动Zookeeper集群
|
sh zookeeper-3.4.6/bin/zkServer.sh start sh zookeeper-3.4.6/bin/zkServer.sh status |
查看Zookeeper集群状态



三.Tomcat和Solr的配置
1.解压apache-tomcat-7.0.53.tar.gz与solr-4.7.1.tgz到本地
2.修改apache-tomcat-7.0.53\bin中的catalina.sh文件,配置JAVA_OPTS
|
JAVA_OPTS="-Djetty.port=8585 -Dsolr.solr.home=/solrCloud4.7/solrhome -Dbootstrap_confdir=/solrCloud4.7/solrhome/primary/conf -Dcollection.configName=primary -DzkHost=192.168.50.227:1181,192.168.20.32:1181,192.168.50.9:1181" |
注意之后要建立solrhome
3.修改apache-tomcat-7.0.53\conf下的server.xml文件中端口号
|
<Connector port="" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> |
4.拷贝solr-4.7.1\example\resources下log4j.properties到apache-tomcat-7.0.53\lib中
5.建立solrhome文件夹,将solr-4.7.1\example\solr文件夹中的全部内容拷贝到solrhome中
a.修改solr.xml
|
<solr> <solrcloud> <str name="host">${host:}</str> <str name="zkHost">192.168.50.9:1181,192.168.20.32:1181,192.168.50.227:1181</str> <int name="hostPort">${jetty.port:8585}</int> <str name="hostContext">${hostContext:solr}</str> <int name="zkClientTimeout">${zkClientTimeout:30000}</int> <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool> </solrcloud>
<shardHandlerFactory name="shardHandlerFactory" class="HttpShardHandlerFactory"> <int name="socketTimeout">${socketTimeout:15000}</int> <int name="connTimeout">${connTimeout:15000}</int> </shardHandlerFactory> </solr> |
b.重命名collection1为primary,修改primary中core.properties文件中name=primary
6.解压solr-4.7.1\example\webapps\solr.war到本地(/solr)
a.拷贝solr-4.7.1\example\lib\ext下所有文件到solr\WEB-INF\lib中
b.修改solr-4.7.1\example\webapps\solr\WEB-INF中web.xml文件
|
<!-- <env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> --> |
放开上面注释,替换为
|
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/solrCloud4.7/solrhome</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry> |
7.拷贝之前配置的solr-4.7.1\example\webapps\solr文件夹到tomcat中
apache-tomcat-7.0.53\webapps文件夹下
8.在根目录打包solrhome和apache-tomcat-7.0.53,上传到solrCloud4.7下
四.Zookeeper集群的配置
1.通过bootstrap设置solrhome
|
java -classpath .:/solrCloud4.7/apache-tomcat-7.0.53/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -zkhost 192.168.50.9:1181,192.168.50.227:1181,192.168.20.32:1181 -cmd bootstrap -solrhome /solrCloud4.7/solrhome |
SolrCloud集群的所有的配置存储在ZooKeeper上。
一旦SolrCloud节点启动时配置了-Dbootstrap_confdir参数,
该节点的配置信息将发送到ZooKeeper上存储。其他节点启动时会应用ZooKeeper上的配置信息,这样当我们改动配置时就不用一个个机子去更改了。
2.SolrCloud是通过ZooKeeper集群来保证配置文件的变更及时同步到各个节点上,所以,需要将配置文件上传到ZooKeeper集群中
|
java -classpath .:/solrCloud4.7/apache-tomcat-7.0.53/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -zkhost 192.168.50.9:1181,192.168.50.227:1181,192.168.20.32:1181 -cmd upconfig -confdir /solrCloud4.7/solrhome/primary/conf -confname primaryconf |
zkhost指定ZooKeeper地址,逗号分割,/solrhome/primary/conf为配置文件目录。primaryconf为在ZooKeeper上的配置文件名称。
3.把配置文件和目标collection联系起来
|
java -classpath .:/solrCloud4.7/apache-tomcat-7.0.53/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -zkhost 192.168.50.9:1181,192.168.50.227:1181,192.168.20.32:1181 -cmd linkconfig -collection primary -confname primaryconf |
创建的collection叫做primary,并指定和primaryconf连接
4.查看Zookeeper集群状态
|
sh zookeeper-3.4.6/bin/zkCli.sh -server localhost:1181 |

五.启动Tomcat
1.给tomcat中sh文件授权
|
chmod +x apache-tomcat-7.0.53/bin/*.sh |
2.启动三台机子的tomcat
|
sh apache-tomcat-7.0.53/bin/startup.sh |
这个版本没有配好,solrCloud也不会报错

3.创建collection,初始化shard
|
curl 'http://192.168.50.9:8585/solr/admin/collections?action=CREATE&name=primary&numShards=3&replicationFactor=1' |
返回内容
|
<?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">4228</int> </lst> <lst name="success"> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">3606</int> </lst> <str name="core">primary_shard2_replica1</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">3661</int> </lst> <str name="core">primary_shard3_replica1</str> </lst> <lst> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">3820</int> </lst> <str name="core">primary_shard1_replica1</str> </lst> </lst> </response> |

SolrCloud4.7.1分布式部署的更多相关文章
- Hadoop1 Centos伪分布式部署
前言: 毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了.对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环 ...
- ActiveMQ5.14.1+Zookeeper3.4.9高可用伪分布式部署
本文借鉴http://www.cnblogs.com/gossip/p/5977489.html,在此基础上进行了完善,使之成为一个完整版的伪分布式部署说明,在此记录一下! 一.本文目的 ...
- Memcache分布式部署方案
基础环境 其实基于PHP扩展的Memcache客户端实际上早已经实现,而且非常稳定.先解释一些名词,Memcache是danga.com的一个开源项目,可以类比于MySQL这样的服务,而PHP扩展的M ...
- hadoop2.6分布式部署时 livenodes等于1的原因
1.问题描述 在进行hadoop2.x版本的hdfs分布式部署时,遇到了一个奇怪的问题: 使用start-dfs.sh命令启动dfs之后,所有的datanode节点上均能看到datanode进程,然而 ...
- 项目分布式部署那些事(2):基于OCS(Memcached)的Session共享方案
在不久之前发布了一篇"项目分布式部署那些事(1):ONS消息队列.基于Redis的Session共享,开源共享",因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相 ...
- 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享
因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXi ...
- Memcached常规应用与分布式部署方案
1.Memcached常规应用 $mc = new Memcache(); $mc->conncet('127.0.0.1', 11211); $sql = sprintf("SELE ...
- Redis分布式部署,一致性hash
一致性哈希 由于hash算法结果一般为unsigned int型,因此对于hash函数的结果应该均匀分布在[0,2^32-1]区间,如果我们把一个圆环用2^32 个点来进行均匀切割,首先按照hash( ...
- Zabbix监控和分布式部署实施方案
最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到 ...
随机推荐
- p分位数的原理及计算
p分位数的原理及计算 大纲>> 1.统计上的分位数概念 2.分位数的计算方法及举例 2.1首先确定p分位数的位置(依据项数分为基数.偶数情况) 2.2 求上一步确定的p分位数位置处的具 ...
- 廖雪峰Java15JDBC编程-3JDBC接口-5JDBC连接池
1. JDBC连接池 1.1 JDBC连接池简介 线程池可以复用一个线程,这样大量的小任务通过线程池的线程执行,就可以避免反复创建线程带来的开销. 同样JDBC可以复用一个JDBC连接 JDBC的连接 ...
- SpringCloudBus
不重启微服务的情况下更新配置 配置服务端 tensquare_config配置依赖 <dependency> <groupId>org.springframework.clou ...
- js面试总结2
原型和原型链: 题目,知识点,解答: 1.如何准确地判断一个变量是数组类型 2.写一个原型链继承的例子 3.描述new一个对象的过程 4.zepto(或其他框架)源码中如何使用原型链. 知识点 构造函 ...
- arcmap分类标注问题
在给图层标注的时候,经常出现冲突后有些标注出不来,需要将某些个别的点要素进行标注位置调整,如下图: 处理步骤如下, (1)打开Maplex标注引擎.从ToolBars中打开Labeling工具,勾选U ...
- PHP实现对短信验证码发送次数的限制
http://www.jb51.net/article/94878.htm 对用户获取短信验证码的手机号.ip.和浏览器(使用唯一标识)进行限制.本文介绍的方法是对用户每天只能通过同一浏览器或同一ip ...
- Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接
Python 字符串_python 字符串截取_python 字符串替换_python 字符串连接 字符串是Python中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符 ...
- Python编码decode和encode
常见编码介绍: GB2312编码:适用于汉字处理.汉字通信等系统之间的信息交换;GBK编码:是汉字编码标准之一,是在 GB2312-80 标准基础上的内码扩展规范,使用了双字节编码ASCII编码:是对 ...
- python调用scikit-learn机器学习
不支持深度学习和强化学习 numpy介绍: np.eye(n)生成一个n维单元数组 数据预处理: iris数据加载 from sklearn import datasetsiris = dataset ...
- JS流程控制语句 多种选择(Switch语句) 当有很多种选项的时候,switch比if else使用更方便。
多种选择(Switch语句) 当有很多种选项的时候,switch比if else使用更方便. 语法: switch(表达式) { case值1: 执行代码块 1 break; case值2: 执行代码 ...