`
qindongliang1922
  • 浏览: 2145248 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116259
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124512
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58370
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70306
社区版块
存档分类
最新评论

SolrCloud5.4.1集群实战(一)

    博客分类:
  • Solr
阅读更多

古时候,人们用一头牛拉不动一个耕地的犁时,不会去找个比这头牛更大的牛,而是会直接使用两个牛一起参与耕地。在分布式计算中,道理同样如此,Hadoop就是一个典型的例子。诸如此类的有很多,这就是典型水平切分架构。早期的solr仅仅支持主从架构模式,这种架构可以提高集群的吞吐量和可靠性,当面临越来越多的数据时,并不能提升检索性能,所以在solr4.x之后,开始支持cloud模式的集群,可以将一份超大索引水平切分到多台机器上,从而提升系统的检索性能,当然也兼具了主从模式的优点,支持容错,副本,扩容等。



基础环境如下:

Centos6.5
JDK1.7
Apache Solr5.4.1
Apache Zookeeper3.4.6

下面看下如何安装集群:


假设外置zk集群已经搭建完毕,如果不知道怎么安装:请参考我的这篇文章:http://qindongliang.iteye.com/blog/1985145







(一):集群安装

1,下载solr wget http://archive.apache.org/dist/lucene/solr/5.4.1/solr-5.4.1.tgz
2,分发solr到你所有的台机器上
3,解压 tar -zxvf solr-5.4.1.tgz
4,依次在每台机器上执行命令启动节点:
bin/solr -c -z zk1:2181,zk2:2181:zk3:2181
访问cloud首页,点tree能看到live_nodes:






5, 创建Collection,并指定config初始化,在任何一台机器上执行都可以,如果再zk上的configs下面已经有collection名了,那么下面命令会
自动重用已有的collection配置



   //创建一个名叫big_search的collection,它的shard是3,副本数是2(包括自身也是一个副本)
bin/solr create_collection -c  big_search -d server/solr/configsets/data_driven_schema_configs/conf/ -shards 3 -replicationFactor 2
    //创建一个名叫big_search的collection,它的shard是10,没有副本
cd /ROOT/server/solr-5.4.1/ &&  bin/solr create_collection -c  big_search -d search/info/conf    -shards 10 



6,执行完成之后,访问其中任意一台  http://ip:port/solr/#/~cloud便能看到,拓扑云图:






(二)常用命令

configset api操作:

//查看zk里面的有多少个collection
curl http://localhost:8983/solr/admin/configs?action=LIST&wt=json
//
curl http://localhost:8983/solr/admin/configs?action=DELETE\&name=big_search



指定端口号,启动一个solr的shard:


/ROOT/server/solr-5.4.1/bin/solr start -c -p 7574 -z h1,h2,h3 -s server/solr/
cd /ROOT/server/solr-5.4.1/ &&  bin/solr start -c -m 4g -p 8983 -z h1,h2,h3 -s server/solr/

重新启动:

bin/solr restart -c -p 8983 -z h1,h2,h3 -s server/solr/


6,停止solrcloud集群:



按端口停止
/ROOT/server/solr-5.4.1/bin/solr stop -p 8983
停止所有
/ROOT/server/solr-5.4.1/bin/solr stop -all


一些api:


curl http://localhost:8983/solr/admin/collections?action=list 查看所有的collection


删除不用的collection:

curl  http://localhost:8983/solr/admin/collections?action=DELETE\&name=big_search



solr自带的zk命令操作zk上有关solr的文件目录:


sh server/scripts/cloud-scripts/zkcli.sh
zkcli.sh -zkhost localhost:9983 -cmd bootstrap -solrhome /opt/solr
zkcli.sh -zkhost localhost:9983 -cmd upconfig -confdir /opt/solr/collection1/conf -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd downconfig -confdir /opt/solr/collection1/conf -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd linkconfig -collection collection1 -confname myconf
zkcli.sh -zkhost localhost:9983 -cmd makepath /apache/solr
zkcli.sh -zkhost localhost:9983 -cmd put /solr.conf 'conf data'
zkcli.sh -zkhost localhost:9983 -cmd putfile /solr.xml /User/myuser/solr/solr.xml
zkcli.sh -zkhost localhost:9983 -cmd get /solr.xml
zkcli.sh -zkhost localhost:9983 -cmd getfile /solr.xml solr.xml.file
zkcli.sh -zkhost localhost:9983 -cmd clear /solr
zkcli.sh -zkhost localhost:9983 -cmd list
zkcli.sh -zkhost localhost:9983 -cmd clusterprop -name urlScheme -val https


清空zk上面的某一个config配置:


sh server/scripts/cloud-scripts/zkcli.sh  -zkhost h1  -cmd  clear /configs/big_search


上传本地的conf到zk上:

sh server/scripts/cloud-scripts/zkcli.sh -zkhost h1,h2,h3 -cmd upconfig -confdir /ROOT/server/solr-5.4.1/search/info/conf/ -confname big_search



添加副本:
给shard3在186上面加一个副本


curl   http://localhost:8983/solr/admin/collections?action=ADDREPLICA\&collection=big_search\&shard=shard3\&node=192.168.1.186:8983_solr



删除副本:
删除副本前,到对应的solr目录下,看该core的cat core.properties文件,并拷贝其中的core_name作为该url的最后一个参数,才行

curl http://localhost:8983/solr/admin/collections?action=DELETEREPLICA\&collection=big_search\&shard=shard1\&replica=core_node4




总结几点:

(1)SolrCloud依赖zookeeper,leader的选举通过zk实现,所有的词库和配置文件,都在集中zk上,所有的节点会从
zk上加载词库和scheml。
如果配置文件更新,不需要分发到各个机器上,最多reload下core

(2)Elasticsearch的不依赖zookeeper,master选举通过找到node.master=true的所有节点,然后排序取id值最小的一个升为master,
mapping字段映射关系维护在内存中,不建议经常变动,否则会oom,更改后所有节点生效,但词库文件不在内存中,更改后,必须分发所有节点

(3)事实证明,并不是shard越多越好,一般情况下有几台机器就分配几个shard就可以了,当然如果机器比较牛逼,可以在一个机器上多几个shard也行。

(4)全量索引的的时候,尽量删除副本,提高写入性能,无论elasticsearch,还是solrcloud都是这样的,因为副本会随时同步leader的索引,造成IO和网络IO大量占用。


(5)索引完毕,可以添加副本,这一点es和solrcloud都可以轻松扩展,添加副本的目的,是提高容错,提高吞吐和抗并发能力

(6)如果索引中,有大量的需要分词的字段,比如大文本或者业务需求里面有大量排序操作,在配置机器时,尽量提升机器的CPU,当然磁盘的IO也是越快越好,对写入性能有比较大影响。



参考资料:
https://cwiki.apache.org/confluence/display/solr/SolrCloud


有什么问题 可以扫码关注微信公众号:我是攻城师(woshigcs),在后台留言咨询。
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园




  • 大小: 222.5 KB
  • 大小: 45.6 KB
  • 大小: 29.5 KB
1
1
分享到:
评论

相关推荐

    JMeter5.4.1.zip

    JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip、JMeter5.4.1.zip

    PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64

    PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64 ,Python3.4适用Python3.4适用

    gradle-5.4.1.zip

    grade-5.4.1.zip下载,官网下载慢,有需要的伙伴可以下载

    gradle-5.4.1-all

    有一天急用,发现官网地址下载很慢,网上很多都是需要积分,明明都是公共资源,大家共享就可以了,gradle-5.4.1-all免费下载,下载成功后拷贝到gradle下面即可

    gradle-5.4.1-all.zip 文件下载

    直接放到gradle目录下,不需要解压。...进入.gradle > wrapper > dists > gradle-5.4.1-all目录,将下载的“gradle-5.4.1-all.zip”拷贝到该目录下临时文件夹中。如果存在多个临时文件夹,建议每个文件夹都拷贝一份。

    DebugBar V5.4.1

    DebugBar V5.4.1 DebugBar V5.4.1

    wordpress-5.4.1.zip

    wordpress-5.4.1.zip

    QT5.4.1(官网)

    从官网下载的开源版qt,在其他地方下载不到的同学可以在这里下哦!

    gradle-5.4.1-all.zip 离线包下载

    Android Studio gradle-5.4.1-all.zip 离线包下载 ;方便下载 Android Studio gradle-5.4.1-all.zip 离线包下载 ;方便下载 Android Studio gradle-5.4.1-all.zip 离线包下载 ;方便下载

    Android studio gradle5.4.1,gradle6.1.1,gradle4.4

    Android studio gradle自己下载,解决studio下载过慢的问题,下载后里面有6.1.1,5.4.1,4.4三个版本的,看自己需要选择哪个。不需要解压,直接放到对应版本最后一个文件夹内

    gradle-5.4.1-all.zip

    gradle-5.4.1-all官方的连接下载奇慢,现在将这个分享出来 ,希望可以节省各位的时间,希望可以节省各位的时间

    gradle5.4.1.zip

    安卓打包必备 5.4.1gradle

    gradle-5.4.1-all资源与使用方法.7z

    使用方法: (记得先解压出gradle-5.4.1-all.zip) 1、用记事本,修改项目目录\gradle\wrapper下的,gradle-wrapper.properties文件。将其中的distributionUrl后面的链接改为...

    elasticsearch-5.4.1

    elasticsearch-5.4.1,官网下载太慢,所以上传

    elasticsearch5.4.1

    elastic5.4.1.tar.gz

    gradle-5.4.1-all官方资源.zip

    android studio相关包,gradle-5.4.1-all官方发资源包,极速下载通道,,,,,

    Gradle-5.4.1.zip

    Gradle-5.4.1-All,有需要的可以下载。本人亲测有效。解决Android studio 无法下载最新版gradle-5.4.1 版本问题

    apache-jmeter-5.4.1.zip

    Apache下压测工具,博主博客附有使用教程,希望有所帮助

    CMailServer 5.4.1注册器

    一,请先安装原版程序,点击“安装原版”进行安装,程序回自动检测您的电脑有没安装原版,如果没安装原版是无法运行注册机的,本程序集成原版安装程序,您也可以到互联网下载其他的安装包进行安装。 二,点击“开始...

    swiper-5.4.1.zip

    Swiper 的每个展示块(屏)为一个slide,slide中放置图片或文字等展示的内容,全部slide排成一行(或多行)包含在包装器wrapper中,而总容器container 又包裹着wrapper和箭头按钮控件navigation以及分页器控件...

Global site tag (gtag.js) - Google Analytics