solrcloud和zookeeper的搭建、使用、心得、教训

公司的solr线上服务器,分成差不多是个core给不同的部门不同的业务需求来使用。我接手以来,问题多多,烦扰多多。有不少问题亟待解决,首当其冲的是搜索准确度、数据同步。搜索准确度已经通过改用ansj分词器和不断优化的个人词库和停用词库来解决,这是个不断优化的过程,需要长时间的跟进才有明显效果。第二个数据同步问题,其实包括了快捷新建搜索core、搜索性能负载、数据同步和宕机恢复等。以前是各种分散的处理方案。数据同步我自己写了个rest的webservice接口来分别实现,宕机恢复甚至只能手工处理,性能负载是IT运维部门来解决。现在大部分弃用,直接上solrcloud!

花了差不多一周的时间,搞定了solrcloud。其实搭建起来一两个小时就OK了,时间都花在理解原理和进阶使用上,各种问题,头疼,这周也加了不少班,真心很艰辛!有时候想想真心是no zuo no die,其实旧有的方案完全是可以用的,而且是自己辛苦写成的,现在要推翻重来,而且要深入理解,随便一个问题都能焦头烂额,我好歹也是搞过nutch、hadoop的人,现在在solrcloud上头疼的程度却是前所未有。solrcloud+zookeeper网上资料可谓多多,可惜一万篇都可以合成一篇,基本上都是写如何搭建,然后就没了,各种抄袭,各种点到为止。这也是中文开源界的一个不好的现象,大家都反复分享已经有的技术,有难度的技术,大家又不愿意分享。结果找资料,百度上翻了几十页,内容都大差不差。这次研究过程中,很头疼的事情有两个,一个是谷歌上不了,一个是WIKI文档多数是英文的,很少有翻译的,在此要感谢一些把solrcloud的wiki翻译过来的兄弟。啰啰嗦嗦说了好多,其实最终还是想劝告做开发的,多做些原创的东西,多看文档,多理解原理而不是人云亦云。好了,下来写写我开发过程中的心得和教训吧!

1,zookeeper单机分布式均可,网上资料多多,这个也比hadoop搭建容易,以后有兴趣准备写个脚本,一键安装zookeeper服务。

2,solr安装。注意在linux上安装时候,solr.xml不要在window上编辑再上传!!!血的教训,zookeeper同步数据会重写solr.xml,因为window和linux各种不同的东东,会让在linux上无法重写!slor服务重启后无法装载solr的core,一直处于Down的状态。如果你的solrcloud里某个solr物理节点状态是down,请vi solr.xml,看里面是否是很多~M(经常用linux的人懂的)。另外建议把solr.xml里的注意全部去掉!不需要在solr.xml里创建core,我们有强大的zookeeper,`(*∩_∩*)′

3,上传core的配置文件。这里说下理解性的东西,一旦理解就一切好说。 
./zkCli.sh -server localhost:2181 
可以查看zookeeper分布式上的文件结构,所有的core配置文件在confs里,所有的core(cloud里用的是collection这个概念)在collections里。上传配置文件命令如下: 
java -classpath .:/usr/local/tomcat7/webapps/solr/WEB-INF/lib/* org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost hadoop34:2181,hadoop36:2181 -confdir  /usr/local/soft/solr-space/alpha_wenuser/conf -confname alpha_wenuser 
这里把alpha_wenuser集合(core)的配置文件上传到两台分布式机器下。如果你的配置里有dataimport相关的,在这里或者以后创建core(集合)时候会报错,需要把dataimport相关的jar放在tomcat下的solr的lib里,而不是之前单机solr那样放在solr_home的dist下。

4,创建集合。一旦配置文件OK了,你可以随心所欲的创建集合了,不需要本机蛋疼的操作,一条命令就够了。命令如下 
curl ‘http://hadoop36/solr/admin/collections?action=CREATE&name=alpha_wenuser&numShards=1&replicationFactor=1&collection.configName=alpha_wenuser‘ 
具体含义,百度一下,大家都知道的,就不罗嗦了。

5,宕机测试。上面OK了solrcloud就OK了。什么,你说怎么会这么简单,好吧,就是这么简单。难的是此起彼伏的bug。如果你认真看我上面的操作,基本上所有的bug都可以避免了。现在随便关掉一台solr机器,测试下leader是否切换成功,再重启solr机器,看这solr节点是down还是Active,如果是down,好吧兄弟,去查看solr.xml吧,必然有我刚才说的问题,解决方法就是删掉,直接换成example里的solr.xml吧。然后删掉集合,命令如下 
curl‘http://hadoop36/solr/admin/collections?action=DELETE&name=alpha_wenuser‘ 
再重复步奏4,步奏5。

上面说的很乱,其实本文不是告诉你搭建solrcloud的详细方法,而是搭建和使用过程中可能出现的问题以及万万要注意的地方。

参考资料: 
http://shiyanjun.cn/archives/100.html 
这个步奏很靠谱,信得过,当然也要自己理解了先,他也漏了一些东西 
http://blog.csdn.net/natureice/article/details/9109351 
这个同上,也很值得参考 
http://www.cnblogs.com/guozk/p/3498844.html 
这个有各种操作命令,蛮详细的 
感谢这几位分享的经验,互联网真好!

solrcloud和zookeeper的搭建、使用、心得、教训

时间: 2024-10-10 16:33:15

solrcloud和zookeeper的搭建、使用、心得、教训的相关文章

Linux环境下SolrCloud集群环境搭建关键步骤

Linux环境下SolrCloud集群环境搭建关键步骤. 前提条件:已经完成ZooKeeper集群环境搭建. 一.下载介质 官网下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/7.3.1 历史版本下载:http://archive.apache.org/dist/lucene/solr/ 二.上传介质 通过工具将下载好的安装介质上传至服务器目录. 三.解压安装 解压即可完成安装. unzip solr-5.5.5.zip 四.修改配置文

Zookeeper 环境搭建

Zookeeper 环境搭建 1.上传文件并解压 2.修改环境变量 更新配置文件 3.修改 zk 的配置文件 vim /usr/local/zookeeper/conf/zoo.cfg 主要修改数据文件的地址 4.设置 Path 否则不能直接使用命令 5.启动 zk zkServer.sh start //启动zk zkServer.sh status //查看状态 6.客户端连接 zkCli.sh //连接 客户端启动程序来建立一个会话 客户端尝试连接到 localhost/127.0.0.1

ZooKeeper环境搭建(单机/集群)(转)

前提: 配置文件主要是在$ZOOKEEPER_HOME/conf/zoo.cfg,刚解压时为zoo_sample.cfg,重命名zoo.cfg即可. 配置文件常用项参考:http://www.cnblogs.com/EasonJim/p/7483880.html 环境搭建: 一.ZooKeeper的搭建方式 ZooKeeper安装方式有三种,单机模式和集群模式以及伪集群模式. 单机模式:ZooKeeper只运行在一台服务器上,适合测试环境: 伪集群模式:就是在一台物理机上运行多个ZooKeepe

solrCloud+tomcat+zookeeper集群配置

http://www.tuicool.com/articles/NNjAFr 概述: SolrCloud 是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心. 它有几个特色功能: 1)集中式的配置信息 2)自动容错 3)近实时搜索 4)查询时自动负载均衡 安装zookeeper 上面也说了 SolrCloud 是基于Solr和Zookeeper的分布式搜索方案,所有要部署solrCloud+tomcat+zookeeper的集群,必须先

hadoop2.6.2+hbase+zookeeper环境搭建

1.hadoop环境搭建,版本:2.6.2,参考:http://www.cnblogs.com/bookwed/p/5251393.html 启动服务:在master机器上,进入hadoop安装目录,执行命令:./sbin/start-all.sh 查看是否启动成功:jps 2.zookeeper环境搭建,版本:3.4.6,参考:http://www.cnblogs.com/bookwed/p/4599829.html 启动服务:分别在三台机器上,进入zookeeper安装目录,执行命令:./b

修改SolrCloud在ZooKeeper中的配置文件操作记录

修改SolrCloud在ZooKeeper中的配置文件操作记录. 命令执行目录: /opt/solr-5.5.4/server/scripts/cloud-scripts/ 1.下载配置文件 ./zkcli.sh -zkhost 172.16.xxx.xx:2181,172.16.xxx.xx:2181,172.16.xxx.xx:2181 -cmd getfile /configs/myconf/managed-schema /home/application/managed-schema .

Mysql + canal + zookeeper环境搭建

Mysql + canal + zookeeper环境搭建 一.mysql集群搭建 1. mysql基本环境 操作系统: Linux version 2.6.32-431.el6.x86_64 数据库:MySQL Community Server 5.7.20 主节点IP:10.60.81.157 主节点IP:10.60.81.158 从节点IP:10.60.81.159 2. 安装mysql 2.1.官网下载MySQL mysql-5.7.20-1.el6.x86_64.rpm-bundle.

Zookeeper环境搭建

Zookeeper环境搭建 下载 从镜像站中下载最近版本 http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 从文档站中下载所有的历史版本 https://archive.apache.org/dist/zookeeper/ apache-zookeeper-3.5.5-bin.tar.gz 2019-05-20 18:40 10M zookeeper-3.4.6.tar.gz 2016-01-10 17:11 17M 参考文档 https

11.SolrCloud集群环境搭建

转载请出自出处:http://www.cnblogs.com/hd3013779515/ 我们基于Solr4.10.3版本进行安装配置SolrCloud集群,通过实践来实现索引数据的分布存储和检索. 一.准备工作 1.服务器 solrcloud01 192.168.137.171 solrcloud02 192.168.137.172 solrcloud03 192.168.137.173 2.资源文件 上传到/home/test apache-solr-dataimportscheduler.