- 浏览: 2183978 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
古时候,人们用一头牛拉不动一个耕地的犁时,不会去找个比这头牛更大的牛,而是会直接使用两个牛一起参与耕地。在分布式计算中,道理同样如此,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),在后台留言咨询。
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园
发表评论
-
最新版Solr6.2.1安装记录
2016-09-23 18:48 2021下载最新版Solr6.2.1 wget http:/ ... -
ElasticSearch+Solr几个案例笔记
2016-09-22 18:46 1946(一) 最大能索引字符 ... -
SolrCloud之Sharding路由介绍
2016-07-19 16:07 3442在Solr4.4之后,Solr提供了SolrCloud ... -
SolrCloud6.1.0之SQL查询测试
2016-07-12 11:21 2384Solr发展飞快,现在最 ... -
Lucene/Solr/ElasticSearch搜索问题案例分析
2016-06-23 18:08 1850最近收集的两个搜索 ... -
Lucene+Solr+ElasticSearch查询匹配优化
2016-06-01 19:37 2933当我们在处理搜索业务时候,需求往往是灵活多变的,有时候我们需 ... -
如何通过JMX远程监控Solr?
2016-05-23 16:07 2025有时候,我们在服务 ... -
如何实现Solr自定义评分查询
2016-05-12 17:49 4860(一)背景介绍 大多数时候我们使用lucene/solr ... -
浅谈Lucene中的DocValues
2016-05-10 19:12 7578前言: 在Lucene4.x之后, ... -
开源大数据索引项目hive-solr
2016-05-06 16:15 1969github地址:https://github.com/qi ... -
浅谈Solr和ElasticSearch建索引性能优化策略
2016-04-27 18:48 2208由于Solr和ElasticSearch ... -
如何使用Hive集成Solr?
2016-03-17 15:05 2846(一)Hive+Solr简介 Hive ... -
Solr中如何使用游标进行深度分页查询
2016-03-10 16:34 3808通常,我们的应用系统 ... -
Hbase+Solr实现二级索引提供高效查询
2016-02-18 18:28 7087接着上一篇介绍协处理 ... -
如何使用Spark大规模并行构建索引
2016-02-01 12:54 2715使用Spark构建索引非常简单,因为spark提供了更高级的 ... -
如何在Solr中实现多core查询?
2015-12-07 20:55 4098基于solr或者elasticsearch提供的多核,多索引 ... -
Solr配置maxBooleanClauses属性不生效原因分析
2015-12-02 14:12 2482上次已经写过一篇关于 ... -
Solr如何避免查询条件过多异常
2015-11-17 16:07 2876今天,需要查询一个东西,在q里面大概有900左右参数,使用so ... -
Solr中Group和Facet的用法
2015-10-14 19:40 4614先来看一下Group与Facet的 ... -
Solr字段ExternalFileField使用
2015-09-15 16:43 2157ExternalFileField是一种非 ...
相关推荐
总的来说,Gradle 5.4.1是一个重要的版本,它在性能、功能和易用性上都有所提升,旨在提高开发者的生产力和项目的稳定性。如果你在官网下载速度较慢,可以从提供的gradle-5.4.1.zip文件中解压获取,确保你的项目能够...
在分布式搜索方面,SolrCloud是Solr的分布式部署模式,它基于Zookeeper实现集群管理和数据分布。SolrCloud支持自动的Sharding和Replication,可以将数据分散到多个节点上,实现负载均衡和高可用性。在Solr 5.4.1中,...
总之,Gradle 5.4.1是一个功能强大的构建工具,能够有效地管理项目依赖,提高构建效率。对于Android开发者来说,掌握Gradle的使用至关重要,尤其是在面对版本下载问题时,了解如何手动配置Gradle路径是解决问题的...
在给定的资源"gradle-5.4.1-all.zip"中,我们包含了Gradle 5.4.1的完整版本,这是一个针对开发者的便捷下载,旨在解决官方下载速度慢的问题。 Gradle 5.4.1是Gradle项目的一个稳定版本,发布于2019年。这个版本包含...
Gradle 5.4.1是其发展过程中的一个重要版本,尤其对于开发者来说,它带来了一些关键性的改进和新特性。 首先,让我们关注这个版本在JDK12上的运行能力。JDK12是Java开发工具包的一个重要更新,引入了若干新特性,如...
这个"PyQt5-5.4.1-gpl-Py3.4-Qt5.4.1-x64"是PyQt5的一个特定版本,针对Python 3.4和64位操作系统。下面我们将深入探讨PyQt5、其版本号以及如何使用它来开发应用。 首先,PyQt5是英国Riverbank Computing公司开发的...
5.4.1 版本是 Gradle 的一个重要版本,为开发者提供了许多改进和新特性。在这个版本中,Gradle 提供了更好的性能、稳定性和对新平台的支持。 1. **性能优化**:Gradle 5.4.1 专注于提高构建速度,引入了更智能的...
《SpringBoot 3.2.3 集成 ShardingSphere 5.4.1 及动态数据源实战解析》 在现代企业级应用开发中,数据分片和多数据源管理是提升系统性能和扩展性的关键技术。本文将详细探讨如何在SpringBoot 3.2.3环境下集成...
**Elasticsearch 5.4.1:一个强大的搜索引擎** Elasticsearch,作为一个开源的、分布式、全文搜索引擎,被广泛应用于大数据分析、日志聚合、实时搜索和许多其他数据密集型应用中。5.4.1是其历史版本之一,具有重要...
v5.4.1是这个引擎的一个特定版本,包含了针对性能优化、稳定性改进和新功能的更新。这个压缩包文件包含了框架的核心组件和相关文档,是开发者进行游戏开发的重要资源。 1. **Egret Engine核心**: Egret Engine的...
5.4.1版本是WordPress的重要更新之一,它带来了诸多改进和新特性,旨在提升用户体验和开发效率。本文将对WordPress 5.4.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
JMeter 5.4.1是该软件的一个版本,它提供了丰富的特性以帮助开发者和测试人员评估应用程序的性能和稳定性。在这个版本中,我们可以找到如`apache-jmeter-5.4.1`这样的主要文件夹,包含了整个JMeter工具的源代码、库...
有一天急用,发现官网地址下载很慢,网上很多都是需要积分,明明都是公共资源,大家共享就可以了,gradle-5.4.1-all免费下载,下载成功后拷贝到gradle下面即可
apache-jmeter-5.4.1.rar 可执行Binaries版本,像1号评论一样喜欢被喂饭的可以去这里下载:https://jmeter.apache.org/download_jmeter.cgi
Elasticsearch 5.4.1 是一个高度可扩展、开源的全文搜索引擎,它基于 Lucene 库构建,设计用于处理大规模数据集的快速、低延迟的搜索需求。这款工具在分布式环境中表现卓越,能够自动处理节点间的通信、索引分片以及...