一.环境

软件:

  • 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分布式部署的更多相关文章

  1. Hadoop1 Centos伪分布式部署

    前言:       毕业两年了,之前的工作一直没有接触过大数据的东西,对hadoop等比较陌生,所以最近开始学习了.对于我这样第一次学的人,过程还是充满了很多疑惑和不解的,不过我采取的策略是还是先让环 ...

  2. ActiveMQ5.14.1+Zookeeper3.4.9高可用伪分布式部署

    本文借鉴http://www.cnblogs.com/gossip/p/5977489.html,在此基础上进行了完善,使之成为一个完整版的伪分布式部署说明,在此记录一下! 一.本文目的       ...

  3. Memcache分布式部署方案

    基础环境 其实基于PHP扩展的Memcache客户端实际上早已经实现,而且非常稳定.先解释一些名词,Memcache是danga.com的一个开源项目,可以类比于MySQL这样的服务,而PHP扩展的M ...

  4. hadoop2.6分布式部署时 livenodes等于1的原因

    1.问题描述 在进行hadoop2.x版本的hdfs分布式部署时,遇到了一个奇怪的问题: 使用start-dfs.sh命令启动dfs之后,所有的datanode节点上均能看到datanode进程,然而 ...

  5. 项目分布式部署那些事(2):基于OCS(Memcached)的Session共享方案

    在不久之前发布了一篇"项目分布式部署那些事(1):ONS消息队列.基于Redis的Session共享,开源共享",因为一些问题我们使用了阿里云的OCS,下面就来简单的介绍和分享下相 ...

  6. 项目分布式部署那些事(1):ONS消息队列、基于Redis的Session共享,开源共享

    因业务发展需要现在的系统不足以支撑现在的用户量,于是我们在一周之前着手项目的性能优化与分布式部署的相关动作. 概况 现在的系统是基于RabbitHub(一套开源的开发时框架)和Rabbit.WeiXi ...

  7. Memcached常规应用与分布式部署方案

    1.Memcached常规应用 $mc = new Memcache(); $mc->conncet('127.0.0.1', 11211); $sql = sprintf("SELE ...

  8. Redis分布式部署,一致性hash

    一致性哈希 由于hash算法结果一般为unsigned int型,因此对于hash函数的结果应该均匀分布在[0,2^32-1]区间,如果我们把一个圆环用2^32 个点来进行均匀切割,首先按照hash( ...

  9. Zabbix监控和分布式部署实施方案

    最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到 ...

随机推荐

  1. 【JZOJ6346】ZYB和售货机

    description analysis 其实这个连出来的东西叫基环内向树 先考虑很多森林的情况,也就是树根连回自己 明显树根物品是可以被取完的,那么买树根的价钱要是儿子中价钱最小的那个 或者把那个叫 ...

  2. yield支持的协程

    #_author:来童星#date:2019/12/12def consumer(name): print("--->start...") while True: new_b ...

  3. Redis过滤器如何与Envoy代理一起使用

    1.克隆源码到机器 [root@cx-- ~]# git clone https://github.com/envoyproxy/envoy Cloning into 'envoy'... remot ...

  4. vuex的简单介绍

    .vuex的定义 )Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式,使用插件的形式引进项目中 )集中存储和管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 ...

  5. 前端笔记:animate+easing用法(hexo next主题自定义动画)

    个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io easing介绍 animate默认是有加速度 ...

  6. Vue入坑——vue-cli(脚手架)目录结构认识

    转载:https://my.oschina.net/u/3802541/blog/1809182 一.目录结构 |-- build                            // 项目构建 ...

  7. Linux复制指令

    功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同时指定多个文件或目录, ...

  8. python元祖,join(),range()

    一.元祖定义 元组:俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改. 儿子不能 ...

  9. springboot整合shiro的使用

    shiro的原理已经有博客了,自己写可以问度娘 参考https://www.cnblogs.com/liyinfeng/p/8033869.html 此处直接描述实际使用 一.pom.xml引包 &l ...

  10. 对倾斜的图像进行修正——基于opencv 透视变换

    这篇文章主要解决这样一个问题: 有一张倾斜了的图片(当然是在Z轴上也有倾斜,不然直接旋转得了o(╯□╰)o),如何尽量将它纠正到端正的状态. 而要解决这样一个问题,可以用到透视变换. 关于透视变换的原 ...