solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建;使用外部web容器tomcat来搭建。对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用tomcat来搭建solrCloud。

废话不多说,开始我们的工作!

1.搭建tomcat单机版solr

见我的上一篇博文solr安装-tomcat单机版

2.安装配置zookeeper

具体下载,安装,配置不详细说了,很简单。只列出我的关键配置项,如下:

clientPort=4181

server.2=hadoop.datanode5.com:2888:9888

server.3=hadoop.datanode2.com:2888:9888
server.1=hadoop.datanode3.com:2888:9888

3. 配置solrCloud

(1)先配置主服务器tomcat 10.2.50.46

vim /usr/apache-tomcat-7.0.54/bin/catalina.sh   在图片所示位置加入以下代码

JAVA_OPTS="$JAVA_OPTS -Dbootstrap_confdir=/usr/solr/collection1/conf -Dcollection.configName=myconf -DzkHost=hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181"

注:其中DzkHost是用来指定zookeeper服务器的ip和端口。 confdir目录指定所有的索引库都从collection1索引库中同步字段

(2)配置从服务器tomcat 10.2.50.28 和10.2.50.52

vim /home/tomcat/bin/catalina.sh 在和上图同样的位置加入

JAVA_OPTS="-DzkHost=hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181"

(3)配置solr collection配置文件

/usr/solr/solr.xml:配置hostport为tomcat的服务端口;配置zkHhost。

<solr><solrcloud><str name="host">${host:}</str><int name="hostPort">8080</int><str name="hostContext">${hostContext:solr}</str><int name="zkClientTimeout">${zkClientTimeout:15000}</int><bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool><str name="zkHost">hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181</str></solrcloud><shardHandlerFactory name="shardHandlerFactory"class="HttpShardHandlerFactory"><int name="socketTimeout">${socketTimeout:0}</int><int name="connTimeout">${connTimeout:0}</int></shardHandlerFactory></solr>

/usr/solr/collection1/core.properties:删除该文件(这样集群启动后就没有collection)

/usr/solr/collection1/conf/solrconfig.xml:修改如下配置项:

<dataDir>${solr.data.dir:/data_solr/example-collection}</dataDir>

将所有的这些配置同步到各个节点上。

(3) 保存后依次启动tomcat,输入http://10.2.50.46:8080,看到如下界面说明成功

正常情况下,应该是没有collection和core的,我这里是自己创建了一个collection。

(4)创建collection,shard,core

有两种方式:一种是创建collection,自动分配shard和replica;另一种是创建collection,手动分配shard和replica。推荐后者,因为可控性强。

方式一:

curl'http://localhost:7070/solr/admin/collections?action=CREATE&name=europe-collection&numShards=3&replicationFactor=3&maxShardsPerNode=3'

这样会出来一个collection,它有3个shard,每个shard有1个数据节点,2个备份节点,即该collection共有9个core

缺点:不灵活,不能选择适合的节点,不能选择数据存放路径,不能选择实例存放路径

方式二:

curl 'http://localhost:8080/solr/admin/cores?action=CREATE&name=cz_collection-shard1-replica1&instanceDir=/usr/solr/cz_collection-shard1-replica1&dataDir=/data_solr/cz_collection-shard1-replica1&collection=cz_collection&shard=shard1'

curl 'http://localhost:8080/solr/admin/cores?action=CREATE&name=cz_collection-shard1-replica2&instanceDir=/usr/solr/cz_collection-shard1-replica2&dataDir=/data_solr/cz_collection-shard1-replica2&collection=cz_collection&shard=shard1'

这样可以创建出一个collection,并自己指定该collection的shard和replica的所有配置项。还可以继续接着创建。

以上两种方式的具体api调用,请参看solr官方文档。

(5)集群运维

a.集群会发生变化的就是collection的配置,因此当collection的配置文件发生变化后就应该使用命令更新zookeeper中配置文件信息,solr很好提供了运维工具:

#collection配置
#将配置文件上传到ZooKeeper中
java -classpath .:/usr/solr/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181 -confdir /usr/solr/collection1/conf -confname myconf
#将上传到ZooKeeper中配置文件与Collection相关联
java -classpath .:/usr/solr/lib/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection cz_collection -confname myconf -zkhost hadoop.datanode2.com:4181,hadoop.datanode3.com:4181,hadoop.datanode5.com:4181

b.对于collection,shard,core运维使用api接口即可,在此不说了。

参考文章:

http://myjeeva.com/solrcloud-cluster-single-collection-deployment.html#deploying-solrcloud

http://wiki.apache.org/solr/SolrCloudTomcat

http://wiki.apache.org/solr/SolrTomcat

http://blog.csdn.net/woshiwanxin102213/article/details/18793271

转载:http://blog.csdn.net/xyls12345/article/details/27504965

转载于:https://blog.51cto.com/zhoufayong/1438527

solr安装-tomcat+solrCloud构建稳健solr集群相关推荐

  1. tomcat classpath两个路径_solr安装-tomcat+solrCloud构建稳健solr集群

    solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建:使用外部web容器tomcat来搭建.对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用t ...

  2. 如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群

    如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群 克隆集群机器 通过虚拟机搭建Hadoop集群,发现使用的VMware workstation 15 player版本没有克隆功能,于是找 ...

  3. K8S(一)VMware Fusion 构建基本k8s集群

    文章目录 背景 准备 网络配置 系统初始化 kubeadm部署k8s集群 harbor私有镜像仓库构建(optional) 功能验证 harbor 私有镜像仓库功能验证 k8s集群功能验证 背景 参考 ...

  4. 创建父需求子需求构建需求树_用pc构建DIY计算集群(超级计算机)

    ----------------------------------------------------------------- 用pc构建DIY计算集群 目录 /构建计算集群 0. |-- /0前 ...

  5. 【转】Apache Http Server与Tomcat实现负载均衡和集群

    Apache Http Server与Tomcat实现负载均衡和集群 一.分布式实现原理 如上图所示,主要通过 Apache-Server 作为中转服务器,实现多个 tomcat 服务器之间的分布式处 ...

  6. 用pc构建DIY计算集群

    ----------------------------------------------------------------- 用pc构建DIY计算集群 目录 /构建计算集群 |-- /0前言 | ...

  7. Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构?

    文章目录 Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构? 配置环境 构建 RedisSharding1 安装 Redis 配置 RedisSharding1 构建 ...

  8. 手动安装K8s第三节:etcd集群部署

    手动安装K8s第三节:etcd集群部署 准备安装包 https://github.com/coreos/etcd 版本:3.2.18 wget https://github.com/coreos/et ...

  9. hadoop安装部署(伪分布及集群)

    hadoop安装部署(伪分布及集群) @(HADOOP)[hadoop] hadoop安装部署伪分布及集群 第一部分伪分布式 一环境准备 二安装hdfs 三安装YARN 第二部分集群安装 一规划 一硬 ...

最新文章

  1. AMD透露Epyc服务器芯片更多细节 多方面挑战英特尔至强平台
  2. 算术平均值滤波matlab程序,基于S7-1200 AD采样的高效数字滤波算法的设计与实践...
  3. python顺序表代码_python实现顺序表的简单代码
  4. CDI和EJB:在事务成功时发送异步邮件
  5. 用几何(解析几何)方法求解概率问题
  6. python和java哪个好找工作-你觉得学python还是java好找工作?
  7. Linux服务器---squid限制
  8. 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
  9. 2018华为网络技术大赛
  10. 小程序二维码海报生成
  11. js遍历(js遍历json对象)
  12. 计算机专业移民,计算机专业成为新晋移民专业了!
  13. C语言扫雷(可展开)
  14. sql server 2008 千万条数据分页查询
  15. JAVA核心编程之集合
  16. thymeleaf中 th:href使用笔记
  17. LoRaWAN 帧计数机制及典型问题分析
  18. Python:实现测试信用卡号码有效性credit card validator的算法(附完整源码)
  19. 【JavaScript】小数点精度问题,小数点后两位toFixed(),把四舍六入五凑偶,修改成四舍五入
  20. autoconf 版本升级

热门文章

  1. c语言随机数生成0 99函数,C语言生成随机数的函数、延时函数
  2. mysql 账户管理_如何用MySQL 命令来实现账户管理
  3. python自己做电子词典_python实现电子词典
  4. js时间戳转换成日期格式
  5. 利用jQuery实现用户名片小动画
  6. 顺序结构,判断结构 if,switch
  7. Linux基础命令---diffstat
  8. 前端Js框架 UI框架汇总 特性 适用范围 选择
  9. ava.lang.UnsatisfiedLinkError:
  10. 活动|跟着微软一起,拥抱开源吧!