`
lies_joker
  • 浏览: 40972 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
    公司的solr线上服务器,分成差不多10个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上编辑再上传!!!这是很小的事情,但是很容易造成不明所以的bug.血的教训,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的配置文件。这里说下理解性的东西,一旦理解就一切好说。zookeeper上的文件系统类似HDFS。./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的详细方法,而是搭建和使用过程中可能出现的问题以及万万要注意的地方。

BUG修补区:
1,java.lang.UnsupportedOperationException
   解决方案是,检查scheam.xml下的_version字段是不是没有设置成long类型,新版的solr的_version不使用string类型,如果继续使用,会报这类错误!

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

相关推荐

    solrcloud5结合zookeeper应用视频教程

    solrcloud5结合zookeeper搭建、使用详解,是一部难得的好教程

    solrcloud-zookeeper-docker:在Docker环境中运行Solrcloud和Zookeeper

    如果要尝试使用1个SolrCloud容器和1个Zookeeper容器进行轻量级配置,只需运行: git clone https://github.com/freedev/solrcloud-zookeeper-docker.git cd solrcloud-zookeeper-docker ./start.sh 该脚本将输出已...

    solrcloud windows 环境搭建

    在Windows环境下搭建SolrCloud环境涉及多个步骤,包括Zookeeper集群的配置、Solr的部署和配置等。通过上述详细介绍,读者应能够理解SolrCloud的工作原理及其实现过程,从而在实际项目中有效利用其强大的分布式搜索...

    SolrCloud集群搭建和使用步骤

    - **集中式配置**:SolrCloud利用ZooKeeper存储和同步集群的配置,确保所有节点使用相同的信息。 - **自动容错**:当某个Solr节点故障时,其上的数据和任务可以被其他节点接管,保证服务的连续性。 - **近实时...

    solrcloud-zookeeper-kubernetes:在Kubernetes环境中运行Solrcloud和Zookeeper

    该项目旨在帮助在Kubernetes环境中尝试使用最新版本的SolrCloud(和Zookeeper)的开发人员和新手。 在这里,您将发现基本上两种不同的配置: 一个(或多个)Solr实例和一个Zookeeper配置为“独立”节点 一个(或多...

    solrcloud与zookeeper

    ### SolrCloud与Zookeeper深度解析 #### 一、Zookeeper概述 Zookeeper是一个高性能、分布式的、开源的分布式应用...通过Zookeeper,SolrCloud能够实现高可用性和可扩展性,有效解决了大规模数据管理和检索的需求。

    Zookeeper搭建和原理学习

    Zookeeper 搭建和原理学习 Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现。它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理...

    dubbo-zookeeper搭建

    本教程将详细讲解如何搭建一个基于Dubbo和Zookeeper的环境,以实现微服务架构中的服务治理。 首先,我们要理解Dubbo的核心概念。Dubbo是由阿里巴巴开发的一款高性能、轻量级的Java RPC框架,它提供了服务发现、服务...

    solrCloud5.2.1 + tomcat7 + zookeeper3.4.6

    在Windows 7环境下搭建SolrCloud5.2.1、Tomcat7和Zookeeper3.4.6的集成环境是进行分布式搜索和索引管理的重要步骤。下面将详细介绍整个配置过程。 1. **软件环境配置** - **操作系统**: Windows 7 - **Tomcat**: ...

    SolrCloud4.9.0+tomcat7+zookeeper-3.4.6搭建教程

    本文将指导读者在Windows操作系统下搭建SolrCloud单机伪集群环境,使用Tomcat作为Servlet容器,Zookeeper作为分布式应用程序协调服务。 SolrCloud的安装和配置 1. 首先,需要下载SolrCloud、Tomcat和Zookeeper的...

    SolrCloud5.2.1+tomcat7+zookeeper3.4.6搭建教程.docx

    本教程主要介绍如何在Windows 7环境下搭建SolrCloud 5.2.1,使用Tomcat 7作为应用服务器,以及Zookeeper 3.4.6作为集群协调器。 首先,我们需要准备以下软件: 1. Apache Tomcat 7.0.56:这是一个开源的Servlet...

    zookeeper搭建集群

    实现zookeeper搭建单机集群,分机器搭建也可以。只要更改这个配置文件就可以了 start(){ sh /Users/mac/linuxsoft/zk-cluster/zookeeper-3.4.6/bin/zkServer.sh start /Users/mac/linuxsoft/zk-cluster/zookeeper...

    solrcloud 高可用集群搭建

    SolrCloud高可用集群搭建是实现大规模、分布式搜索引擎的关键步骤,它通过集成Zookeeper来管理和协调各个Solr节点,确保数据的一致性和可用性。在搭建过程中,我们需要遵循一定的步骤和配置,以下是一些关键的知识点...

    dubbo+zookeeper集成搭建

    Dubbo 和 ZooKeeper 是两个广泛使用的开源项目,它们分别解决了不同层面的问题。Dubbo 是一款高性能、轻量级的 Java RPC 框架,而 ZooKeeper 是一个分布式的、开放源码的协同服务管理系统,常用于实现服务发现、配置...

    Apache ZooKeeper分布式环境搭建教程

    zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; ...

    zookeeper linux集群搭建流程

    ZooKeeper 是一个广泛使用的分布式协调服务,主要用于管理和协调分布式系统中的各个节点。Linux 集群搭建是 ZooKeeper 的一种常见应用场景,本文将详细介绍 ZooKeeper Linux 集群搭建流程。 准备前提 在开始搭建 ...

    Kafka和Zookeeper集群搭建

    在这个主题中,我们将深入探讨如何搭建Kafka和Zookeeper集群,以及这两个组件在实际应用中的作用。 首先,让我们了解一下Zookeeper。Zookeeper是Apache Hadoop项目的一个子项目,它为分布式应用程序提供一致性服务...

    Zookeeper环境搭建

    ### Zookeeper环境搭建与应用场景详解 #### 一、Zookeeper简介及重要性 **Zookeeper**作为Hadoop生态系统中的一个重要组成部分,主要负责管理和协调分布式应用程序中的各种组件和服务。它的核心功能在于提供一种...

Global site tag (gtag.js) - Google Analytics