solr安装-tomcat+solrCloud构建稳健solr集群
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集群相关推荐
- tomcat classpath两个路径_solr安装-tomcat+solrCloud构建稳健solr集群
solrCloud的搭建可以有两种方式:使用solr内嵌的jetty来搭建:使用外部web容器tomcat来搭建.对于使用jett来搭建参考solr官方的手册照着做肯定ok,下面我主要讲的是如何使用t ...
- 如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群
如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群 克隆集群机器 通过虚拟机搭建Hadoop集群,发现使用的VMware workstation 15 player版本没有克隆功能,于是找 ...
- K8S(一)VMware Fusion 构建基本k8s集群
文章目录 背景 准备 网络配置 系统初始化 kubeadm部署k8s集群 harbor私有镜像仓库构建(optional) 功能验证 harbor 私有镜像仓库功能验证 k8s集群功能验证 背景 参考 ...
- 创建父需求子需求构建需求树_用pc构建DIY计算集群(超级计算机)
----------------------------------------------------------------- 用pc构建DIY计算集群 目录 /构建计算集群 0. |-- /0前 ...
- 【转】Apache Http Server与Tomcat实现负载均衡和集群
Apache Http Server与Tomcat实现负载均衡和集群 一.分布式实现原理 如上图所示,主要通过 Apache-Server 作为中转服务器,实现多个 tomcat 服务器之间的分布式处 ...
- 用pc构建DIY计算集群
----------------------------------------------------------------- 用pc构建DIY计算集群 目录 /构建计算集群 |-- /0前言 | ...
- Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构?
文章目录 Redis 如何使用 Twemproxy 和 Sentinel 构建高可用集群架构? 配置环境 构建 RedisSharding1 安装 Redis 配置 RedisSharding1 构建 ...
- 手动安装K8s第三节:etcd集群部署
手动安装K8s第三节:etcd集群部署 准备安装包 https://github.com/coreos/etcd 版本:3.2.18 wget https://github.com/coreos/et ...
- hadoop安装部署(伪分布及集群)
hadoop安装部署(伪分布及集群) @(HADOOP)[hadoop] hadoop安装部署伪分布及集群 第一部分伪分布式 一环境准备 二安装hdfs 三安装YARN 第二部分集群安装 一规划 一硬 ...
最新文章
- AMD透露Epyc服务器芯片更多细节 多方面挑战英特尔至强平台
- 算术平均值滤波matlab程序,基于S7-1200 AD采样的高效数字滤波算法的设计与实践...
- python顺序表代码_python实现顺序表的简单代码
- CDI和EJB:在事务成功时发送异步邮件
- 用几何(解析几何)方法求解概率问题
- python和java哪个好找工作-你觉得学python还是java好找工作?
- Linux服务器---squid限制
- 基于WCF的RESTFul WebAPI如何对传输内容实现压缩
- 2018华为网络技术大赛
- 小程序二维码海报生成
- js遍历(js遍历json对象)
- 计算机专业移民,计算机专业成为新晋移民专业了!
- C语言扫雷(可展开)
- sql server 2008 千万条数据分页查询
- JAVA核心编程之集合
- thymeleaf中 th:href使用笔记
- LoRaWAN 帧计数机制及典型问题分析
- Python:实现测试信用卡号码有效性credit card validator的算法(附完整源码)
- 【JavaScript】小数点精度问题,小数点后两位toFixed(),把四舍六入五凑偶,修改成四舍五入
- autoconf 版本升级