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接口即可,在此不说了。
ok,大功告成
!抽时间自己也写个类似solrCloud的东西玩玩!
参考文章:
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
solr安装-tomcat+solrCloud构建稳健solr集群的更多相关文章
- Solr安装(Tomcat)
Solr安装(Tomcat) 安装环境 Windows 7 64bit Apache-tomcat-8.0.9-windows-x64 Solr-4.9.0 JDK 1.8.0_05 64bit ...
- solrCloud 4.9 分布式集群部署及注意事项
环境搭建 一.zookeeper 参考:http://blog.chinaunix.net/uid-25135004-id-4214399.html 现有4台机器 10.14.2.201 10.14. ...
- tomcat源码阅读之集群
一. 配置: 在tomcat目录下的conf/Server.xml配置文件中增加如下配置: <!-- Cluster(集群,族) 节点,如果你要配置tomcat集群,则需要使用此节点. clas ...
- 阿里云构建Kafka单机集群环境
简介 在一台ECS阿里云服务器上构建Kafa单个集群环境需要如下的几个步骤: 服务器环境 JDK的安装 ZooKeeper的安装 Kafka的安装 1. 服务器环境 CPU: 1核 内存: 2048 ...
- 用pc构建DIY计算集群
-----------------------------------------------------------------用pc构建DIY计算集群目录/构建计算集群|-- /0前言|-- /1 ...
- Tomcat+nginx+Keepalived部署实现集群
Tomcat+nginx+Keepalived部署实现集群 环境说明: 系统:Centos-7 主机:Centos-7 x3 IP地址: 服务器1(192.168.10.102/24) 服务器2(19 ...
- Keepalived+Nginx+Tomcat 实现高可用Web集群
https://www.jianshu.com/p/bc34f9101c5e Keepalived+Nginx+Tomcat 实现高可用Web集群 0.3912018.01.08 20:28:59字数 ...
- linux安装redis-6.0.1单机和集群
redis作为一个直接操作内存的key-value存储系统,也是一个支持数据持久化的Nosql数据库,具有非常快速的读写速度,可用于数据缓存.消息队列等. 一.单机版安装 1.下载redis 进入re ...
- Linux企业集群用商用硬件和免费软件构建高可用集群PDF
Linux企业集群:用商用硬件和免费软件构建高可用集群 目录: 译者序致谢前言绪论第一部分 集群资源 第1章 启动服务 第2章 处理数据包 第3章 编译内容 第二部分 高可用性 第4章 使用rsync ...
随机推荐
- ci框架——文章查看之上篇下篇
1:从数据库查询出推荐的文章的信息,循环查出每篇推荐文章的id和title; foreach($data as $val){ $dataid[]=$val->aid; $datatitle[]= ...
- 初涉Git/Github
初涉Git/Github 第一部分:我的本次作业成果 我自己个人的github地址是:STRSong 我们开发团队小组的github地址是:三组 第二部分:给同学推荐github资源 推荐1 这个推荐 ...
- IntelliJ IDEA设置properties文件显示中文
配置这里: 注意:上面是Default Settings,还需要在Settings中设置成上面一样的.
- 前端模板Nunjucks简介
参考资料: https://mozilla.github.io/nunjucks/ https://mozilla.github.io/nunjucks/templating.html https:/ ...
- Javascript构造函数和原型
相信你已经知道了,Javascript函数也可以作为对象构造器.比如,为了模拟面向对象编程中的Class,可以用如下的代码 function Person(name){ this.name = nam ...
- 使用uilabel重新自调整高度后显示横线和竖线问题
这个使用uilabel自调节高度发现的问题,代码如下: //content label NSString *contentValue = ((Messag ...
- 数据库系统学习(十)-嵌入式SQL语言之动态SQL
第十讲 嵌入式SQL语言之动态SQL 静态SQL 区别变量和属性:高级语言向嵌入式SQL传递变量的方法 动态SQL 动态构造SQL语句是应用程序员必须掌握的重要手段 SQL语句的动态构造示例 根据界面 ...
- qt动画入门
Qt-4.6新增了Animation Framework(动画框架),让我们可以方便的写一些生动的程序. 不必像曾经的版本号一样,全部的控件都枯燥的呆在伟大光荣的QLayout里,或许它们可以唱个歌, ...
- C++对象模型——Default Constructor的建构操作(第二章)
第2章 构造函数语意学 (The Semantics of Constructor) 关于C++,最常听到的一个抱怨就是,编译器背着程序猿做了太多事情.Conversion运算符就是最常被引用的 ...
- MySQL中insert ignore into, on duplicate key update,replace into,insert … select … where not exist的一些用法总结
在MySQL中进行条件插入数据时,可能会用到以下语句,现小结一下.我们先建一个简单的表来作为测试: CREATE TABLE `books` ( `id` ) NOT NULL AUTO_INCREM ...