搭建Solr集群的推荐方案
之前介绍过2篇SolrCloud的部署流程,第一个是使用安装脚本的方式进行抽取安装,启动比较方便,但是会创建多个目录,感觉比较乱;第二个是官方教程上提供的方法,使用比较简单,直接释放压缩包即可,并且启动cloud实例的时候默认会创建一个示例collection;实际上官方文档在solr启动脚本配置文件solr.in.sh介绍时,也提供了一种思路,就是我们使用第一种方法中的配置参数,综合第二种方法的释放简单的优点,这里总结了一个比较灵活简单solr生产部署方式,在生产中配置也较为清晰,也是不断实践的结果,希望能对大家有所帮助
首先还是保证zookeeper服务的配置运行无误,这里集群用了6台CentOS 7.1的服务器,分别是:linux1、linux2、linux3、linux4、linux5、linux6
然后和之前一样,还是下载安装包solr-5.3.1.tgz,我们预定的solr安装位置是:/usr/solr/solr-5.3.1,接下来在linux1上执行释放:
mkdir /usr/solr tar -xvzf solr-5.3.1.tgz mv solr-5.3.1 /usr/solr
现在solr释放完毕,然后执行 cd /usr/solr/solr-5.3.1 进入solr目录下,然后执行 vim bin/solr.in.sh ,和之前一样去掉SOLR_JAVA_MEM前面的#,设置为3G,不要太小,保证solr JVM和GC的运行
然后最重要的一步就是设置ZK_HOST,设置为:ZK_HOST="linux1:2181,linux2:2181,linux3:2181,linux4:2181,linux5:2181,linux6:2181/solr"
实际生产中,solr文件最好放在zookeeper下的一个子节点中,便于管理,之前都是直接堆在根目录下,实际运行没有影响,之前的在配置中也可以灵活设置,/solr节点待会会详细说明如何创建
之前还配置了一个SOLR_HOST,这个默认是本地和配置本地主机名效果一样,这里就不配置这一项了,以上2项足够了,配置好之后,保存并退出
现在不要着急去启动solr,如果启动的话肯定是会出错了,因为我们zookeeper上的节点/solr还没有创建,之前我们讨论过zookeeper服务的管理操作,创建个节点也是很简单的,我们zookeeper的安装位置是:/usr/zookeeper/zookeeper-3.4.6,执行下面命令登录zookeeper服务:
/usr/zookeeper/zookeeper-3.4.6/bin/zkCli.sh -server localhost:2181
然后就和之前所说一样进入了管理的界面
我们执行 ls / 查看根目录下的节点列表,发现只有zookeeper节点,接下来我们执行 create /solr null 建立solr节点,字符串设置为null即可,当然自己可以定义,现在通过 ls / 就可以查看到solr节点了
现在执行 quit 退出zookeeper
现在在linux1上solr就配置完毕了,现在我们依次执行下面命令或者写成脚本将配置好的solr目录发送到其他5台服务器:
scp -r /usr/solr linux2:/usr/ scp -r /usr/solr linux3:/usr/ scp -r /usr/solr linux4:/usr/ scp -r /usr/solr linux5:/usr/ scp -r /usr/solr linux6:/usr/
发送完毕以后,在6台服务器的solr安装目录下,也就是/usr/solr/solr-5.3.1下分别执行solr启动命令:
bin/solr start
启动时,solr会读取配置文件从而使用zookeeper服务进行协调,全部执行完毕,solrcloud就运行起来了,现在是一个纯净的集群,没有任何配置和数据,接下来我们在其中一台服务器上执行下面命令上传配置文件,方法和之前一样:
./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181/solr -cmd upconfig -confdir server/solr/configsets/sample_techproducts_configs/conf -confname my_config
有一点需要注意,那就是-zkhost指定zookeeper服务器时需要加上/solr节点,执行完毕就上传好了配置文件,接下来通过curl或者直接访问浏览器来创建collection:
curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=my_collection&numShards=6&replicationFactor=1&collection.configName=my_config"
如果使用浏览器需要将localhost换成ip地址才可以;稍等一下命令执行完毕,6个shard的collection就创建成功了
另外,通过solr管理首页可以查看JVM的资源占用和各种配置的对应项,方便去分析
以上就是我个人推荐的solr集群搭建方案,过程比较简单,到这里就ok了
相关文章
- RabbitMQ集群搭建
- 搭建hbase1.2.5完全分布式集群
- docker探索-swarm搭建docker集群(七)
- Spark集群搭建
- 我们为什么会删除不了集群的 Namespace?
- spring cloud:搭建基于consul的服务提供者集群(spring cloud hoxton sr8 / spring boot 2.3.4)
- CentOS完美搭建Redis3.0集群并附测试
- 大数据基础之集群搭建
- Spark修炼之道(进阶篇)——Spark入门到精通:第一节 Spark 1.5.0集群搭建
- Spark-1.4.0集群搭建
- Redis集群管理实战
- centos8安装fastdfs6.06集群方式三之:storage的安装/配置/运行
- docker搭建Hadoop 3节点及N节点集群完整教程
- 【工具推荐】Hadoop集群监控工具 HTools
- 如何基于Jupyter notebook搭建Spark集群开发环境
- 【K8S】Kubernetes中暴露外部IP地址来访问集群中的应用
- 008-Centos 7.x安装 Ambari 2.2.2 + HDP 2.4.2 搭建Hadoop集群
- 【云原生之存储实战】部署Ceph分布式存储集群
- 正在运行的Kubernetes集群想要调整Pod的网段地址
- elasticsearch 冷热分离集群搭建——筑梦之路
- k8s 搭建etcd集群(业务调用非k8s集群)—— 筑梦之路
- redis 4.0 一主多从 哨兵集群搭建
- zookeeper+kafka集群安装之中的一个
- redis集群搭建 不用ruby
- 微服务Consul系列之集群搭建
- 【TDengine】详解TDengine集群部署
- hadoop入门(六):集群测试
- CentOS6安装大数据软件(八):Spark集群安装和部署
- 【云原生 | Kubernetes 系列】----使用Prometheus监控K8s集群
- C++搭建集群聊天室(九):数据库代码及用户模型代码封装
- C++搭建集群聊天室(五):JSON序列化与反序列化
- K8S集群中Pod资源处于ImagePullBackOff状态排查思路
- ELasticsearch集群核心概念以及集群搭建(二)
- MongoDB副本集集群原理以及维护配置
- Redis哨兵集群主库故障数据恢复(九)