分享

solrcloud 性能

hadroger 发表于 2015-6-1 09:57:22 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 23708
solrcloud提高查询性能, 我现在使用3台机器搭建的solrcloud是每一个core对应一个collection,每个collection有一个shard,每个shard有3个replication,这样搭建能提高查询性能吗?是不是每个collection配多大shard才行?3台机器应该怎么分配collection shard replication 才能最大限度提高查询性能?谢谢

已有(6)人评论

跳转到指定楼层
hadroger 发表于 2015-6-1 10:48:43
发过的帖子怎么修改  上面应该是
是不是每个collection配多个shard才行?
回复

使用道具 举报

tntzbzc 发表于 2015-6-1 13:11:28
hadroger 发表于 2015-6-1 10:48
发过的帖子怎么修改  上面应该是
是不是每个collection配多个shard才行?



首先我们来明确下概念:
Shard碎片:一个分区通过指定的复制因子(replication factor)被存储在多个节点上。所有这些节点共同形成一个碎片。一个节点可能由多个碎片组成。

Collection

这里没有说Collection是什么意思,我就用自己的理解给大家说明, Collection英文直译是集合的意思,在SolrCloud模式下Collection是访问Cluster的入口。这个入口有什么用呢?比如说集群里面有好多台机器,那么访问这个集群通过哪个地址呢,必须有一个接口地址,Collection就是这个接口地址。因此可见Collection是一个逻辑存在的东西,因此是可以跨Node的,在任意节点上都可以访问Collection。

Shard

Shard其实也是一个逻辑存在的东西,因此Shard也是可以跨Node的;
1个Shard下面能且只能包含一个Leader
1个Shard下面可以包含0个或者多个Replication
如果Shard下面的Leader挂掉了,会从Replication里面选举一个Leader。在Solr4.0这个版本这部分实现有不少问题:
Solr4.0的AdminGUI里面可以增加和删除Core,如果Shard里最后一个Core被删除了,Shard不会自动删除掉,会导致集群出错,我们fix了这部分代码;
Shard里面所有的Core宕机了,会导致不能继续插入新的记录,查询不受影响,个人认为应该可以插入到其它存活的Shard里面,因此我们fix了这部分代码;


#########################################
上面供楼主参考:

根据上面我们知道Collection你配置的shard越多理论上性能越高。当然实际中可能存在瓶颈,但是配置多个,性能肯定会提升。

replication 是为了备份用的,不需要配置太多,个人认为3个即可







回复

使用道具 举报

hadroger 发表于 2015-6-1 13:23:06
tntzbzc 发表于 2015-6-1 13:11
首先我们来明确下概念:
Shard碎片:一个分区通过指定的复制因子(replication factor)被存储在多 ...

谢谢  tntzbzc   我如果配置两个shard,每个shard配3个replication, 这两个shard含有相同ip的3个replication ,这样配置可以吗  
顺便再问一下 collection和core是什么关系?
回复

使用道具 举报

tntzbzc 发表于 2015-6-1 14:54:45
hadroger 发表于 2015-6-1 13:23
谢谢  tntzbzc   我如果配置两个shard,每个shard配3个replication, 这两个shard含有相同ip的3个replicati ...

首先来看他们的概念:

solr可以对多个core进行综合管理,并接受请求选择特定的一个或者多个core执行相关任务。下面来回答什么是solr的core。

core从文件结构的角度来看的话,主要包括一份索引(也可能还包括拼写检查的索引)、一堆配置文件。最主要的配置文件是:solrconfig.xml和schema.xml。solrconfig.xml从整体上对core进行了配置,例如索引的存放路径、字段的最大长度(maxFiedlLength)、写锁的超时时间(writeLockTimeout)、锁类型(lockType)、是否压缩索引(useCompoundFile)、内存索引缓冲区大小(ramBufferSizeMB)、合并因子(mergeFactor)、删除策略、自动提交策略、缓存设置等,它好比是一份组装机器人的说明书,里面详细描述了各个部件(handler)的参数。schema.xml主要是对索引的配置,例如分词器、字段名称+索引方法+存储方式+分词方式、唯一标识字段等,它好比是机器人学习的学习方法,机器人主动或被动接受特定数据,按照配置转化成索引,然后通过其部件(handler)展示出来,例如:search、moreLikeThis、spellCheck、factedSearcher等。

core从功能方面来说的话,主要是通过各种handler进行工作,


core感觉和collection没有太大的关系
回复

使用道具 举报

hadroger 发表于 2015-6-1 15:22:16
tntzbzc 发表于 2015-6-1 14:54
首先来看他们的概念:

solr可以对多个core进行综合管理,并接受请求选择特定的一个或者多个core执行相 ...

core和collection应该是没有什么关系  ,但是一个collection配置的时候最好是只对应一个core吧  我再好好看看core和collection的概念
我还有几个问题:
1)我如果配置两个shard,每个shard配3个replication, 这两个shard含有相同ip的3个replication ,这样配置可以吗 ?
2)多shard多replication配置后会不会影响创建索引的速度?
3)我看solrconfig.xml中有把索引存入hdfs的配置,存入hdfs肯定会降低创建索引和查询的效率吧?

谢谢
回复

使用道具 举报

nextuser 发表于 2015-6-1 15:55:56
hadroger 发表于 2015-6-1 15:22
core和collection应该是没有什么关系  ,但是一个collection配置的时候最好是只对应一个core吧  我再好好 ...

理论上应该可以,楼主可以试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条