更新时间:2024-11-29 GMT+08:00

索引集分片划分建议

操作场景

该操作指导MRS集群管理员通过调整Solr的实例数和索引集(Collection)的分片数(Shard)来提高Solr的索引性能。

操作步骤

  • 调整Solr的实例数

    如有8个数据节点,建议按照如下方案进行规划:

    当索引数据存放在本地磁盘时:

    • SolrServerAdmin角色占用2个节点,其中每个节点上再部署SolrServerN(N=1~5),共计12个实例;
    • 其余6个节点,每个节点分别部署SolrServerN(N=1~5),共计30个实例。
    • 共计42个实例

    当索引数据存放在HDFS时:

    • SolrServerAdmin角色占用2个节点,其中每个节点上再部署SolrServerN(N=1~2),共计6个实例;
    • 其余6个节点,每个节点分别部署SolrServerN(N=1~3),共计18个实例。
    • 共计24个实例

    设置每个实例占用系统最大内存为4GB。如果内存资源足够,有利于索引性能提升。

    调整内存占用的步骤如下:

    1. 登录Manager系统。
    2. 选择“集群 > 待操作集群的名称 > 服务 > Solr > 配置”。
    3. 调节每个实例的“SOLR_GC_OPTS”参数,“-Xms2G -Xmx4G”部分表示占用内存大小为2GB~4GB。将此参数值修改为“-Xms4G -Xmx4G”。
    4. 单击“保存”,在弹出窗口中单击“确定”,重启服务使配置生效。
  • 调整Solr索引集的分片数

    在创建HDFS数据和HBase数据的全文检索索引集时(具体操作可参见Solr业务常见操作),建议按照以下方案进行规划:

    设置每个实例对应1个Shard,每个shard包含两个replica(即副本因子为2),当要求副本数为2时,创建包含21个shard的collection,每个shard两个副本分布于两个不同节点实例,这样42个实例分别包含一个replica。

    根据以上方案,每个索引集包含42个Shard(以部署42个实例为例)。Shard数量越大,有助于查询或索引的性能提升,但同时也会增加服务的交互操作,消耗更多系统资源。

    当索引数据存放在本地磁盘时,同样参考以上规则进行规划,也就是每个索引集包含24个shard(以部署24个实例为例)。